打印

IAR下生成的bin文件,bootloader ,调试方面的问题

[复制链接]
7707|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Fairchild2440|  楼主 | 2012-11-26 11:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的芯片是EFM32G230,是CM3的,软件是IAR6.3,
自己搞了一个bootloader,用Jlink下载后能正常烧写数据,打算用bootloader下载应用程序,我用IAR生成应用程序的bin文件。
当我用JLink单独调试应用程序时,查看memory发现flash中的数据和bin文件中的数据部不一样,请问两者是否是应该一样的?
这样就导致了用bootloader下载应用程序的bin文件时,跳转的时候出错,因为主栈地址和复位地址全是错的。
其实我想知道的问题就是为什么生成的bin文件中的数据和单独调试应用程序两者flash数据不一样。
还有生成bin文件是不是:options->output converter->选binary,

生成的bin文件我是在debug->exe文件夹下拿的。

请大家指教。
沙发
Fairchild2440|  楼主 | 2012-11-26 13:48 | 只看该作者
用jlink调试正常的程序,生成bin文件下载后都跑不起来

使用特权

评论回复
板凳
airwill| | 2012-11-26 17:42 | 只看该作者
bin 文件就是烧写数据, 应该是一样的. 不一样就有问题了.
bin 文件只是单纯的二进制文件. 由于里面没有地址信息, 在烧写的时候, 请注意 FLASH 的起始地址设定.

使用特权

评论回复
地板
Fairchild2440|  楼主 | 2012-11-26 19:22 | 只看该作者
3# airwill 问题解决了,原来是电脑上加密软件的原因,每次生成bin文件都被加密了,所以数据根本不一样,==!。把加密软件关了就好了。谢谢ls的朋友。再问个问题,bin文件里除了代码,还有那些变量啊,全局数组是怎么存放的呢?

使用特权

评论回复
5
airwill| | 2012-11-26 21:18 | 只看该作者
bin文件里除了代码, 还有常量和初始化变量的映像(并不是变量本身).
全局数组的存放是由编译器来确定的, 跟 BIN 文件没有直接关系

使用特权

评论回复
6
adams.gh| | 2012-11-26 21:51 | 只看该作者
4# Fairchild2440 看map文件,看三天。

使用特权

评论回复
7
lwx0280833| | 2014-3-28 14:43 | 只看该作者
楼主,我也遇到这个entire,我用的是G222,bootloader有8K多,我就留了10K,应用程序地址从0X2800开始,可是跳转不成功,我看了bin文件和少写道flash的大部分想通过,只有局部不同。楼主的加密软件是什么意思?IAR自动加密还是说生成的bin文件被第三方软件自动加密了?如何关掉的?

使用特权

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

本版积分规则

个人签名:本人初学者

0

主题

88

帖子

1

粉丝