使用STM32處理器的用戶,可以通過(guò)STM32Cube工具生成基礎(chǔ)工程,免費(fèi)評(píng)估功能安全操作系統(tǒng)Flexible Safety RTOS二進(jìn)制庫(kù)了。
STM32Cube生態(tài)系統(tǒng)包含軟件工具和嵌入式軟件庫(kù),提供了一套完整的PC軟件工具,解決完整項(xiàng)目開(kāi)發(fā)周期的所有需求;包含在STM32微控制器和微處理器上運(yùn)行的嵌入式軟件塊,如Flexible Safety RTOS。
圖1
通過(guò)在STM32CubeMX工具添加STM32Cube擴(kuò)展包集成嵌入式軟件塊,簡(jiǎn)化創(chuàng)建軟件包工程的過(guò)程。
軟件版本
在Flexible SafetyRTOS集成和應(yīng)用的開(kāi)發(fā)過(guò)程中,我們使用的開(kāi)發(fā)環(huán)境版本信息如下:
STM32Cube MX v6.11.1
STM32Cube IDE v1.15.1
舊的軟件版本可能無(wú)法正常工作,為了避免這種情況,我們建議更新本地STM32Cube環(huán)境到最新版本。
安裝擴(kuò)展包
在STM32CubeMX用戶手冊(cè)(https://www.st.com/resource/en/user_manual/um1718-stm32cubemx-for-stm32-configuration-and-initialization-c-code-generation-stmicroelectronics.pdf)中詳細(xì)解釋了STM32Cube擴(kuò)展包的安裝。本節(jié)介紹如何激活中間件軟件Flexibe Safety RTOS(FS-RTOS)。
1 通過(guò)https://www.embedded-office.net/download/public/pack/st/EmbeddedOffice.I-CUBE-FS-RTOS.1.0.1.pack鏈接,下載軟件包。
2 在STM32CubeMX中,選擇Help->Manage embedded software packages,點(diǎn)擊From Local…,閱讀并接受License Agreement評(píng)估許可協(xié)議,開(kāi)始安裝,并在安裝完成后關(guān)閉Embedded Software Package Manager。
圖2
FS-RTOS軟件包使用
基于MCU或評(píng)估板創(chuàng)建STM32CubeMX工程后,通過(guò)單擊“Software Packs”選項(xiàng)卡并選擇“SelectComponents”,如圖3所示
圖3
在打開(kāi)的“Software Packs Component Selector”窗口,找到安裝的“EmbeddedOffice.I-CUBE-FS-RTOS”組件。打開(kāi)組件下拉菜單,設(shè)置FS-RTOS為“Eval”,然后選擇一個(gè)應(yīng)用程序,例如“Blinky”,單擊Ok按鈕。
圖4
硬件設(shè)置
為了使項(xiàng)目正常工作,需檢查下列設(shè)置:
1 在System Core->RCC->High Speed Clock中,使用外部晶振。
2 確保在Clock Configuration選項(xiàng)卡中將系統(tǒng)時(shí)鐘設(shè)置為合理的值(例如HCLK設(shè)置為max)。
3 在生成的應(yīng)用程序中,使用SysTick作為RTOS時(shí)基,因此,HAL庫(kù)需使用另外的時(shí)鐘源。可以通過(guò)System Core->SYS->Timebase Source,修改HAL時(shí)基為其它定時(shí)器(如Tim1)或禁止HAL時(shí)基(選擇None)。
注:如果禁用HAL時(shí)基,用戶需要在RTOS時(shí)鐘節(jié)拍處理回調(diào)函數(shù)App_TimeTickHook()中調(diào)用HAL_IncTick()函數(shù),回調(diào)函數(shù)位于文件Blinky/App/app_blinky_callback.c中。
4 至少需要選擇和配置一個(gè)GPIO輸出引腳,該GPIO輸出引腳用于應(yīng)用參數(shù)設(shè)置。
在生成的演示應(yīng)用前,我們可能還需到System Core->NVIC中配置中斷的優(yōu)先級(jí),以確保系統(tǒng)正常工作。
配置Flexible Safety RTOS
在“Pinout&Configuration”選項(xiàng)卡中,在“Middleware and Software Packs”類別中找到I-CUBE-FS_RTOS組件,配置項(xiàng)目:
1 選擇Flexible Safety RTOS組件:I-CUBE-FS_RTOS。
2 將Flexible Safety RTOS集成到您的項(xiàng)目中(無(wú)需額外的參數(shù)設(shè)置)。
3 生成選定的演示應(yīng)用程序(例如Blinky)。
4 指定與應(yīng)用程序相關(guān)的外設(shè),以生成所需的BSP函數(shù)。在圖5中,必須為LED選擇配置好的GPIO輸出引腳。
圖5
代碼生成
最后,我們?cè)赑roject Manager選項(xiàng)卡中為代碼生成執(zhí)行一些基本配置:
Project name:項(xiàng)目名稱。
Project Location:工作空間目錄,保存項(xiàng)目。
Application Structure:Advanced(不勾選Do not generate the main())。
Toolchain/IDE:選擇工具鏈STM32CubeIDE(或EWARM…),選中Generate Under Root。
圖6
其它設(shè)置保持不變。
項(xiàng)目結(jié)構(gòu)
使用GENERATE CODE按鈕,開(kāi)始生成項(xiàng)目。STM32CubeMX生成的項(xiàng)目結(jié)構(gòu)如下:
圖7
您可以在ST定義的目錄樹中找到Flexible Safety RTOS評(píng)估包,位于Middleware和Blinky目錄。
RTOS集成
當(dāng)使用STM32Cube擴(kuò)展包生成項(xiàng)目后,F(xiàn)lexible Safety RTOS集成已經(jīng)完成。如果你想要手動(dòng)集成Flexible Safety RTOS到現(xiàn)有項(xiàng)目中,需要在生成的回調(diào)函數(shù)文件Blinky/App/app_blinky_callback.c中添加RTOS系統(tǒng)滴答處理:
圖8
默認(rèn)配置中OS_TICKS_PER_SEC為1000,因此內(nèi)部SysTick計(jì)時(shí)器每秒會(huì)產(chǎn)生1000個(gè)系統(tǒng)滴答中斷。
診斷
內(nèi)存異常處理
如果更改例程并進(jìn)行實(shí)驗(yàn),可能會(huì)遇到內(nèi)存異常的問(wèn)題。在這種情況下,我們建議在生成的項(xiàng)目中添加一個(gè)訪問(wèn)錯(cuò)誤診斷處理程序。
在生成的中斷處理程序文件Core/Src/_it.c中,在函數(shù)MemManage_Handler()中增加訪問(wèn)違規(guī)信息收集:
圖9
訪問(wèn)位于Blinky/App/app_blinky_callback.c中的故障回調(diào)函數(shù),獲取下列信息:
info->CurPrio:哪個(gè)任務(wù)執(zhí)行導(dǎo)致內(nèi)存沖突。
info->IAddress:發(fā)生異常的指令地址。
info->DAddress:寫保護(hù)的數(shù)據(jù)地址
圖10
通過(guò)以上操作,我們完成了RTOS集成工作。接下來(lái),可以深入Flexible SafetyRTOS組件的文件結(jié)構(gòu)(https://www.embedded-office.net/eval/manual/latest/os/file.html#file-structure),開(kāi)始構(gòu)建應(yīng)用。
Flexible Safety RTOS是基于μC/OS-II擴(kuò)展的功能安全預(yù)認(rèn)證操作系統(tǒng),麥克泰技術(shù)是Flexible Safety RTOS在中國(guó)的代理商,具有超過(guò)20年嵌入式實(shí)時(shí)操作系統(tǒng)和功能安全軟件服務(wù)的市場(chǎng)、服務(wù)和培訓(xùn)經(jīng)驗(yàn),聯(lián)系[email protected]。
-
微控制器
+關(guān)注
關(guān)注
48文章
7903瀏覽量
153667 -
嵌入式
+關(guān)注
關(guān)注
5138文章
19524瀏覽量
314692 -
STM32
+關(guān)注
關(guān)注
2289文章
11011瀏覽量
362240 -
RTOS
+關(guān)注
關(guān)注
24文章
840瀏覽量
120736 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
286瀏覽量
15967
原文標(biāo)題:如何在STM32CubeMX中集成Flexible Safety RTOS
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
在Flexible Safety RTOS安全應(yīng)用中集成X-CUBE-STL的步驟

如何在Eclipse ThreadX RTOS中集成SystemView
如何在STM32CubeMX中集成Cs/OS3?
STM32學(xué)習(xí)之STM32cubeMX軟件安裝與使用(附STM32cubeMX5.2.1下載地址)

STM32CubeMX 窗口及工具介紹

評(píng)論