×
单片机 > 单片机程序设计 > 详情

stm32之滴答定时器(1):滴答定时器在内核的位置

发布时间:2020-06-05 发布时间:
|

    之所以要讲这个滴答定时器,是因为它很特殊,stm32的定时器有内部也有外部的,而滴答定时器是在cortex内核里面的,明白滴答定时器,就可以根据这个思路去对stm32有更深的了解,可以说起到一个举一反三的作用吧。

    滴答定时器在stm32手册中可以说是一笔带过,只是讲解了寄存器怎么用,很多童鞋可能对这个滴答定时器还是一头雾水,这第一篇先参考cortex-m3的内核手册讲一下滴答定时器在内核的位置。

    在内核文件core_cm3.h(内核文件哦(⊙o⊙))中可以看到systick的地址

#define SysTick_BASE        (SCS_BASE +  0x0010)   

    也就是说SysTick的基址是在SCS的基址上加0x0010的偏移,那再搜一下这个SCS的基址。(很多童鞋在stm32没有找到这个SCS,因为它是内核的一部分,在cortex-m3手册中可以查到,SCS是系统控制空间,在SCS 里的还有SysTick、MPU 以及代码调试控制所用的寄存器。)

#define SCS_BASE            (0xE000E000)  

    这样就得出了SysTick的基地址为0xE000E010,这段地址是什么地方,就要看下cortex手册的地址映射


    可以看到是在内部私有外设(private peripheral bus-internal)的NVIC段。可能有人会问,NVIC不是中断控制寄存器吗,感觉看数据手册来说,这段叫SCS,更为合理,这段不仅仅有NCIC还有其他的寄存器(之后根据库函数将SCB寄存器可能会更明了)

    这就是滴答定时器在内核中的位置,下一篇会结合库函数讲下定时器的地址以及结构体


关键字:stm32  滴答定时器  内核

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址