项目简介
本项目是一个代码示例,展示了如何将固件配置为安全启动。采用TRAVEO™ T2G CYT4BF系列微控制器,对CM0+和CM7_0/1固件进行数字签名验证,保障系统安全性。项目实现了BootROM、Flash Boot和加密模块的功能,还提供详细的硬件设置和代码实现步骤。
项目的主要特性和功能
- 安全启动验证:通过BootROM验证Flash Boot,Flash Boot验证CM0+固件,CM0+固件验证CM7_0/1固件,确保固件完整且安全。
- 多种加密算法支持:支持AES、CHACHA20、TDES、SHA、CRC等多种加密算法,加密功能强大。
- 用户配置灵活:通过TOC2可配置下一个启动应用的地址、格式、调试监听窗口、启动时间和功耗等参数。
- 嵌入式Bootloader:支持CAN和LIN Bootloader,可替代SWD或JTAG进行工厂编程。
安装使用步骤
硬件准备
使用TRAVEO™ T2G评估套件(KIT_T2G-B-H_EVK或KIT_T2G-B-H_LITE),通过KitProg3 USB连接器用USB电缆连接到PC,无需更改板载默认设置。
软件准备
若没有终端模拟器,需安装一个,本项目文档使用Tera Term。
代码配置与编译
- TOC2配置:在CM0+固件的
main.c
中,将TOC2作为常量表SFLASH_TOC2
准备好,放置在SFLASH的指定地址(0x17007C00)。 - 非对称密钥准备:使用
utils
子文件夹中的rsa_keygen.bat
批处理脚本生成RSA - 2048公钥和私钥,该脚本依赖OpenSSL(版本高于1.0.2)和Python 3.x.x。 - 公钥放置:将公钥作为常量表
PUBLIC_KEY
放置在CM0+固件的main.c
中,可从keys_generated
文件夹中的rsa_to_c_generated.txt
文件复制。 - 数字签名授予:项目构建完成后,在每个项目的顶级文件夹中执行以下命令,将数字签名嵌入到生成的elf文件中:
sh ../utils/cymcuelftool.exe --sign build/<kit_name>/<config_name>/<proj_name>.elf SHA256 --encrypt RSASSA - PKCS --key ../utils/keys_generated/rsa_private.txt
此命令已在每个核心的Makefile
的POSTBUILD中注册。
设备编程与运行
- 打开终端程序,选择KitProg3 COM端口,设置串口参数为8N1和115200波特率。
- 选择项目资源管理器中的CE项目,在“快速面板”中向下滚动,点击“[项目名称] Program (KitProg3_MiniProg4)”对板载进行编程。
- 编程完成后,CE自动启动,确认UART终端上显示的消息。
调试
在IDE的“快速面板”中使用“[项目名称] Debug (KitProg3_MiniProg4)”配置进行代码调试。注意在CM7 CPU上调试时的代码执行问题,可参考KBA231071获取解决方案。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】