|
第12章 系统时钟节拍和时间管理 本章节为大家讲解RTX操作系统的时钟节拍和时间管理函数,其中时间管理函数是RTX的基本函数,初学者务必要掌握。 本章教程配套的例子含Cortex-M3内核的STM32F103和Cortex-M4内核的STM32F407。 12.1 RTX的时钟节拍 12.2 RTX的时间管理 12.3 实验例程说明 12.4 总结 任何操作系统都需要提供一个时钟节拍,以供系统处理诸如延时,超时等与时间相关的事件。 时钟节拍是特定的周期性中断。这个中断可以看做是系统心跳。中断之间的时间间隔取决于不同的应用,一般是1ms – 100ms。时钟的节拍中断使得内核可以将任务延迟若干个时钟节拍,以及当任务等待事件发生时,提供等待超时等依据。时钟节拍率越快,系统的额外开销就越大。 对于Cortex-M3内核的STM32F103和Cortex-M4内核的STM32F407,教程配套的例子都是用的滴答定时器来实现系统时钟节拍的。 滴答定时器Systick SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号:15),滴答定时器是一个24位的递减计数器,支持中断。使用比较简单,专门用于给操作系统提供时钟节拍。 RTX的系统时钟节拍可以在配置向导里面设置:
Tick Timer Configuration Hardware timer CoreSysTick 表示选择系统滴答定时器,因为M3/M4内核带有滴答定时器,一般情况下都是选用滴答定时器作为系统时钟节拍。 PeripheralTimer 表示使用外设定时器。 Timer clock value 表示定时器主频,单位Hz。 Timer tick value 表示系统时钟节拍周期,单位us。 |
微信公众号
手机版
12.2.1 时间延迟
12.2.2 RTX的延迟函数
12.2.3 函数os_dly_wait
12.2.4 函数os_itv_set
12.2.5 函数os_itv_wait
12.2.6 函数os_time_get
12.2.7 函数os_dly_wait和os_itv_wait的区别
12.3.1 STM32F103开发板实验
RTX配置文件设置:
Timer clock value[Hz]: 72000000
Timer tick value [us]: 1000
结果使用os_dly_wait(10)就成延迟1秒了~~(仅创建了一个任务进行测试~)