|
之前一直都是用FreeRTOS,最近打算抽时间试试ThreadX,当然这个是基于Makefile的工程,按理说他也能用于各种情况.
代码在这里: https://github.com/nickfox-taterli/STM32H7-ThreadX-VSC-Example
最简单,没有任何优化,这里稍微提一些移植踩坑.
1) ld文件,默认的ld文件当然是不兼容ThreadX的GNU Port的,主要缺乏__RAM_segment_used_end__,实际上也缺乏D1 D2 D3 RAM的定义.
2) 默认Vector也没定义,导出g_pfnVectors符号也不行,粗暴定义在tx_initialize_low_level.s了.
3) 默认的Stack Size不足以运行.
4) MPU必须开启,即使不配置,否则_tx_thread_created_count会乱跳,实际上不少RAM也乱跳,原因不明.本来想最小化工程都懒得配置的. (明明都在DTCM)
平台是STM32H743,只有一个自己任务,还有一个内部定义的定时器任务,任务代码自行看:
https://github.com/nickfox-tater ... ter/Core/Src/main.c
由于其他文件都已经独立于ThreadX的Repo,因此换ThreadX版本so easy,只需要直接替换整个文件夹就行,具体打开源码就知道了,make可以编译.
|
评分
-
查看全部评分
|