532791928@qq 发表于 2018-5-22 20:13:41

有关RT1052的IAP升级问题

各位大神:
   有哪位大神做了rt1052的IAP升级,能否给与指点!主要为执行跳转后程序运行情况异常问题。
   在做IAP升级跳转验证,使用iar平台烧录两个程序,0x60000000地址开始为IAP程序,0x6000A000为APP程序。IAP程序在调试的时候强制执行跳转到APP程序

   APP程序的做法:去掉xip文件,设置连接icf文件,指定起始地址为0x6000A000
   我做的第一个APP程序为NXP SDK中例子hello_word ,正常!说明跳转没问题!
   做第二个程序,是rtthread官方的程序,直接烧录在板子上是能够正常运行的,但是通过iap跳转后就会出现故障硬件错误中断,显示有非对其内存访问!但是我将xip文件添加,然后修改boot_data数据指定程序入口地址为0x6000A000,运行也是正常的。所以不知道通过跳转,IAP程序运行后的环境会对APP造成什么影响?


    所以请问下,对于做IAP升级,IAP程序和APP程序有哪些要做注意事项点?IAP程序运行后的环境会对APP造成什么影响?

eddy0317 发表于 2018-5-22 20:52:50

应该是中断向量没设置好的问题,你调试一下看看中断向量表对着的位置是不是0x6000A000。

unknownuser 发表于 2018-5-22 21:07:15

eddy0317兄弟说得对,先查一下 SCB->VTOR是不是指向0x6000a000。

532791928@qq 发表于 2018-5-23 08:41:58

unknownuser 发表于 2018-5-22 21:07
eddy0317兄弟说得对,先查一下 SCB->VTOR是不是指向0x6000a000。

中断向量表确定是设置为这个地址了
理论上IAP程序运行的环境应该不会对APP运行环境造成影响的吧?

eddy0317 发表于 2018-5-23 09:40:14

跑helloworld没问题,跑rt-thread有问题,就跟我之前一样,之前我弄non-XIP的时候,跑helloworld没问题,跑RTX5有问题,后来想了一下应该就是中断那里出问题。所以才问你中断向量表的事情。编译的时候,记得弄到入口是reset_handler,出问题的话大都是两个问题,一个是中断向量( SCB->VTOR)不对,一个是带初值的变量的没有初始化。

IAP的运行环境当然对APP有影响,实际上运行APP也只不过是一次调用程序而已,IAP初始化的东西全部都被APP继承的。例如IAP使能了串口,运行APP前没关闭,运行APP时一样是运行状态,如果IAP开了中断,APP的时候也会触发中断,编程不当可能会有问题。

lwplwp2 发表于 2018-5-23 14:00:19

如果用IAP升级的话,程序的加密是不是挺麻烦的?

eddy0317 发表于 2018-5-23 14:06:38

lwplwp2 发表于 2018-5-23 14:00
如果用IAP升级的话,程序的加密是不是挺麻烦的?

这位兄弟已经弄了程序加密了?能分享一下方法吗?

532791928@qq 发表于 2018-5-23 14:32:15

lwplwp2 发表于 2018-5-23 14:00
如果用IAP升级的话,程序的加密是不是挺麻烦的?

加密那块主要两部分,一部分为签名,一部分为数据加密,要弄得话确实很麻烦的,只能到时请教原厂的人,我们现在还没到加密那块,还没签保密协议

532791928@qq 发表于 2018-5-23 14:33:07

eddy0317 发表于 2018-5-23 14:06
这位兄弟已经弄了程序加密了?能分享一下方法吗?

和原厂签保密协议,他们会有加密过程的相关文档的

lwplwp2 发表于 2018-5-23 15:04:28

eddy0317 发表于 2018-5-23 14:06
这位兄弟已经弄了程序加密了?能分享一下方法吗?

我是照着cst 的文档尝试,但是尝试失败了,等官方应用文档吧。
但是我的理解:它解密需要在用到ivt表中的csf数据中的key blods。这样的话升级固件时就需要去更新ivt内容?
主要还是对它加密和解密原理还不太明白,又没有资料可以参考...

