ThreadX系列 | 最新v6.1.6版本在MDK中的移植方法
本文分享了在MDK中移植ThreadX系列最新v6.1.6版本的方法,特别强调了更新过程及与之前的码论移植体验的比较。移植的源码开发板为小熊派IoT开发板,主控为STMLRCT6。坛源坛首先,码论用户需要准备一份包含「正常使用printf串口输出的源码幸福社区源码裸机工程」,推荐使用cubemx生成。坛源坛
接着,码论从GitHub开源仓库获取ThreadX源码,源码将源码添加到MDK工程中。坛源坛具体步骤包括创建threadX/common分组,码论将threadX/common/src下的源码所有c文件添加到此分组,以及新建threadX/ports分组,坛源坛根据编译环境(例如使用AC5编译器)添加相应的码论.s文件。设置编译器为AC5,源码无人机飞控源码并添加头文件路径,以确保移植过程的顺利进行。
在移植过程中,用户可能会遇到ThreadX官方提供的底层适配文件tx_initialize_low_level.s,该文件中的函数用于处理器的底层初始化。然而,ThreadX在v6版本及其后续版本中对这个文件进行了修改,安卓应用市场网站源码试图接管处理器的底层初始化,包括设置堆栈环境、重新定义向量表以及接管复位程序,这引起了一些争议。尽管ThreadX的意图可能是为了提供更全面的系统支持,但这种做法在某些方面可能并不合适,因为它直接接管了系统中断,伍华聪开发框架源码而中断管理通常是操作系统的责任。尽管如此,移植工作仍需继续,用户可以通过创建自定义的适配文件来解决与原始文件的不兼容问题。
具体步骤包括复制tx_initialize_low_level.s文件,并创建自定义适配文件tx_initialize_low_level_bearpi.S,其中包含了对原有代码的中国象棋安卓源码修改以适应特定的移植需求。例如,修改与STM启动文件相关的代码,如设置时钟频率、初始化Systick定时器、处理堆栈环境等。在适配文件中,用户需要注释掉ThreadX定义的中断向量表和复位处理程序,并根据实际需求调整底层初始化函数。
此外,为了兼容现有代码,用户需要注释掉HAL库提供的中断服务函数,如PendSV和Systick中断服务函数。完成这些步骤后,用户可以编写应用代码,包括创建任务和启动内核。在main.c中包含ThreadX头文件,并在main函数中初始化内核,以完成整个移植过程。通过编译和下载,用户可以在串口终端观察到系统运行结果。
本文分享的移植过程提供了对最新ThreadX版本在特定环境中的应用指南,以及在遇到官方修改时的调整策略。虽然在某些方面存在争议,但通过适当的适配和调整,用户仍能成功地将ThreadX移植至其目标开发板,实现稳定且高效的操作系统功能。
2024-12-01 00:40
2024-11-30 23:27
2024-11-30 22:28
2024-11-30 22:21
2024-11-30 22:13