4420|1

227

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

如何在IAR开发环境中调试自定义Flash loader? [复制链接]

#介绍

开发自定义flash loader可能是一个复杂的过程,因为开发者很难通过常规方式调试flash loader。本文介绍一种调试flash loader的方法。

在开发自定义flash loader的过程中,可以使用semihosting printf调试flash loader的活动。总体思路是:

🔹使用semihosting printf构建Flash loader项目

🔹配置项目以生成Terminal I / O日志文件

在以下的示例项目中,实验工具使用STM32F429II-ACA 开发板和I-jet仿真器。

 

#使用semihosting printf构建Flash loader项目

1、从$TOOLKIT_DIR$\ src \ flashloader中打开Flash loader工作空间(在本例中为ST \ FlashSTM32F4xx)。

图1 FlashSTM32F4xx工程

 

2、选择正确的配置(在本例中选择配置FlashSTM32F4xxRAM192K_Dual)。

 

图2 选择FlashSTM32F4xxRAM192K_Dual配置

 

3、在flasher loader项目中,根据以下路径 Project > Options > General Options > Library Configuration > stdout/stderr: Via semihosting选择semihosting输出。

4、在FlashInit函数的开头添加__iar_data_init3()函数调用和printf语句,如下所示:

__iar_data_init3(); // Required to initialize .bss

parallelism = 1;

blankcheck = 0;

printf("Hello! World\n\n");

printf("image_size:%d\n\n", image_size);

 

图3 调用函数和添加printf语句

 

5、如果出现链接器错误:[Lp005]: placement includes a mix of sections with content and sections without content,则需要修改链接器配置文件。

将这些行注释掉:do not initialize { zi } 或do not initialize { section .bss }。

新添一行(如果该行不存在):initialize by copy { readwrite }。

6、在$ TOOLKIT_DIR $ \ config \ flashloader \ ST 中构建并替换原有的Flash loader.out文件。

 

#配置项目以生成Terminal I / O日志文件

Flash loader的printf输出在Terminal I / O窗口中是不可见。但是,它被记录在终端I / O日志文件中。

1、从Help > Information Center > Example Projects中打开STM32F429II-ACA LightEffects项目。

2、将调试器驱动程序临时更改为Simulator,以防无法使用I-jet或其他硬件仿真器启动调试会话:Project > Options > Debugger > Setup>Driver: Simulator。

3、通过选择Project > Download and Debug来启动调试会话。

4、通过选择Debug > Logging > Set Terminal I/O Log File来启用Terminal I / O日志文件

图5 设置Terminal I/O 日志文件

 

5、退出调试会话,然后将调试器驱动程序更改回I-jet:Project > Options > Debugger > Setup>Driver: I-jet。

6、通过选择Project > Download and Debug来启动新的调试会话。

7、现在,Flash loader的printf输出就记录在终端I / O日志文件中。

图6 内容输出到日志文件中

 

#结论

通过semihosting printf的调试方式和终端I / O日志文件记录输出信息的方式可以帮助我们实现自定义Flash loader的开发。

有关开发自定义flash loader的更多信息,参见IAR安装目录$ TOOLKIT_DIR $ \ doc \ FlashLoaderGuide.ENU.pdf中的Flash Loader Development Guide。

 

 

最新回复

最好也把STM32F429II-ACA 开发板的原理图有发上来,大家好对应看代码   详情 回复 发表于 2021-5-31 15:33
点赞 关注
个人签名

欢迎关注“麦克泰技术”

 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

最好也把STM32F429II-ACA 开发板的原理图有发上来,大家好对应看代码

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表