本帖最后由 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)
|
d( ̄◇ ̄)b