RTX移植STM32F103,超详细~

Posted 玖道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTX移植STM32F103,超详细~相关的知识,希望对你有一定的参考价值。

目录

RTX移植

【往期回顾】

☞为什么需要RTOS?

前言

keil RTX是一款应用广泛的嵌入式RTOS,具体可见官网。为什么需要RTOS,因为产品需要实时性。没有操作系统的传统编程方式,我们称为裸机编程,即在一个while大循环中,进行任务的轮询,偶尔采用中断来处理突发事件,这便导致任务之间常常需要固定的等待,实时性不高。在RTOS中,我们不再采用轮询这种方式,而是将程序分解为多个任务,然后由操作系统负责调度各个任务的执行,选择了合适的调度算法,产品的实时性就会得到大大地提升。

移植平台:STM32F103C8T6

移植系统: keil RTx5

移植

keil RTX5的源代码已经集成到MDK中,只需要在创建工程的时候选中即可。下面我将详细介绍移植步骤。

1.创建工程


2. 配置工程



3. 添加LED文件

首先,在工程项目文件夹下新建一个空文件夹USR,并在该文件夹下另外新建一个文件夹LED,即USR\\LED,该LED文件用来放置我们与板子相关的led.c和led.h文件。


这两个文件可以根据自己的板子来进行配置。,通常在LED例程中都可以找到。然后就是向工程组里面添加group和对应的文件。


接下来就是配置魔术棒。

选择RTX,以便支持RTOS

ps: 经笔者测试,勾选这个貌似会出现需要Leagcy Pack的编译错误(但是明明记得第一次没有这个错误~,很迷)。我想勾选RTX Kernel选项应该是针对以前老版本(即自动帮我们添加RTX源码),但是上面我们自己手动添加RTOS源码了,所以也就不需要在勾选这个了)。在没有勾选的情况下,经测试,RTOS系统移植正常工作。

勾选生成hex文件,以便烧录。

修改RTE配置文件。

由于笔者板子上外接的时钟是8MHz,所以修改为8000000,读者可按需修改。

4. 编写测试代码

ps: 上面那个LED_GPIO_Config(); 参数忘记去掉void了。

方便读者理解,笔者贴上自己的led.c和led.h文件。


5. 编译烧录


烧录成功。

开发板上led灯闪烁正常,系统移植成功!


移植到其他M系列都是一样的,有什么问题,大家可以给我留言,这个RTX移植还是非常简单的,希望对大家有所帮助。

【下篇阅读】

线程-RGB_LED灯闪烁

以上是关于RTX移植STM32F103,超详细~的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103(二十一)DMA(超详细的~)

STM32F103系列移植rtthread3.1.3完整版详细过程

STM32F103系列移植rtthread3.1.3完整版详细过程

STM32F103系列移植rtthread3.1.3完整版详细过程

STM32F103系列移植rtthread3.1.3完整版详细过程

STM32F103移植FreeModbus主机协议实现modbus主机