硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4321|回复: 13
收起左侧

[Flashloader] 【原创】Flashloader(Mfgtool)的五大巨坑,坑坑致命,跨过才能一片光明,否则鬼哭狼嚎(已经更新)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
发表于 2018-5-6 00:32:02 | 显示全部楼层 |阅读模式
    Mfgfool软件的主要目的还是批量下载,加密和熔丝位的设置,脱离了这三条,就用不上这个软件了,其它情况使用MDK或者IAR下载即可。
当前可以同时下载四个设备

QQ截图20180507110756.png

但是这个软件要用起来,坑居多,坑坑致命,下面就把要注意的问题说一下。

五大坑说明:

1、坑1和坑2:既然是用于批量下载的,那么这个软件就可以同时识别多个下载设备,怎么识别?当前的方法需要给电脑外接一个USB HUB,即USB集线器,然后将开发板通过USB线接到集线器上才行,不可直连电脑。这里的USB线材一定要用高质量的,支持USB2.0高速传输的连接电脑端。质量差的线很容易识别不出来。USB HUB也非常重要,一定要用质量好的(最好出口多的,我的当前是1进,7出)。

2、坑3:使用的工程不要带XIP文件了,因为这个flashloader里面的elftosb文件会给MDK或者IAR生产的可执行文件添加XIP配置信息。如果添加了XIP信息,使用elftosb转换的时候会导致这个软件死机。

3、坑4:这个坑相当的隐蔽,一般非常难发现,如果你用的官方的EVK可能没问题,但是你自己做的板子就有问题了。因为RT1052进入串行下载模式后,是支持串口下载和USB下载的,此时如果不将USART1的RX引脚上拉高电平,大家使用Mfgtool下载基本都不会成功。

4、坑5:这个坑就更加厉害了,我硬是使用那个elftosb软件转换了不下100遍,中间的各种痛苦过程就不提了,直接说结果。这个elftosb软件不知道什么鬼,应该是有修改中断向量表的位置,大家写的程序一定要在main函数里面首先将中断向量表加载的DTCM或者ITCM里面来,并设置其位置。


在此分享给大家,防止大家继续入坑。

评分

参与人数 1金币 +20 收起 理由
venus5712 + 20 淡定

查看全部评分

回复

使用道具 举报

32

主题

187

回帖

283

积分

高级会员

积分
283
发表于 2018-5-7 09:17:35 | 显示全部楼层
老师辛苦了
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2018-5-7 09:28:52 | 显示全部楼层
本帖最后由 novice 于 2018-5-7 14:49 编辑

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
 楼主| 发表于 2018-5-7 11:54:30 | 显示全部楼层
已经更新内容。
回复

使用道具 举报

4

主题

139

回帖

151

积分

初级会员

积分
151
QQ
发表于 2018-5-7 14:22:21 | 显示全部楼层
老师辛苦了
回复

使用道具 举报

0

主题

154

回帖

154

积分

初级会员

积分
154
发表于 2018-5-7 14:35:52 | 显示全部楼层
大神,总结得真好,根据我的研究,我还想补充一下坑5的根本原因。

无论IAR还是KEIL,生成的软件里默认的image entry 都不是  Reset_Handler, IAR里似乎是__iar_program_start, KEIL里是__main,它们会跳过 Reset_Handler刚开始的 SystemInit, VTOR的设置等,在IAR里和KEIL里都有办法把默认的image entry该成Reset_Handler.如果不改的话,需要改变BD文件,把

# Note: This is required if the default entrypoint is not the Reset_Handler
    #       Please set the entryPointAddress to Reset_Handler address
    // entryPointAddress = 0x60002411;
Capture_IAR_program_entry.PNG
Capture_entry_KEIL.PNG

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
 楼主| 发表于 2018-5-7 14:47:57 | 显示全部楼层
unknownuser 发表于 2018-5-7 14:35
大神,总结得真好,根据我的研究,我还想补充一下坑5的根本原因。

