请问 I.MX rt1060 是否支持IAP的功能

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

请问 I.MX rt1060 是否支持IAP的功能

5,264 次查看
lw3
Contributor I

iap实现 主要对程序flash的读写功能  实现程序的更新功能  目前对flexspi flash的操作的时候 mcu会重启,擦除flash的时候就会重启  有没有相关的例子 

0 项奖励
回复
31 回复数

3,737 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi @lw3 ,

RT1060有一个boot ROM,但那只能提供SRAM下载功能和一些Flash操作的函数接口。你要通过sdphost下载flashloader到RAM中,然后通过blhost操作flashloader来读写flash。

这篇文章是RT操作flash启动的全景图,你可以了解一下。

https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/i-MX-RT-FLEXSPI-booting-guide/ta-p/1669262

 

Regards,

Jing

0 项奖励
回复

3,687 次查看
lw3
Contributor I
nxp 内部没有flash boot程序iap程序也是在外部flash跑 iap程序里面也进行更新app的程序的时候 要么更新失败 要么需要更新多次才能成功 我的固件比较大 有2M字节更新的数据量大 更新非常容易不成功 失败概率太高 成功的概率太低啦 我目前boot程序 iap功能采用的是从spi接口flash里固件数据 更新到flexspi接口的flash里面 从而实现更新固件功能 app只把固件更新到spi接口的flash里面 在boot程序 iap实现固件搬运和校验
0 项奖励
回复

3,667 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi @lw3 ,

不成功的详细原因是什么?

 

Regards,

0 项奖励
回复

3,632 次查看
lw3
Contributor I
无法进行调试 都是卡在写入程序flash的过程 里面有先擦除内部flash 在通过spi读取数据 在写入程序flash, 卡在擦除flash的位置 加上看门狗 会自动复位 写入不成功 但是可能重启之后 又可以升级成功啦 但是升级成功之后 但是升级的文件大了之后 就会报异常 小文件还行 我读出来的程序文件跟实际生成的bin 是一致的 但是运行的时候 报错误 MemManage Handler 或者报硬件错误 HardFault Handler
0 项奖励
回复

3,617 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi @lw3 ,

不是很明白。“ 卡在擦除flash的位置”,是谁在擦除flash? Bootloader吗?Bootloader 从lpspi里读出image再写入flexspi flash?bootloader是ram base还是flash里的?要不你先调试一下bootloader吧。

 

Regards,

Jing

0 项奖励
回复

3,585 次查看
lw3
Contributor I
bootloader 是flash里面跑的 只有部分函数在ram里面跑
0 项奖励
回复

3,520 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi @lw3 ,

那看起来更像是你lpspi或者flexspi没有配置好引起的。

 

Regards,

Jing

0 项奖励
回复

3,490 次查看
lw3
Contributor I
我是参考sbl和sfw的工程里面代码来实现对flexspi 的flash读写的 目前采用了rtos系统 这个是否有关系
0 项奖励
回复

3,477 次查看
lw3
Contributor I
发现做nxp的bootloader 很麻烦,比stm32的M7系列还难弄,还不稳定, 还弄不好 内部没有flash 操作外部的flash 不稳定 都不敢用
0 项奖励
回复

3,430 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi @lw3 ,

配置好了还是很稳定的。确实有可能和rtos有关。如果你在写flash的时候没有关中断导致执行flash上的code,程序会跑飞。

 

Regards,

Jing

0 项奖励
回复

3,392 次查看
lw3
Contributor I
程序里面擦除和写入flash的时候 都加了全局中断关闭和打开 是参考sbl和sfw的工程里面的flash写入函数的 应用都是用的我们自己的 只有flash读写使用sbl和sfw的flash读写函数
0 项奖励
回复

3,382 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi,

"卡在擦除flash的位置 加上看门狗 会自动复位 写入不成功"

应该查一下擦除flash的时序对不对。你现在还是应该好好把flash调好,不能因为有时能工作就认为这一步已经过了。要稳定才行。

 

Regards,

0 项奖励
回复

3,333 次查看
lw3
Contributor I
flash的读写源码已经上传
0 项奖励
回复

3,302 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi,

你这个flash操作的程序是nxp官方的,全世界人民都在用,有错的话早就改了,都升级很多版了。你要查的是开头那个结构体里的配置,是不是同你flash的特性,同硬件设计相符合。你现在erase都不稳定,没法进行下去的。

 

Regards,

0 项奖励
回复

3,301 次查看
lw3
Contributor I

rt1060 所有涉及相关程序flash的擦除 读取 写入的所有文件 

0 项奖励
回复

3,050 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi @lw3 ,

SDK里有flexspi的demo。你用这个demo好好测测到底稳不稳定。看看把速度降到60M会不会改善。另外在hardware design guide里有讲怎么设计flexpi和高速信号,对照看看符不符合。

 

Regards,

Jing

0 项奖励
回复

3,303 次查看
lw3
Contributor I
所以不知道是什么原因呢
0 项奖励
回复

3,297 次查看
lw3
Contributor I
采用程序flash使用的是 WINBOND-W25Q32JVSSIQ(SOIC-8)
0 项奖励
回复

3,113 次查看
jingpan
NXP TechSupport
NXP TechSupport

Hi,

这个同RT1064内嵌的flash一模一样。RT1064就是RT1060和W25Q32合封在一起。只不过使用的是flexspi2. 你这个板子信号质量怎么样,DQS有没有悬空?

另外你可以用这个下载算法试试,如果还有问题,多半是硬件问题。

https://www.cnblogs.com/henjay724/p/14942574.html

 

Regards,

Jing

0 项奖励
回复

2,924 次查看
lw3
Contributor I
我已经放弃这个方案啦 风险太大 打算换个其他厂家的芯片
0 项奖励
回复