STM32之FreeRTOS学习笔记——第一章 使用SysTick和普通定时器作为FreeRTOS基准时钟的比较

目录

目的

一、使用CubeMX软件分别生成SysTick和普通定时器作为基准时钟的程序

二、使用BCompare软件对比2种基准时间下生成的工程代码

1.stm32f1xx_it.h文件对比

2.stm32f1xx_it.c文件对比

3.main.c文件对比

4.普通定时器为基准时钟的情况下增加stm32f1xx_hal_timebase_tim.c文件

三、总结



目的

        为方便裸机HAL库程序手动移植FreeRTOS,需将裸机程序基准时钟改为其他定时器产生,现对两种基准时钟生成的代码进行比较,加快移植效率。

一、使用CubeMX软件分别生成SysTick和普通定时器作为基准时钟的程序

1、SysTick为基准时钟:

2、普通定时器为基准时钟,这里以 定时器6 为例

 可以看出,使用普通定时器作为基准时钟的情况下,工程文件中多了一个“stm32f1xx_hal_timebase_tim.c”文件。

二、使用BCompare软件对比2种基准时间下生成的工程代码

        对比发现有4个文件不相同,具体如下图,并对4处不同之处展开对比。

1.stm32f1xx_it.h文件对比

        普通定时器的情况下进行了定时器6中断声明。

2.stm32f1xx_it.c文件对比

        增加普通定时器下定时器中断函数,删除SysTick的中断计数函数。

3.main.c文件对比

        普通定时器下增加定时器的回调函数。

4.普通定时器为基准时钟的情况下增加stm32f1xx_hal_timebase_tim.c文件

stm32f1xx_hal_timebase_tim.c文件内容即基准时钟的配置。


三、总结

    根据以上对比,移植时主要注意两点:

1,普通定时器的情况下,增加 “stm32f1xx_hal_timebase_tim.c” 文件用于配置基准时钟;

2,增加普通定时器中断函数及计数函数,删除SysTick的计数函数。


版权声明:本文为Huan_Xiang_Yu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。