【AT-START-F403A测评】之四freeRTOS系统基于IAR环境外挂flash(SPIM)运行测评
[复制链接]
上次评测实现了外部SPIM外挂QSPI Flash性能粗测,本次测评spim外部flash运行代码执行情况。本次评测将外部flash分为两个部分,
- 0x08400000-0x0840FFFF作为数据区域,
- 0x08410000-0x093FFFFF作为代码运行区域。将以前评测三个LED点灯任务(线程)运行在这个区域。
- 定制项目链接配置:
- 定制链接配置文件,从IAR安装目录\arm\config\linker\ArteryTek目录下复制AT32F403AxG.icf文件到工程项目目录中并更名为AT32F403AxG_extFlash.icf,为方便修改加入项目中,如下图所示。
-
- 修改链接配置文件,增加ROM空间符号定义分别为:
- define symbol __ICFEDIT_region_ROM_BANK3_start__ = 0x08410000;
- define symbol __ICFEDIT_region_ROM_BANK3_end__ = 0x093FFFFF;
- define region ROM_BANK3_CODE_region =mem:[from __ICFEDIT_region_ROM_BANK3_start__ to __ICFEDIT_region_ROM_BANK3_end__];
- place in ROM_BANK3_CODE_region {readonly section .text object led_task.o};
-
- 指定项目链接配置文件:
- 进入菜单project->option,弹出对话框选择Linker->config
- 选中Override Default选项,选择修改的链接配置文件
- 定制下载bootloader:
- 复制IAR安装目录\arm\config\flashloader\ArteryTek\AT32F403A\AT32F403ACGT7目录下两个文件到项目工程。
- FlashAT32F403ACGT7.flash
- FlashAT32F403ACGT7.board
- 更名两个文件为AT32F403ACGT7_extFlash.board和AT32F403ACGT7_extFlash.flash,修改AT32F403ACGT7_extFlash.flash中内容如下图所示
-
- 指定项目bootloaer配置 ,
- 进入菜单project->option,
- 弹出对话框选择Debugger>Download,
- 选中Override default .board file
- 更改内容如下图所示
- 点击Edit…按钮,更改如下图所示
- 指定调试设备描述文件(DDF):
- 从IAR安装目录\ \arm\config\debugger\ArteryTek目录下复制AT32F403AxG.ddf在本目录并更名为AT32F403AxG_extFlash.ddf。
- 便于IAR调试观察所下载的代码,需要定制IAR调试的设备描述文件,增加外部flash定制空间定义。如下图
-
- 指定DDF文件
- SPIM相关源代码(略):
见上一篇SPIM初始化说明。
- 编译验证:
- 编译通过后打开编译存储器映射文件at32403a_eval.map,搜说led_task关键字,如下图所示,放置概述里,已在预定区域。
-
- 这两个区域详细描述
- 运行位置验证
- 在每个任务中设置相应断点后运行直到遇到断点暂停,观察汇编地址的确在0x08410000所在区域。
- 运行结果
-
- 外部flash运行速度尚未具体测试不能确定,后续补充一下
- 下载时被提示有错误,观察调试log信息 Verification error at 0x08410000: mem = 0xFF, file = 0x38,应该是调试器没有正确读取外部flash数据。但实际观察是正确的,如下图所示,并且调试及运行尚未发现问题,后续发现问题再修正或补充。
|