无论IAR还是KEIL,生成的软件里默认的 ...

回复

使用道具 举报

7

主题

102

回帖

123

积分

初级会员

积分
123
发表于 2018-5-10 17:08:45 | 显示全部楼层
本帖最后由 eddy0317 于 2018-5-10 17:51 编辑
unknownuser 发表于 2018-5-7 14:35
大神,总结得真好,根据我的研究,我还想补充一下坑5的根本原因。

无论IAR还是KEIL,生成的软件里默认的 ...

大神,我怎么感觉还是满满的坑啊,这个问题我也在弄N次之后发现了。不过更诡异的是,我加了--entry=Reset_Handler之后,打印信息出来,中断向量的确是改了,但是!后面的竟然System_Init跟__main都没有执行,直接执行到自己的main函数了,太TMD诡异了!不过用仿真器调试的时候的确会执行,但是全速就没有了!(这个坑就是因为发现一加了RTX就运行异常发现的,因为RTX的带初值的变量没有正确赋值,hardfault了)
最新情况:突然用--entry=Reset_Handler又可以了。操作过程,一开始发现不行的时候,自己自定义了一个Reset_Handler,想弄些信息来看看。发觉自定义Reset_Handler之后,虽然生成的IVT看了一下entry的地址是对的(我定义的那个Reset_Handler的地址),但是就死活没执行。后来放弃了,把自定义的删掉了,又变成可以了。Fxck。
回复

使用道具 举报

7

主题

102

回帖

123

积分

初级会员

积分
123
发表于 2018-5-10 17:29:24 | 显示全部楼层
坑5今天我也调试了N次,还是没理清问题。设置了--entry=Reset_Handler,应该就可以了,但是实际运行的时候,中断向量表是正确了,但是变成带初值的变量没有初始化;如果不定义entry,带初值的变量初始化了,但是中断向量表位置不对。而且两个方式都没有调用SystemInit。这个BOOT ROM黑盒子真恶心啊
回复

使用道具 举报

0

主题

154

回帖

154

积分

初级会员

积分
154
发表于 2018-5-10 18:18:37 | 显示全部楼层
eddy0317 发表于 2018-5-10 17:29
坑5今天我也调试了N次,还是没理清问题。设置了--entry=Reset_Handler,应该就可以了,但是实际运行的时候 ...

如果用elftosb,那就把BD文件里注释掉的这一行用起来

entryPointAddress = 0x60002411;

换成 entryPointAddress = <base address of image> 比如0x6000_2000. 这样应该能彻底解决你的问题
回复

使用道具 举报

1

主题

196

回帖

199

积分

高级会员

积分
199
QQ
发表于 2018-5-15 14:40:45 | 显示全部楼层
十楼给出的解决办法再来看看有反馈消息没有?谢谢
回复

使用道具 举报

10

主题

31

回帖

61

积分

初级会员

积分
61
发表于 2018-5-22 16:41:35 | 显示全部楼层

大神,我碰到的问题是,没点start的时候是正常连接的,一点start开始烧录,进度条刚变蓝就显示No Device Connected了,也就是还没烧录完全就显示没有设备连接,这是什么情况?有什么原因导致的呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
 楼主| 发表于 2018-5-23 09:29:16 | 显示全部楼层
532791928@qq 发表于 2018-5-22 16:41
大神,我碰到的问题是,没点start的时候是正常连接的,一点start开始烧录,进度条刚变蓝就显示No Device  ...

这个是你USB集线器问题,换个好用点的应该就没问题了。
回复

使用道具 举报

8

主题

17

回帖

41

积分

新手上路

积分
41
发表于 2018-12-1 09:17:26 | 显示全部楼层
可以试试这个:https://github.com/JayHeng/nxp-sec-boot-ui,希望你们喜欢
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-28 11:41 , Processed in 0.440645 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表