
第32卷第1期 2015年1月
吉林
化工
学院
学
报
JOURNAL OF JILIN INSTITUTE OF CHEMICAL TECHNOLOGY
文章编号:1007-2853(2015)01-0036-04
基于ARMCortex-M3的SysTick解析
李立春",刘卓2
Vol. 32 No. 1 Jan.2015
()摘要:SysTick是嵌人式系统中不可缺少的组成部分.本文介绍了SysTick的基本功能和相关寄存器的定义,给出了SysTick的运行机制,并结合SysTick定时实例分析了ARM程序的基本结构、主程序工作流程
和产生定时误差的主要原因,程序对设计ARM上位机系统具体一定的借鉴意义关键词:运行机制;ARM;上位机系统;SysTick定时
中图分类号:TP302
文献标志码:A
近几年,日常生活中嵌人式产品应用非常广泛,嵌人式技术得到了飞速发展.具有Cortex-M3 内核的ARMSTM32芯片以其低成本、低功耗、高性能的特点迅速普及,其中STM32F103“增强型” 嵌人式系统芯片时钟频率达到了72MHz,是同类产品中性能最高的产品.Cortex-M3(即CM3)是一个32位处理器内核,它采用了哈佛结构,拥有独立的指令总线和数据总线,可以让指令与数据并行访问,从而提升了性能。
NVIC嵌套向量中断控制器
NVIC是一个在CM3中内建的中断控制器, NVIC是与CPU紧耦合的,它包含了若干个系统控制寄存器.因为NVIC支持中断嵌套,便得在 CM3上处理嵌套中断时功能特别强大.它还采用了向量中断机制,在中断发生时,它会自动取出对应的服务例程入口地址,并且直接调用,无需软件判定中断源,为缩短中断延时做出了非常重要的贡献()
2SysTick定时器
CM3内核的MCU处理器内部包含了一个特
有SysTick系统时钟定时器,也称为系统满客定时器,它是一个常用的24位倒计时计数器,它以系统时钟为基准,一个时钟周期会进行一个递减的
DOI:10. 16039/j. cnki. cn22 1249. 2015. 01. 010
操作,它的最大计数值十六进制是0xFFFFFF共 24位(即2的24次方),能够产生比较精确的定时.它从初值一直递减计数到0的时候会产生个溢出中断,这个溢出中断是一个非屏蔽中断源,即使是系统在睡眠模式下也能工作
SysTick定时器作为NVIC的一部分,它是
NVIC的一个资源寄存器的设置.在CM3内核中所占的中断优先级是15,它和其他的非屏蔽中断都是CM3内核所特有的一些性质.非屏蔽中断和可屏蔽中断的区别就是非屏蔽中断不受开中断标志控制,当它发生中断时,MCU必然要响应;而可屏蔽中断需要置位中断控制标志才能够打开,然后响应.非屏蔽中断往往是用于对于硬件故障的一些响应.大多数系统需要一个SysTick来产生周期性的中断,作为整个系统的时基,而且不能让用户程序随意访回它的寄存器,以维持操作系统“心跳”的节奏,在其他的一些低级的MCU上要进行上述功能可能就要用到可屏蔽中断定时器作为系统的时钟节拍
在操作系统应用中用CM3内核的SysTick产生系统的时钟节拍,实现任务切换和任务调度.为多个任务分配不同数目的时间片,确保没有一个任务能独占系统;或者把每个定时器周期的某个时间范围分配给特定的任务等
所有的CM3芯片都带有SysTick,软件可以在不同CM3器件间进行移植.该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时
收稿日期:2014-12-09
作者简介:李立春(1976-),男,吉林省吉林市人,吉林化工学院副教授,硕士,主要从事计算机应用和控制工程等方
面的研究。
万方数据