STM32H743+CubeMX-移植ThreadX

一、前言

令人激动的是,STM32Cube ecosystem迎来又一波的更新,名字是X-CUBE-AZROTS-H7。这个项目重大意义是从STM32CubeMX移植ThreadX,也可以移植rt-thread。目前使用STM32CubeMX移植ThreadX只支持H7系列的单片机,其他系列可能还需要等等。
视频教程:https://v.qq.com/x/page/c3232e9q80c.html
值得注意的是,我在移植的过程中发现,单独使用STM32CubeMX移植会有BUG,无法进入Mode界面配置ThreadX。但是,在STM32CubeIDE上使用STM32CubeMX的话,没有出现这个问题。

二、STM32CubeMX

2.1、新建工程

2.1

2.2、配置RCC

2.2

2.3、配置Clock Configuration

2.3

2.4、配置Debug方式

2.4

2.5、使能CPU ICache与DCache

2.5

2.6、下载ThreadX的内核

2.6-1
2.6-2
2.6-3
如上图所示,配置AZURE_RTOS_Application与ThreadX:

  • HW_Profile选择Custom_Board
    因为STM32H743IIT6并不是stm32 ecosystem评估板的芯片,所以只能选择Custom_Board了,意思是:自定义的板子
  • Application选择azure_rtos_app
    没有其他选择了。
  • 勾上ThreadX/Core
    内核,必须要用啊。
  • 勾上ThreadX/ TraceX support
    RTOS的强大调试工具,调试的时候使用的。
    接着,就可以按下界面右下角的ok,然后会弹回到原来的配置界面,然后左侧的选项栏里增加一个SoftWare Packs。
    2.6-4

三、ThreadX

3.1、Mode

3.1

3.2、修改裸机的Timebase Source

3.2
这一步非常重要,裸机的Time Base Source改为TIM1,是因为Systick被RTOS占用了。总的来说,虽然移植了RTOS,但是裸机系统也需要时钟源。这个跟移植FreeRTOS时是一样的。

3.3、配置ThreadX的User setting

3.3

  • TX_TIMER_TICKS_PER_SECOND改为1000
    这个TIMER在UCOSIII与FreeRTOS都有,是系统调度的频率,改为1000的意思是每秒进行1000次的调度,即调度的频率是1000Hz,大部分的RTOS通常都配置1000。
    其他配置暂时保持默认,至于每一个配置的意义,在ThreadX的官网有详细的介绍。
    官网网址:https://docs.microsoft.com/en-us/azure/rtos/threadx/chapter2

3.4、修改ThreadX的堆栈

3.4至于应用程序的堆栈配置多大,这个需要看MCU的型号。STM32H743IIT6有1MB的RAM空间,分配10KB就相当于1/100的RAM空间。

3.5、配置GPIO

3.55配置开发板的LED引脚的GPIO,用于验证ThreadX的线程有没有跑起来。

3.6、修改Project Manager

3.6
生成代码之前,修改生成代码的方式。

四、代码

4.1、 main.c

4.1
从main.c可以看到ThreadX初始化的相关函数,证明TThreadX系统移植成功。可以编译一下代码,反正我是没有报错与告警。

4.2、创建第一个ThreadX线程

4.2.1、app_azure_rtos.h

4.2.1.1

4.2.2、app_azure_rtos.c

4.2.2
4.3.3
4.3.4

4.2.3、返回到app_azure_rtos.h修改一下

4.2.3

五、编译,烧录代码

5.1、编译

5.1
还是没有报错与警告。

5.2、烧录代码

5.2
完成,创建一个线程。。。。。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wallace Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值