本帖最后由 aple0807 于 2021-2-14 14:22 编辑
作为世界顶尖的RTOS之一,ThreadX开源免版税可算是嵌入式领域的一大福音。
先看看它的认证:
(1)医疗 - FDA510(k),IEC-62304 Class C,IEC-60601,ISO-14971
(2)工业 - UL-1998,IEC-61508 SIL 4
(3)运输/铁路 - EN50128 SIL 4,BS50128, 49CFR236,IEC-61508
(4)航空航天设备 - DO-178B,ED-12B,DO-278
(5)汽车 - IEC-61508 ASIL D
(6)核应用 - IEC-61508
(7)家电 - UL/IEC 60730/60335
源码可以在github下载,本附件工程是最新版的 6.1.3
API使用说明:
https://docs.microsoft.com/en-us/azure/rtos/threadx/chapter4
ThreadX的移植十分简单,就两个文件夹,COMMON和PORT,直接添加文件就可以了
主程序直接调用API接口进入OS即可
- /*******************************************************************************
- * [url=home.php?mod=space&uid=247401]@brief[/url] main : std proc entry.
- * \param[in] none
- * \retval: none
- *******************************************************************************/
- int main(void)
- {
- //cpu init
- System_Init();
- //app time tick suspend
- app_tick_suspend();
- //os entry
- tx_kernel_enter();
- while (1);
- }
另外需要一个外部函数tx_application_define来创建初始任务,这个是内核初始化调用的
- /*******************************************************************************
- * [url=home.php?mod=space&uid=247401]@brief[/url] tx_application_define : called by tx_kernel_enter.
- * \param[in] first_unused_memory :mem address that is unused
- * \retval: none
- *******************************************************************************/
- void tx_application_define(void *first_unused_memory)
- {
- os_thread_init();
- }
API接口命名十分简洁,下面附上源码,有兴趣的坛友可以一起来研究。
本附件工程支持MDK(ARMCC6)和IAR8.40
建议使用IAR,对ThreadX有强大的调试支持。
software-threadx.rar
(3.87 MB, 下载次数: 153)
|