上例测评中实现slib功能过程中,由于遭遇到IAR奔溃问题,采用妥协方式实现了slib功能,本次测评是问题解决过程,并实现了slib的二次开发模式,即先通过ICP方式烧录安全代码并启动slib,然后通过IDE下载用户代码。
经过分析由于flash区域重叠造成奔溃。因此重新规划安全:
1. 一页指令,0x0800E000-0x080027FF
2. 一页数据,0x0800E800-0x08003000
1. 安全代码项目
1.1调整项目,将数据文件和代码文件独立开来】
1.2安全代码项目更改ICF文件安全区地址
1.3编译后通过map文件确认地址分配
1.5 通过ICP烧录安全代码并启动slib
1.5.1.链接AT-Link后提取安全区代码
1.5.2生成安全烧录代码文件
1.5.3 下载刚刚生成的提取文件并启动slib功能
2. 用户代码项目
2.1 延用上次评测用户项目,调整ICF文件
2.2调整用户代码下载地址地址。
Option->Debugger->Download->Edit(Override default .board file)->Edit->Flash Loader Overview->Flash Loader Configuration
2.3编译后下载观察安全区代码均为0xFF
2.4 运行调试用户代码
1.二次开发模式下,用户无需接触slib的代码,只需调用就可以。换句话说,供应商开发好有关核心代码后先烧录入芯片安全区并启动安全模式,然后将芯片递交给用户。对于用户而言,就像使用一个库函数一样。
2. 调试运行效果
本帖最后由 uuxz99 于 2020-10-22 21:47 编辑