打印

怎么也想不通Jlink是怎么下载进去的

[复制链接]
1908|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianli1980|  楼主 | 2013-9-10 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是STM32 F107VCT6, 编译出来的程序HEX文件都有200多K,AXF 文件更是高达700多K。但STM32 F107的Flash最大也就128K,我怎么也想不通Jlink是怎么下载进去的?
沙发
i55| | 2013-9-10 21:28 | 只看该作者
google “intel hex format Specification”

使用特权

评论回复
板凳
ymind| | 2013-9-10 21:38 | 只看该作者
转成bin能这样比较,如果没用特殊技巧代码段是连续的话。

使用特权

评论回复
地板
拿起书本| | 2013-9-10 22:22 | 只看该作者
因为下载到芯片里面的代码只是可执行代码。
hex文件包含地址信息,而且是ASCII表示的,虽然你的hex有200多KB,实际的可执行代码bin要小于100KB的
axf文件附加了调试信息,调试信息是不会烧写到芯片ram中的,所以你的axf文件去掉调试信息后剩下的可执行代码小于flash还是可以下载进去的。

使用特权

评论回复
5
王紫豪| | 2013-9-10 22:28 | 只看该作者
楼上说的对,BIN 文件,才是执行文件的镜像;其他的都包含其他信息

使用特权

评论回复
6
tianli1980|  楼主 | 2013-9-11 10:55 | 只看该作者
但我没用加让它生成Bin文件的指令的,生成Bin文件确实是只有70K,不过不加的话他内部是不是先转成Bin再烧进去?

使用特权

评论回复
7
myxiaonia| | 2013-9-13 10:44 | 只看该作者
F107VCT6是256K的

使用特权

评论回复
8
STARM| | 2013-9-13 15:02 | 只看该作者
是先转成Bin再烧

使用特权

评论回复
9
rtgchym| | 2013-9-13 15:20 | 只看该作者
拿起书本 发表于 2013-9-10 22:22
因为下载到芯片里面的代码只是可执行代码。
hex文件包含地址信息,而且是ASCII表示的,虽然你的hex有200多K ...

是这个道理

使用特权

评论回复
10
huangfeng33| | 2013-9-13 16:04 | 只看该作者
4.22的用jlink下载大文件很卡,是否是keil的版本问题,4.60反盗版了,而4.22的jlink下载大文件就会很卡,是不是大家的都是这样的啊?

使用特权

评论回复
11
拿起书本| | 2013-9-13 17:24 | 只看该作者
试试D:\Keil\ARM\Segger 用MDK4.54以前的驱动替换掉...至少目前没啥问题了...

使用特权

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

本版积分规则

482

主题

2214

帖子

11

粉丝