[应用相关]

分散加载如何使用IAP更新部分函数?

[复制链接]
1582|11
手机看帖
扫描二维码
随时随地手机跟帖
justtest111|  楼主 | 2016-7-1 14:10 | 显示全部楼层 |阅读模式
请教各位一个问题,我现在使用IAP更新APP程序,其中APP程序分成了IROM1和IROM2两部分,IROM1中存放了主函数,IROM2中是需要更新的函数,需更新函数在主函数中有被调用。
我想只更新IROM2中的函数,但当改变IROM2中的函数后,编译工程时IROM1的bin文件也会改变,所以不能仅更新IROM2,必须连着IROM1一起更新,请问有什么办法可以只更新IROM2而不需要更新IROM1?
justtest111|  楼主 | 2016-7-1 16:38 | 显示全部楼层
顶一下啊

使用特权

评论回复
yklstudent| | 2016-7-1 17:00 | 显示全部楼层
把IAP程序存放IROM1,APP程序存放IROM2;然后。。。。

使用特权

评论回复
lovecat2015| | 2016-7-1 20:36 | 显示全部楼层
你说的这个程序是基于操作系统的吗?

使用特权

评论回复
justtest111|  楼主 | 2016-7-2 08:24 | 显示全部楼层
yklstudent 发表于 2016-7-1 17:00
把IAP程序存放IROM1,APP程序存放IROM2;然后。。。。

IAP程序在Boot区。。。

使用特权

评论回复
justtest111|  楼主 | 2016-7-2 08:26 | 显示全部楼层
lovecat2015 发表于 2016-7-1 20:36
你说的这个程序是基于操作系统的吗?

不是啊,就是裸机程序。

使用特权

评论回复
yklstudent| | 2016-7-2 08:28 | 显示全部楼层
justtest111 发表于 2016-7-2 08:24
IAP程序在Boot区。。。

关键IROM1区有APP了,你要想办法把APP仅放在IROM2区;
分析map文件,查看分析IROM1区内有哪些APP的程序代码;

使用特权

评论回复
justtest111|  楼主 | 2016-7-2 08:39 | 显示全部楼层
yklstudent 发表于 2016-7-2 08:28
关键IROM1区有APP了,你要想办法把APP仅放在IROM2区;
分析map文件,查看分析IROM1区内有哪些APP的程序代 ...

我是想把APP程序分别放在IROM1和IROM2中,但是更新的时候仅更新IROM2,这能实现吗?

使用特权

评论回复
ligoxyz| | 2016-7-2 10:26 | 显示全部楼层
ROM2中各个函数,放在固定物理地址,。假设你有10个函数,每个函数分配一个固定区域,固定起始地址,。ROM1中保存的是调用地址,所以,ROM2中的各个函数,必须固定调用地址。说得有点乱,但是,我想,你应该能明白。

使用特权

评论回复
yklstudent| | 2016-7-2 10:59 | 显示全部楼层
justtest111 发表于 2016-7-2 08:39
我是想把APP程序分别放在IROM1和IROM2中,但是更新的时候仅更新IROM2,这能实现吗? ...

那你能让IROM1内的APP程序不变就可以了

使用特权

评论回复
justtest111|  楼主 | 2016-7-2 11:15 | 显示全部楼层
ligoxyz 发表于 2016-7-2 10:26
ROM2中各个函数,放在固定物理地址,。假设你有10个函数,每个函数分配一个固定区域,固定起始地址,。ROM1 ...

我就是这样弄得,但是IROM2中的函数内容改变后,IROM1中有几个个字节也改变了。但理论上来说IROM1中只是把指针指向IROM2的函数地址,跟内容没关系,所以IROM1中的程序不应该改变的,百思不得其解。

使用特权

评论回复
justtest111|  楼主 | 2016-7-2 11:16 | 显示全部楼层
yklstudent 发表于 2016-7-2 10:59
那你能让IROM1内的APP程序不变就可以了

IROM2中的函数内容改变后,IROM1中有几个个字节也改变了。但理论上来说IROM1中只是把指针指向IROM2的函数地址,跟内容没关系,所以IROM1中的程序不应该改变的,百思不得其解。

使用特权

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

本版积分规则

15

主题

461

帖子

7

粉丝