小熊派帶你初探最近叱咤風(fēng)云的ThreadX全家桶
[導(dǎo)讀]一、前言1.1.ThreadX操作系統(tǒng)簡介去年微軟宣布收購ThreadX,但是沒有公布后續(xù)策略,uCOS全家桶進(jìn)入開源免費(fèi)后,ThreadX也宣布正式加入。微軟未來四年將投資50億美元到物聯(lián)網(wǎng)上,收購ExpressLogic是該戰(zhàn)略的一部分。ThreadX的產(chǎn)品涵蓋了各種領(lǐng)域,包...
一、前言1.1.ThreadX操作系統(tǒng)簡介去年微軟宣布收購ThreadX,但是沒有公布后續(xù)策略,uCOS全家桶進(jìn)入開源免費(fèi)后,ThreadX也宣布正式加入。微軟未來四年將投資50億美元到物聯(lián)網(wǎng)上,收購Express Logic是該戰(zhàn)略的一部分。ThreadX的產(chǎn)品涵蓋了各種領(lǐng)域,包括NASA的多個(gè)太空探測項(xiàng)目,飛機(jī)自動(dòng)駕駛儀系統(tǒng),火星偵察軌道器等。ThreadX及其所有中間件的安全認(rèn)證等級,至今沒有一款小型RTOS可以與其匹敵。(1)醫(yī)療——FDA510(k),IEC-62304 Class C,IEC-60601,ISO-14971(2)工業(yè)——UL-1998,IEC-61508 SIL 4(3)運(yùn)輸/鐵路——EN50128 SIL 4,BS50128,? 49CFR236,IEC-61508(4)航空航天設(shè)備——DO-178B,ED-12B,DO-278(5)汽車——IEC-61508 ASIL D(6)核應(yīng)用——IEC-61508(7)家電——UL/IEC 60730/60335可見各種安全等級基本都達(dá)到了最高。像工業(yè)級安全認(rèn)證IEC61508,ThreadX滿足最高等級SIL4,而SafeRTOS,embOS,uCOS-II都只是SIL3。隨著uCOS和ThreadX全家桶都開源,其它RTOS影響是巨大的,還沒有開源的,可能也要加入開源大浪了。那這是為什么呢?1、全球使用Express Logic的ThreadX操作系統(tǒng)的電子設(shè)備已經(jīng)有62億,這個(gè)震撼的數(shù)值在持續(xù)增長中。2、因?yàn)門hreadX和它功能極為全面各種中間件:
- Azure RTOS ThreadX
- Azure RTOS NetX
- Azure RTOS NetX Duo
- Azure RTOS?FileX
- Azure RTOS GUIX
- Azure RTOS GUIX Studio
- Azure RTOS USBX
- Azure RTOS TraceX
1.2.系統(tǒng)移植前準(zhǔn)備本文中使用的開發(fā)板為小熊派IoT開發(fā)板,主控為STM32L431RCT6。由于 ThreadX 僅提供了 Cortex-M0 到 Cortex-M7 的 GCC版本的移植文件,所以本文中我們使用的工具鏈為:
- 操作系統(tǒng):Window10
- 生成初始化工程:STM32CubeMX
- 閱讀代碼:VSCode
- 編譯器:arm-none-eabi-gcc工具鏈
- 構(gòu)建工具:make
- 下載工具:OpenOCD
- 串口工具:QCOM_V1.6
2.1. 安裝VScode擴(kuò)展
這個(gè)擴(kuò)展是華為LiteOS提供的,此處不需要了解過多,我們僅僅是使用此擴(kuò)展完成以下事情:- 自動(dòng)安裝arm-none-eabi-gccG工具鏈
- 自動(dòng)安裝make構(gòu)建工具
- 自動(dòng)安裝openocd下載工具
- 可以在VScode中一鍵編譯、下載、調(diào)試
- 可以在VScode中查看串口輸出
安裝完成之后重啟VScode即可。iot-link擴(kuò)展只支持小熊派開發(fā)板的一鍵編譯、下載,如果是其它開發(fā)板:① 將arm-none-eabi-gcc和make工具添加到環(huán)境變量,在命令行編譯;② 使用ST-Link的下載軟件或者STM32cubeProg下載程序;③ 串口助手可以正常使用;
2.2. 創(chuàng)建STM32CubeMX工程
使用STM32CubeMX創(chuàng)建一個(gè)基于小熊派開發(fā)板的裸機(jī)工程,只需要配置一個(gè)打印串口和正確的時(shí)鐘頻率(圖省略)即可:工程設(shè)置中選擇Makefile,這樣cubemx可以自動(dòng)生成makefile:
生成工程即可:
2.3. 導(dǎo)入工程到VScode
打開VScode,點(diǎn)擊下方的Home(第2節(jié)擴(kuò)展安裝成功才會有),選擇導(dǎo)入GCC工程:工程目錄選擇剛剛生成的目錄,Makefile默認(rèn)是此工程中的makefile,芯片選擇STM32L431RCT6:
導(dǎo)入成功之后可以看到下方的操作按鈕:
2.4. 測試裸機(jī)工程是否正常
打開usart.c,添加將printf重定向到串口1的代碼:/* USER CODE BEGIN 1 */
#if 1
#include
int _write(int fd, char *ptr, int len) ?
{ ?
?HAL_UART_Transmit(





