来源于粉丝提问。
在STM32F103中,SysTick(系统定时器)确实是一个位于CPU内部的组件,而不是独立于CPU的外设。
SysTick的主要作用是为操作系统或应用程序提供一个精确的周期性中断,因此它常用于系统心跳或计时功能。
例如,操作系统可以利用SysTick中断来实现任务调度,使得系统可以在不同任务之间进行切换。
这也正是ARM Cortex-M3设计时将SysTick集成在处理器内部的一个重要原因:它作为一个简单、高效的定时器,直接服务于系统级任务调度需求。
ARM Cortex-M3架构为SysTick保留了一个专用的寄存器空间,并将其放置在核心外设区域(Core Peripherals)。
这些核心外设,包括SysTick、NVIC(嵌套中断控制器)、SCB(系统控制块)等,都是ARM处理器内核的一部分。
与普通的外设(如GPIO、UART等)不同,SysTick并不会占用芯片的外设总线,因为它是直接集成在CPU核心内部的。
这意味着在内存映射上,它位于核心外设地址空间,而不是普通外设的地址空间。
STM32F103的外设,如UART、GPIO、ADC等,都是通过外设总线与CPU连接,通常被视为芯片的“外围设备”。这些外设是为芯片的特定功能设计的,可以灵活适配不同应用。
而SysTick则是一个内建的CPU计时器,它的存在主要是为了服务于CPU自身的运行管理,与其他外设存在一定的隔离性。