发新帖我要提问
12
返回列表
打印

LPC1778/1788如何进行IAP在线升级

[复制链接]
楼主: hufengweixx
手机看帖
扫描二维码
随时随地手机跟帖
21
hufengweixx|  楼主 | 2017-2-8 15:45 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 hufengweixx 于 2017-2-8 15:56 编辑
outmanlol 发表于 2017-2-8 11:49
程序跳转是没有问题的,因为我把APP程序用keil仿真,发现程序确实能从引导程序跳转至APP程序,且APP程序 ...

第一,bin文件应该不记录地址信息,要是你分两个分别下载进去,最后应该是下载的第二个bin文件覆盖第一个bin文件;
第二,不知道你是否使用了bootloader 和 app两个文件进行跳转的,你这边讲app分为两个bin文件不是特别懂,建议你往上面看一下;

使用特权

评论回复
22
hufengweixx|  楼主 | 2017-2-8 15:55 | 只看该作者
hufengweixx 发表于 2017-2-8 15:45
第一,bin文件应该不记录地址信息,要是你分两个分别下载进去,最后应该是下载的第二个bin文件覆盖第一个 ...

1、关于下载我采用的方法是,现将bootloader下载进单片机,再用bootloader将app的bin文件下载进单片机;
2、看你这样似乎是下载方式有问题,还可以将两个程序的bin文件合并在一起,然后一起下进去,建议查一下合并方式,试试看,这个我暂时没用,第一种方式已经产品中得到验证

使用特权

评论回复
23
outmanlol| | 2017-2-14 14:42 | 只看该作者
我看您给的例程里面,LPC177x_8x.bin文件夹里面有就有两个文件啊。您是把这两个文件,先第一个,再第二这样从您的APP程序的起始地址写入就ok的了吗?    我现在的情况和您的有点不一样,按理说我的用于存放APP程序的flash空间应该是0x4000-0x80000。但是0xA000-0x48000这部分空间被用来存放另外的数据(配置文件)去了,所以APP程序存放的空间就变为了0x4000-0xA000和0x48000-0x80000。所以我需要弄明白这两个bin文件和这个地址空间的关系。不知道您清楚不,或知道如何寻找到相关资料吗?按理来说,对于同一个工程来说,我们不管是将编译生成的hex文件通过j-link写入板子,还是通过我们现在这种在线升级的方式将bin文件写入板子,按理来说他们在flash存放的位置应该是完全一样的吧,不知道这块您清楚不?

使用特权

评论回复
24
outmanlol| | 2017-2-16 20:13 | 只看该作者
hufengweixx 发表于 2017-2-8 15:55
1、关于下载我采用的方法是,现将bootloader下载进单片机,再用bootloader将app的bin文件下载进单片机;
...

谢谢您一直以来的解惑,现已证实,APP程序必须放在连续的地址空间,不能分成几部分。我现在把之前提到的特殊数据(配置文件)移动了位置,给APP程序腾出了空间,现在APP程序放在连续的空间,测试ok。

使用特权

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

本版积分规则