如何在Flexible Safety RTOS安全应用中集成X-CUBE-STL?

浏览:617来源:本站时间:2024-03-15

安全操作系统Flexible Safety RTOS提供了空间隔离保护,简化安全产品的设计,其安全插件可帮助用户安全团队提高微控制器诊断覆盖率。

集成了Flexible Safety RTOS及其安全插件(PFM程序流监控、E2E安全通信、CRC校验)的关键应用中,为满足产品认证需求,还需执行一系列的自测试工作。针对STM32平台,厂商提供了X-CUBE-STL(STM32预认证功能安全包,实现了IEC 61508安全完整性等级(SIL2/3)认证)。


ST提供的安全手册列出了单片机安全分析中应考虑的硬件、软件和应用层安全要求。部分Flexible Safety RTOS和Safety Addon安全插件已涵盖的安全要求如下:

▪CPU_SM_1 -应用软件中的控制流监控由PFM实现

▪CPU_SM_4 -应用软件的堆栈强化由安全插件E2E实现

▪MPU_SM_0 -MPU配置寄存器的周期性读回由Flexible Safety RTOS提供

▪FLASH_SM_0 -Flash的定期软件测试由STL或CRC模块实现

▪FLASH_SM_1 -应用软件中的控制流监控由PFM实现

▪RAM_SM_0 - SRAM内存的定期软件测试由STL完成

▪RAM_SM_2 -应用软件的堆栈强化由E2E实现

▪RAM_SM_3 -应用软件中与安全相关变量的信息冗余由E2E实现

▪RAM_SM_4 -应用软件中的控制流监控由PFM覆盖

▪RAM_SM_5 - RAM中应用软件的定期完整性测试由CRC覆盖

BUS_SM_1 -芯片内数据交换中的信息冗余由E2E覆盖

DMA_SM_1 -通过DMA传输的数据包的信息冗余由E2E实现

注意:应用中使用的外设接口(CAN, I2C, SPI, USB, ETH等)可能需要信息冗余技术。


如何在Flexible Safety RTOS的应用中集成X-CUBE-STL?

集成步骤

在使用Flexible Safety RTOS的系统中集成在X-CUBE-STL,需先将Flexible Safety RTOS示例包及安全插件模块解压到一个文件夹中,然后添加X-CUBE-STL,生成的文件结构如下:

图片

现在,可以开始集成工作了。步骤如下:

▫ 将X-CUBE-STL添加到make过程

▫ 将所需的X-CUBE-STL段添加到链接过程中

▫ 为flash测试编写校验程序

▫ 在代码中集成和执行X-CUBE-STL


基于IAR编译器的具体操作如下:

Makefile

Embedded Office为项目提供了一个示例makefile文件,位于项目根目录中。Makefile描述了BSP、RTOS和安全插件的构建规则。现在我们需要将X-CUBE_STL集成到构建过程中。

添加STM32_Safety_STL源代码和头文件搜索路径:

图片

添加链接的STL_Lib.a:

图片

添加stl_user_param_template .c需要的编译器定义STM32F407xx,用于选择正确的硬件。

图片


链接命令文件

与makefile类似,Embedded Office在示例根目录中提供了一个链接命令文件,该文件依赖于开发环境。IAR中链接文件扩展名为“.icf”。

在该文件中,我们为X-CUBE_STL内存测试添加了一个"backup_buffer_section":

图片

注意:此段在RAM测试期间使用,因此RAM内容不会被破坏。


FLASH测试校验和

确保在下载应用程序时,同时下载flash测试的CRC校验和。校验和须存储在flash中。用户可以使STM32CubeProgrammer编程CRC。

使用Lauterbach Trace32调试器时,在脚本文件*.cmm中执行以下代码,计算CRC校验并将其放置到所需的位置:

图片


示例应用

现在我们可以在应用中调用X-CUBE-STL测试函数。选择调用位置时,需考虑以下因素:

京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司