寄存器学习
文章平均质量分 96
学习ARM底层
明早你自己说
看文档,学框架,懂原理
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
根据ARM手册,分析ARM架构中,原子操作的软硬件实现的底层原理
RTOS中抢占式任务调度可能导致共享数据运算丢失,原子操作是解决方案。原子操作指不可中断的操作,通过硬件指令(如ARM的LDREX/STREX)或软件锁实现。硬件实现性能高但依赖硬件支持,软件实现通用性强但性能较低。随着项目复杂度提升,原子操作对保障数据完整性至关重要,了解其底层实现有助于开发高性能并发系统。原创 2025-07-19 19:55:47 · 1310 阅读 · 0 评论 -
学习寄存器——GPIO(二)学习BSRR BRR ODR寄存器的原子性和在HAL库的应用
本文探讨了STM32 GPIO寄存器操作中的原子性问题。通过对比ODR、BSRR和BRR寄存器的特性,指出ODR寄存器在修改单个GPIO口时需保护其他位,而BSRR寄存器能实现原子操作,确保任务不被中断打断。分析表明,BSRR适合需要原子性的场景,ODR则更适合频繁翻转操作。文章还结合HAL库的实现,解释了不同寄存器在具体应用中的选择依据,强调应根据实际需求在安全性和性能之间做出权衡。原创 2025-07-20 13:05:33 · 1163 阅读 · 0 评论 -
学习寄存器——GPIO(一)(根据手册用结构体封装寄存器)
目的:学习底层,减少对ST官方HAL库/标准库的依赖与其他文章不同的是,本章与HAL库/标准库一样使用结构体进行封装寄存器,并讲解HAL库/标准库封装原理。原创 2025-03-31 19:56:47 · 1384 阅读 · 0 评论 -
学习寄存器——时钟频率的配置
在上一节的GPIO端口设置的时候,我们直接在RCC打开了寄存器的时钟,然后直接配置GPIOC的功能。之所以能成功,是因为我们的时钟频率已经被标准库/HAL库初始化了,不需要我们配置,但有些外设的配置是需要定制时钟频率的——例如USART的波特率设置,因此学会时钟频率的配置对我们学习其他外设也有很大帮助。本章实现功能:选择外部时钟源获得72MHz时钟频率。原创 2025-04-27 19:09:16 · 1206 阅读 · 0 评论 -
嵌入式内存学习一——根据Cortex-M3(包括STM32F1)权威指南讲解MCU内存架构与如何查看编译器生成的地址具体位置
本文详细介绍了Cortex-M3处理器的存储器映射结构,重点分析了RAM和FLASH的基本概念及作用。RAM用于存储运行时的数据和变量,包括堆栈和动态分配内存;FLASH则存储程序代码和常量数据。文章还解析了程序的典型内存分布,包括.text、.rodata、.data、.bss、堆和栈等区域,并通过示例说明了代码变量的存储方式。此外,介绍了如何通过.map文件查看各区域的地址位置,并强调了合理设置堆栈空间的重要性,以避免栈溢出导致程序崩溃。原创 2025-05-23 16:27:38 · 1657 阅读 · 0 评论
分享