lwplwp2 发表于 2018-5-23 15:14:06

eddy0317 发表于 2018-5-23 14:06
这位兄弟已经弄了程序加密了?能分享一下方法吗?

这个是cst工具,里面有说明密钥和证书怎么生成,然后结合flashloader 的elftosb工具进行加密,你可以看看。

eddy0317 发表于 2018-5-23 17:03:40

lwplwp2 发表于 2018-5-23 15:04
我是照着cst 的文档尝试,但是尝试失败了,等官方应用文档吧。
但是我的理解:它解密需要在用到ivt表中 ...

不是很想玩cst,其实BEE的也能加密下载了,不过不敢玩加密XIP,因为涉及熔丝位,烧了就不能恢复了,万一搞错了就废板了。

eddy0317 发表于 2018-5-23 17:05:43

532791928@qq 发表于 2018-5-23 14:33
和原厂签保密协议,他们会有加密过程的相关文档的

很费解为什么用BEE这类加密还要保密协议,说实在,芯片怎么加密的我真的不关心,只要给我接口就行。

例如使能加密后,用的密钥是芯片内置并且不可读的,不就完事了。

532791928@qq 发表于 2018-5-24 20:16:17

各位大神,我在调试iap时,跳转自己的工程代码中,发现总是在iar平台的__iar_program_start中跑飞(具体点应该是在__iar_data_init3)函数中飞掉,让我没法理解啊,我的工程在不用iap跳转是运行OK的,虽然工程中确实配置搬运了大量函数之itcm中,但不至于跳转后跑飞啊

unknownuser 发表于 2018-5-24 21:26:04

532791928@qq 发表于 2018-5-24 20:16
各位大神,我在调试iap时,跳转自己的工程代码中,发现总是在iar平台的__iar_program_start中跑飞(具体点 ...

请问你的IAP代码里有开d-cache么?

532791928@qq 发表于 2018-5-25 09:09:44

unknownuser 发表于 2018-5-24 21:26
请问你的IAP代码里有开d-cache么?

有开的,但是iap跳转进去到app的时候,有清除d-cache和i-cache操作

unknownuser 发表于 2018-5-25 09:47:35

532791928@qq 发表于 2018-5-25 09:09
有开的,但是iap跳转进去到app的时候,有清除d-cache和i-cache操作

那估计和这个有点关系,试着在跳APP的时候关掉cache,让你的APP在配置好MPU后(把不需要的memory 空间全配成device memory)然后再开cache, 这个工作一般在App的SystemInit里执行

13820521300 发表于 2020-12-21 14:42:08

我在做rt1052的iap时,只要app里面有以太网,就卡住不能初始化,调试输出:Initializing PHY...就不东了,请指教,os可以运行,

bakeraaa 发表于 2021-12-30 14:17:08

你好,最近正在做RT1052的IAP升级,但是目前头绪混乱,能否给一份RT1052的BootLoader和APP程序作为参考呢?谢谢,如可以请发送至邮箱m15170185611@163.com,谢谢

wwz 发表于 2022-1-4 11:19:00

bakeraaa 发表于 2021-12-30 14:17
你好,最近正在做RT1052的IAP升级,但是目前头绪混乱,能否给一份RT1052的BootLoader和APP程序作为参考呢? ...

我给你发了一份,一起学习
我现在是跳转不正常,你做好后一起交流

07lhluo 发表于 2022-10-7 16:06:39

wwz 发表于 2022-1-4 11:19
我给你发了一份,一起学习
我现在是跳转不正常,你做好后一起交流

请问可以发我一份吗?我也是研究rt1052 iap。我用的是rt-thread操作系统。可否互相交流一下,求+v,谢谢!

核弹 发表于 2022-10-28 18:11:08

wwz 发表于 2022-1-4 11:19
我给你发了一份,一起学习
我现在是跳转不正常,你做好后一起交流

好兄弟,搞定了吗?发我一份:D:lol wangyipeng97@tom.com
页: [1]
查看完整版本: 有关RT1052的IAP升级问题