打印
[STM32H7]

STM32H743+CubeMX-移植ThreadX

[复制链接]
2843|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
drer|  楼主 | 2021-9-4 17:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、前言
令人激动的是,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、新建工程



使用特权

评论回复
沙发
drer|  楼主 | 2021-9-4 17:09 | 只看该作者
2.2、配置RCC


使用特权

评论回复
板凳
drer|  楼主 | 2021-9-4 17:09 | 只看该作者
2.3、配置Clock Configuration


使用特权

评论回复
地板
drer|  楼主 | 2021-9-4 17:10 | 只看该作者
2.4、配置Debug方式


使用特权

评论回复
5
drer|  楼主 | 2021-9-4 17:11 | 只看该作者
2.5、使能CPU ICache与DCache


使用特权

评论回复
6
drer|  楼主 | 2021-9-4 17:12 | 只看该作者
2.6、下载ThreadX的内核



如上图所示,配置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。



使用特权

评论回复
7
drer|  楼主 | 2021-9-4 17:13 | 只看该作者
三、ThreadX3.1、Mode


使用特权

评论回复
8
drer|  楼主 | 2021-9-4 17:14 | 只看该作者
3.2、修改裸机的Timebase Source


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


使用特权

评论回复
9
drer|  楼主 | 2021-9-4 17:15 | 只看该作者
3.3、配置ThreadX的User setting


TX_TIMER_TICKS_PER_SECOND改为1000
这个TIMER在UCOSIII与FreeRTOS都有,是系统调度的频率,改为1000的意思是每秒进行1000次的调度,即调度的频率是1000Hz,大部分的RTOS通常都配置1000。
其他配置暂时保持默认,至于每一个配置的意义,在ThreadX的官网有详细的介绍。


使用特权

评论回复
10
drer|  楼主 | 2021-9-4 17:16 | 只看该作者
3.4、修改ThreadX的堆栈

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


使用特权

评论回复
11
drer|  楼主 | 2021-9-4 17:17 | 只看该作者
3.5、配置GPIO

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


使用特权

评论回复
12
drer|  楼主 | 2021-9-4 17:18 | 只看该作者
3.6、修改Project Manager


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


使用特权

评论回复
13
drer|  楼主 | 2021-9-4 17:19 | 只看该作者
四、代码4.1、 main.c


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


使用特权

评论回复
14
drer|  楼主 | 2021-9-4 17:20 | 只看该作者
4.2、创建第一个ThreadX线程4.2.1、app_azure_rtos.h


使用特权

评论回复
15
drer|  楼主 | 2021-9-4 17:21 | 只看该作者
4.2.2、app_azure_rtos.c




使用特权

评论回复
16
drer|  楼主 | 2021-9-4 17:22 | 只看该作者
4.2.3、返回到app_azure_rtos.h修改一下


使用特权

评论回复
17
drer|  楼主 | 2021-9-4 17:23 | 只看该作者
五、编译,烧录代码5.1、编译


还是没有报错与警告。

5.2、烧录代码


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


使用特权

评论回复
18
usysm| | 2021-9-5 21:35 | 只看该作者
ThreadX系统都支持什么软件?  

使用特权

评论回复
19
typeof| | 2021-9-5 21:35 | 只看该作者
这个占用多大的内存呢      

使用特权

评论回复
20
yujielun| | 2021-9-5 21:35 | 只看该作者
threadx手机系统?         

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

3309

帖子

4

粉丝