安全操作系統(tǒng)Flexible Safety RTOS提供了空間隔離保護(hù),簡(jiǎn)化安全產(chǎn)品的設(shè)計(jì),其安全插件可幫助用戶(hù)安全團(tuán)隊(duì)提高微控制器診斷覆蓋率。
集成了Flexible Safety RTOS及其安全插件(PFM程序流監(jiān)控、E2E安全通信、CRC校驗(yàn))的關(guān)鍵應(yīng)用中,為滿(mǎn)足產(chǎn)品認(rèn)證需求,還需執(zhí)行一系列的自測(cè)試工作。針對(duì)STM32平臺(tái),廠商提供了X-CUBE-STL(STM32預(yù)認(rèn)證功能安全包,實(shí)現(xiàn)了IEC 61508安全完整性等級(jí)(SIL2/3)認(rèn)證)
ST提供的安全手冊(cè)列出了單片機(jī)安全分析中應(yīng)考慮的硬件、軟件和應(yīng)用層安全要求。部分Flexible Safety RTOS和Safety Addon安全插件已涵蓋的安全要求如下:
CPU_SM_1 -應(yīng)用軟件中的控制流監(jiān)控由PFM實(shí)現(xiàn)
CPU_SM_4 -應(yīng)用軟件的堆棧強(qiáng)化由安全插件E2E實(shí)現(xiàn)
MPU_SM_0 -MPU配置寄存器的周期性讀回由Flexible Safety RTOS提供
FLASH_SM_0 -Flash的定期軟件測(cè)試由STL或CRC模塊實(shí)現(xiàn)
FLASH_SM_1 -應(yīng)用軟件中的控制流監(jiān)控由PFM實(shí)現(xiàn)
RAM_SM_0 - SRAM內(nèi)存的定期軟件測(cè)試由STL完成
RAM_SM_2 -應(yīng)用軟件的堆棧強(qiáng)化由E2E實(shí)現(xiàn)
RAM_SM_3 -應(yīng)用軟件中與安全相關(guān)變量的信息冗余由E2E實(shí)現(xiàn)
RAM_SM_4 -應(yīng)用軟件中的控制流監(jiān)控由PFM覆蓋
RAM_SM_5 - RAM中應(yīng)用軟件的定期完整性測(cè)試由CRC覆蓋
BUS_SM_1 -芯片內(nèi)數(shù)據(jù)交換中的信息冗余由E2E覆蓋
DMA_SM_1 -通過(guò)DMA傳輸?shù)臄?shù)據(jù)包的信息冗余由E2E實(shí)現(xiàn)
注意:應(yīng)用中使用的外設(shè)接口(CAN, I2C, SPI, USB, ETH等)可能需要信息冗余技術(shù)。
如何在Flexible Safety RTOS的應(yīng)用中集成X-CUBE-STL?
集成步驟
在使用Flexible Safety RTOS的系統(tǒng)中集成在X-CUBE-STL,需先將Flexible Safety RTOS示例包及安全插件模塊解壓到一個(gè)文件夾中,然后添加X(jué)-CUBE-STL,生成的文件結(jié)構(gòu)如下:

現(xiàn)在,可以開(kāi)始集成工作了。步驟如下:
將X-CUBE-STL添加到make過(guò)程
將所需的X-CUBE-STL段添加到鏈接過(guò)程中
為flash測(cè)試編寫(xiě)校驗(yàn)程序
在代碼中集成和執(zhí)行X-CUBE-STL
基于IAR編譯器的具體操作如下:
Makefile
Embedded Office為項(xiàng)目提供了一個(gè)示例makefile文件,位于項(xiàng)目根目錄中。Makefile描述了BSP、RTOS和安全插件的構(gòu)建規(guī)則。現(xiàn)在我們需要將X-CUBE_STL集成到構(gòu)建過(guò)程中。
添加STM32_Safety_STL源代碼和頭文件搜索路徑:

添加鏈接的STL_Lib.a:

添加stl_user_param_template .c需要的編譯器定義STM32F407xx,用于選擇正確的硬件。

