STM32 Cortex-M3 学习笔记:异常与中断、存储器映射

需积分: 9 4 下载量 52 浏览量 更新于2024-07-29 收藏 1.17MB DOC 举报
"Cortex-M3学习笔记,主要针对STM32,适合初学者,内容包括处理器模式、存储器映射、STM32的Flash和SRAM配置、位带操作以及时钟源" Cortex-M3是一款广泛应用的微控制器内核,广泛应用于STM32系列芯片。在学习STM32时,理解Cortex-M3的工作原理是至关重要的。 Cortex-M3处理器有两种工作模式:Handler模式和Thread模式。Handler模式主要处理异常和中断服务程序,它始终运行在特权级,确保能够访问所有系统资源。Thread模式则是执行正常程序流程的地方,它可以运行在用户级或特权级。特权级允许访问所有的寄存器,而用户级则受到限制。在复位后,系统默认处于线程模式和特权级。要从用户级切换回特权级,通常需要通过设置Control寄存器,并利用Handler模式中的异常,如系统服务呼叫指令(SVC)异常。 存储器映射是理解Cortex-M3系统的关键。CM3的存储空间可达4GB,分为8个512MB的块。STM32的映射则根据具体型号有所不同。例如,STM32的Flash起始于0x08000000,有128KB空间;SRAM起始于0x20000000,有20KB空间。外设寄存器通常从0x40000000开始,各外设的地址分布在这个范围内。 STM32的启动模式配置可以根据需求进行设定,影响程序的加载位置和执行起点。位带操作是一种优化空间的机制,它允许对某些地址范围内的寄存器进行位级别的读写,这在处理某些特定控制任务时非常有用。位带操作的地址范围通常是SRAM和外设寄存器的特定部分。 STM32的时钟源共有四种:HSE(高速外部时钟)、HSI(高速内部时钟)、LSE(低速外部时钟)和LSI(低速内部时钟)。HSE和LSE可以是外部晶振或时钟信号,HSI和LSI则是内部时钟源。在切换时钟源时,必须等待当前源稳定(通过RDY信号确认)才能进行切换,以确保系统的稳定运行。 了解这些基础知识对于理解和开发基于STM32的嵌入式系统至关重要。通过学习和实践,初学者可以逐步掌握Cortex-M3和STM32的使用,进行更高级的硬件控制和系统设计。