【AT-START-F403A测评】之五--freeRTOS系统基于IAR环境安全库(sLib)功能测评
[复制链接]
本帖最后由 uuxz99 于 2020-10-19 11:01 编辑
【AT-START-F403A测评】之五--freeRTOS系统基于IAR环境安全库(sLib)功能测评
本次对安全库(sLib)功能进行测评。本例测评采用两个project实现,首先新建需要进行安全保护的项目,本次评测将之前评测中显示任务打印字符信息作为保护对象,以下简称为保护代码。另一个是延用之前评测项目,以下简称为用户代码。步骤如下
1.安全区域规划
- 一页指令,0x08002000-0x080027FF
- 一页数据,0x08002800-0x08003000
2.为保护代码新建安全保护项目
2.1建立项目框架并新建工程文件
2.2工程文件mainlib.c,内容无所谓
2.3工程文件slibledFunc.c,是受保护的代码
2.4定制链接配置文件(ICF)
从IAR安装目录\arm\config\linker\ArteryTek目录下复制AT32F403AxG.icf文件到工程项目目录中并更名为AT32F403AxG_sLib.icf,如下修改
2.5指定项目链接配置文件:
- 进入菜单project->option,弹出对话框选择Linker->config
- 选中Override Default选项,选择修改的链接配置文件
2.6增加编译后处理命令,便于输出符号用于应用代码。
- $TOOLKIT_DIR$\bin\isymexport.exe "$TARGET_PATH$" "$PROJ_DIR$\slibLedFunc_symbol.o" --edit "$PROJ_DIR$\slibLedFunc.txt"
- 输出符号控制文件slibLedFunc.txt是输出符号控制文件,用于生成选定的输出符号代码。
2.7符号输出命令设置
2.8编译结果如下
3.用户代码设置
3.1定制链接配置文件(ICF)
从IAR安装目录\arm\config\linker\ArteryTek目录下复制AT32F403AxG.icf文件到工程项目目录中并更名为AT32F403AxG_app.icf,如下修改
3.2项目文件调整
移除原有led.c增加符号输出文件。
3.3修改任务调用函数如下
3.4通过ICP提取并生成安全代码烧录文件:
读取有关保护部分0x08002000-0x08003F00并保存为文件
3.5通过ICP烧录安全代码:
- 先通过IDE下载或者ICP下载用户代码。
- 通过ICP烧录保护代码。
结论
|