打印

关于单片机的远程升级

[复制链接]
5239|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
m564522634|  楼主 | 2014-4-28 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在要做一个单片机的远程升级,链路层做好了。现在要考虑的是我的hex文件存储到了本地了,我怎么把hex文件里的内容写到MCU中去,关键是bootloader怎么解协hex文件的内容。因为我对hex文件格式不是很清楚了,不知道hex文件里的内容都是有用的code还是包含了其他信息,如果有其他信息一般是些什么信息。

相关帖子

沙发
coody| | 2014-4-28 11:20 | 只看该作者
我是先用电脑的软件转成BIN文件再发的。

使用特权

评论回复
板凳
m564522634|  楼主 | 2014-4-28 12:00 | 只看该作者
coody 发表于 2014-4-28 11:20
我是先用电脑的软件转成BIN文件再发的。

你的bootloader是怎么写的,如果转换成bin文件的话,是不是bootloader直接把bin文件写进去,接到什么写什么,设置一个初始的地址把所有的文件写进去了,不用作任何修改。是不是这样?

使用特权

评论回复
地板
ningling_21| | 2014-4-28 12:36 | 只看该作者
m564522634 发表于 2014-4-28 12:00
你的bootloader是怎么写的,如果转换成bin文件的话,是不是bootloader直接把bin文件写进去,接到什么写什 ...

bin文件就是直接写的,只要确定起始地址就可以了...

使用特权

评论回复
5
coody| | 2014-4-28 13:20 | 只看该作者
m564522634 发表于 2014-4-28 12:00
你的bootloader是怎么写的,如果转换成bin文件的话,是不是bootloader直接把bin文件写进去,接到什么写什 ...

是的

使用特权

评论回复
6
m564522634|  楼主 | 2014-4-28 13:33 | 只看该作者
ningling_21 发表于 2014-4-28 12:36
bin文件就是直接写的,只要确定起始地址就可以了...

但是我的单片机存储器是分块的,有128K的flash但单片机只能管理64K,其实就是分块了。如果我只知道起始地址的话我程序超过了64K那么我怎么正确写进去

使用特权

评论回复
7
airwill| | 2014-4-28 13:38 | 只看该作者
那就把地址空间扩展开来, 为什么要限制只能管理 64K?

使用特权

评论回复
8
m564522634|  楼主 | 2014-4-28 13:39 | 只看该作者
airwill 发表于 2014-4-28 13:38
那就把地址空间扩展开来, 为什么要限制只能管理 64K?

请详细说下怎么扩展了,不太懂

使用特权

评论回复
9
airwill| | 2014-4-28 13:43 | 只看该作者
请详细说下为什么要限制, 限制的原因. 知道原因也就知道怎么扩展了.

使用特权

评论回复
10
m564522634|  楼主 | 2014-4-28 13:46 | 只看该作者
m564522634 发表于 2014-4-28 13:39
请详细说下怎么扩展了,不太懂

因为内核是51单片机的,128K分了4个区。用的另人的SDK包,他的低层协议放到BANL1,BANK3里的,bank0和BAKN1是给我们应用用的。我的理解 是51单片机只能管理64K的空间,那我的程序大于64K的时候CPU怎么找到正确的写入地址

使用特权

评论回复
11
dwdsp| | 2014-4-29 08:13 | 只看该作者
也来听听大家的高见

使用特权

评论回复
12
m564522634|  楼主 | 2014-4-29 09:36 | 只看该作者
哈哈今天我研究了下hex文件的格式,和看了下我生成的hex文件里的内容。现在把我的想法上传上来,hex文件的格式如下
C:\Documents and Settings\jinfeng_li\桌面,

使用特权

评论回复
13
m564522634|  楼主 | 2014-4-29 09:37 | 只看该作者
怎么图片上传不了

使用特权

评论回复
14
m564522634|  楼主 | 2014-4-29 09:37 | 只看该作者
:10000000020594023FEE22227F0622026609900535


: 03ah 记录的起始点  MARK 1byte

10 为数据长度            1byte

0000 为起始地址         2个byte

00  为数据记录          1个byte


020594023FEE22227F06220266099005   16个byte 数据


35是校验位

使用特权

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

本版积分规则

26

主题

898

帖子

7

粉丝