前面我们将ThreadX成功移植到了STM32F4平台,但这只是我们的部分应用。我们希望将ThreadX的优势发挥到我们的更多应用中,所以在这一篇中我们就来实现将ThreadX移植到STM32H7平台中。
1、前期准备
在开始将ThreadX移植到STM32H7平台之前,我们需要做一些软硬件方面的准备。
首先,我们需要准备STM32H7的硬件平台。这次我们采用STM32H750VBT6为控制单元来作为目标平台。这是一款我们在实际项目中使用的,经过验证的,硬件能够稳定运行的平台。

其次,我们需要准备相应的软件资源,也就是ThreadX的源码。ThreadX的源码已经开源到Github上,其地址为:https://github.com/azure-rtos/threadx,直接下载源码就可以了。我们将采用目前最新的版本。下载好ThreadX的源码后,我们将其解压,如下图:

上图中一目了然,无需做太多解释。我们需要用到的文件主要存放在common文件夹和ports文件夹。其中common文件夹存放的是内核源码,ports文件夹存放的是不同平台的接口文件。我们的硬件采用的是STM32H750VBT6,软件开发环境用的是IAR EWARM,所以我们选择ports文件夹下cortex_m7下的IAR文件夹中的接口文件。
2、系统移植
我们准备好软件硬件平台后,就可以开始系统的移植了。首先我们找到一个基础的裸机项目,能正确实现硬件的启动及时钟初始化就好了。接下来的移植工作主要包括:添加源码,修改配置等。
第一步,我们先向项目中添加ThreadX的相关源码文件。所以我们在项目下添加ThreadX组、并在ThreadX组下添加Source和Ports两个组用于添加文件。并将common文件夹和ports文件夹中的文件添加到对应的分组。如下所示:

然后要在项目属性中为编译器指定头文件的引用路径,主要是内核函数的头文件以及接口文件的头文件两个路径,在我们这个项目中配置如下:
PROJDIRPROJ_DIRPROJDIR…\ThreadX\common\inc
PROJDIRPROJ_DIRPROJ

本文详细介绍了如何将实时操作系统ThreadX移植到STM32H7平台,包括前期的硬件和软件准备,系统移植的具体步骤,如修改中断处理函数、配置文件和低级别初始化,以及如何在IAREWARM环境下添加和配置ThreadX源码。在任务实现部分,讲解了如何创建和启动多个任务,通过tx_thread_create函数定义各个任务的控制块、栈空间、优先级等参数。最后,文章提到在目标平台上成功运行并展示了ThreadX的调试信息。
最低0.47元/天 解锁文章
1225

被折叠的 条评论
为什么被折叠?