鏈接命令文件
與makefile類(lèi)似,Embedded Office在示例根目錄中提供了一個(gè)鏈接命令文件,該文件依賴(lài)于開(kāi)發(fā)環(huán)境。IAR中鏈接文件擴(kuò)展名為“.icf”。
在該文件中,我們?yōu)閄-CUBE_STL內(nèi)存測(cè)試添加了一個(gè)"backup_buffer_section":

注意:此段在RAM測(cè)試期間使用,因此RAM內(nèi)容不會(huì)被破壞。
FLASH測(cè)試校驗(yàn)和
確保在下載應(yīng)用程序時(shí),同時(shí)下載flash測(cè)試的CRC校驗(yàn)和。校驗(yàn)和須存儲(chǔ)在flash中。用戶(hù)可以使STM32CubeProgrammer編程CRC。
使用Lauterbach Trace32調(diào)試器時(shí),在腳本文件*.cmm中執(zhí)行以下代碼,計(jì)算CRC校驗(yàn)并將其放置到所需的位置:

示例應(yīng)用
現(xiàn)在我們可以在應(yīng)用中調(diào)用X-CUBE-STL測(cè)試函數(shù)。選擇調(diào)用位置時(shí),需考慮以下因素:
所有測(cè)試功能需要特權(quán)訪問(wèn)權(quán)限
測(cè)試函數(shù)在有限的時(shí)間內(nèi)關(guān)閉中斷
我們選擇在hook函數(shù)調(diào)用測(cè)試功能:

注1:空閑任務(wù)堆棧必須足夠大。參見(jiàn)STM32F4系列自測(cè)庫(kù)用戶(hù)指南了解所需的STL堆棧。
注2:上面的示例調(diào)用了所有STL演示。在實(shí)際項(xiàng)目中,僅需選擇涵蓋安全要求的測(cè)試。
注3:Flexible Safety RTOS的安全手冊(cè)強(qiáng)制執(zhí)行MPU配置的在線測(cè)試。
作為替代方案,可以在啟動(dòng)安全應(yīng)用程序之前將一個(gè)或多個(gè)STL測(cè)試作為POST測(cè)試執(zhí)行:
? ? ? ? ?
結(jié)論
STM32自測(cè)庫(kù)與Flexible Safety RTOS和安全插件的集成為從事安全關(guān)鍵項(xiàng)目的軟件開(kāi)發(fā)人員提供了強(qiáng)大的解決方案。通過(guò)利用自測(cè)庫(kù)的全面安全檢查、實(shí)時(shí)故障檢測(cè)和診斷報(bào)告功能,開(kāi)發(fā)人員可以確保出色的功能安全性、可靠性,并符合行業(yè)法規(guī)。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
130013 -
STM32
+關(guān)注
關(guān)注
2310文章
11162瀏覽量
373518 -
MPU
+關(guān)注
關(guān)注
0文章
455瀏覽量
51355 -
RTOS
+關(guān)注
關(guān)注
25文章
866瀏覽量
123041 -
CRC校驗(yàn)
+關(guān)注
關(guān)注
0文章
84瀏覽量
15930
原文標(biāo)題:如何在Flexible Safety RTOS安全應(yīng)用中集成X-CUBE-STL?
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何在STM32CubeMX中集成Flexible Safety RTOS
如何在Eclipse ThreadX RTOS中集成SystemView
X-CUBE-STL與ARM的STL的區(qū)別是什么?
STM32Cube Hal如何去認(rèn)證RTOS?
將X-CUBE-STL與Arm FuSa RTS結(jié)合使用
STM32G0系列安全手冊(cè)
通過(guò)X-CUBE-STL自測(cè)庫(kù)實(shí)現(xiàn)工業(yè)功能安全
使用于STM32(符合IEC 61508標(biāo)準(zhǔn))的X-CUBE-STL功能安全包適應(yīng)其他安全標(biāo)準(zhǔn)
為 STM32 調(diào)整 X-CUBE-STL 功能安全包 (IEC 61508 符合)其他安全標(biāo)準(zhǔn)
Flexible Safety RTOS支持NXP S32K高性能處理器
如何在OpenMV生態(tài)系統(tǒng)中集成STM32Cube.AI生成的代碼
在具有RTOS的STM32Cube上開(kāi)發(fā)應(yīng)用
在Flexible Safety RTOS安全應(yīng)用中集成X-CUBE-STL的步驟
評(píng)論