打印
[应用相关]

TouchGFX工程中hex目标文件的烧写方法(三)使用IAR-1

[复制链接]
766|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前一篇**讨论了在 KEIL中如何正确配置来烧写片外flash,既然说到了KEIL,就不得不说说IAR ---- 跟KEIL一样,TouchGFX自动生成的工程项目,在IAR中同样不能正确烧写片外flash!不过,经过适当的手动配置,IAR是可以烧写片外flash的,只是要费些周折。下面以Clock例程为例说明配置过程。


作者:海东青电子
链接:https://www.jianshu.com/p/c317a54b0e32
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
沙发
peripheral|  楼主 | 2020-6-23 14:56 | 只看该作者
以STM32F769I-DISCO板子为例,创建一个TouchGFX工程,并使用系统自带的Clock例程:

使用特权

评论回复
板凳
peripheral|  楼主 | 2020-6-23 14:56 | 只看该作者
不需要编写任何代码,使用Clock例程就行,先运行VS、看看在仿真器上是否能正确跑起来这个Clock。然后,进入IAR,因为使用的是目前最新的IAR版本V8.32,所以要使用 IAR8.x 这个目录下的IAR工程:

使用特权

评论回复
地板
peripheral|  楼主 | 2020-6-23 14:57 | 只看该作者
这个目录中还有 .board、.flash等文件,这些文件非常重要,烧写flash就靠他们了,后面将详述。双击 application.eww ,打开IAR,如果弹出询问是否升级的窗口:

使用特权

评论回复
5
peripheral|  楼主 | 2020-6-23 14:57 | 只看该作者
选择 Yes ,转换成新版的工程文件,然后就进入了IAR界面。 按下 F7 编译:

使用特权

评论回复
6
peripheral|  楼主 | 2020-6-23 14:58 | 只看该作者
IAR正确生成了out 和 hex 目标文件。尝试下载:

使用特权

评论回复
7
peripheral|  楼主 | 2020-6-23 14:59 | 只看该作者
弹出一个错误信息:

使用特权

评论回复
8
peripheral|  楼主 | 2020-6-23 14:59 | 只看该作者
大意是:系统在生成flash算法时出错了,左下方的 Debug Log 中有详细解释:

使用特权

评论回复
9
peripheral|  楼主 | 2020-6-23 15:08 | 只看该作者
图七中显示了一个警告:烧写flash警告,代码段位于地址 [0x90000000,0x9003CC5F] 范围的将不能被烧写。这个地址范围正是片外flash的地址,检查一下当前IAR关于烧写flash的配置情况,Alt+F7 打开工程选项,在  =>调试器=>下载  选项页下,有一个 .board 文件:

使用特权

评论回复
10
peripheral|  楼主 | 2020-6-23 15:08 | 只看该作者
IAR项目主目录下有一个 FlashSTM32F76xxI.board 文件,它描述了目标板子上flash的“配置”情况,在上图中直接点击 Edit 按钮就可以打开这个文件:

使用特权

评论回复
11
peripheral|  楼主 | 2020-6-23 15:09 | 只看该作者
可以看到,.board 文件中描述了F7片内2个地址段对应的烧写算法文件(.flash文件),但没有配置片外地址为0x9000 0000开始的flash对应的算法文件,所以造成烧写失败。

使用特权

评论回复
12
peripheral|  楼主 | 2020-6-23 15:10 | 只看该作者
通过查找IAR的相关资料,并仿照另外一个IAR支持片外flash烧写的ST官方开发板的 .board 文件,针对 STM32F769I-DISCO 板子重新编写了几个烧写片外flash的算法文件、一共6个文件如下:

使用特权

评论回复
13
peripheral|  楼主 | 2020-6-23 15:10 | 只看该作者
【 网盘下载地址:https://pan.baidu.com/s/1Q_lG1L_7NpJAhYBX8MqJ6g,提取码:toyr 】

将这6个文件全部copy到IAR工程目录下:

使用特权

评论回复
14
peripheral|  楼主 | 2020-6-23 15:11 | 只看该作者
在IAR中重新指定烧写flash的 .board 文件为 FlashSTM32F769I-DISCO.board :

使用特权

评论回复
15
peripheral|  楼主 | 2020-6-23 15:12 | 只看该作者
再次点击 Edit 查看:

使用特权

评论回复
16
peripheral|  楼主 | 2020-6-23 15:12 | 只看该作者
地址0x9000 0000已经有对应的算法文件了(并且,去掉了本项目中没用到的TCM flash)。再次下载,目标板成功烧写:

使用特权

评论回复
17
peripheral|  楼主 | 2020-6-23 15:13 | 只看该作者
板子实际跑的效果:

使用特权

评论回复
18
peripheral|  楼主 | 2020-6-23 15:14 | 只看该作者
也许有网友好奇:那个 FlashSTM32F769I-DISCO.board 文件,以及其他5个文件是怎么做出来的?对这些文件制作过程以及分析思路感兴趣的朋友请看下一篇:TouchGFX工程中hex目标文件的烧写方法(三)使用IAR-2。

使用特权

评论回复
19
peripheral|  楼主 | 2020-6-23 15:14 | 只看该作者
作者:海东青电子
链接:https://www.jianshu.com/p/c317a54b0e32
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
20
guanjiaer| | 2020-7-10 14:09 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

438

帖子

2

粉丝