请教一下,在ota升级 传输app的bin文件过程中出现下述情况,是不是因为 app bin文件有128k ,codeflash总共为128k 但是写入起始位置为0x4000,所以app 的数据还没写完 codeflash'空间就用完了,才导致这样?
上面packet = 897, 每一个包是128byte, 也就是 897 * 128 = 1C080H, 写入的首地址是4000H,所以
4000H + 1C080H = 20080H > 128K
当然写不进去了,
不是另外一个帖子和你说过吗, 你要写入的bin文件是4000H - 1FFFFH 这个空间的, 你在编译App时候, 要把这个空间的数据分离出来. 只有112K, 不可能有128K这么大. 128K是 0-1FFFFH这么大的空间.
另外再仿真的时候, 由于仿真器的firmware需要占用一定的ROM空间, 一般在最后的xxxE00H-xxxFFFH, 所以你仿真的时候, 的bin文件还没有112K这么大.
做Xmodem 传送的bin文件最大只能是112K,
不好意思,请问把4000H - 1FFFFH这个空间的数据分离出来要怎么做呢
这个我已经设置过了。这是我的appbin文件 您可以帮忙看一下吗
community-ja.renesas.com/.../uart3.zip
非常感谢 黄工,crc校验 output address 我设置的 FBF4,target range 是4000 - FBF3
然后裁剪了4000 - FFBF的数据(大小有48K),数据可以正常传输,但是 Update flash area :Failed
请问我这样裁剪app 有问题吗?
community-ja.renesas.com/.../uart3_5F00_app.zip
community-ja.renesas.com/.../boot.zip
详细参考样例程序, 下图是把2000H-FBFFH分离出来, 格式是hex, 如果你要的格式是bin, 就要修改格式为bin.
不好意思 黄工,再打扰一下,首先,抱歉,我的工程发错了,出现update failed 这个结果是基于 图123的设置下发生的。
图1
图2 boot 图3 app
通过查看源码我发现
我这样设置出来是119K, 前面0-2000H是8K, 你搞不定就把工程发给我
你分离出来的文件名是flash4000-1FFFF.bin, 你给我的是uart3.bin, 两个文件不是一码事.
你用xmodem传输的文件应该是flash4000-1FFFF.bin, 这个才是app的数据, 用错文件了!!!
黄工,我把CRC相关的设置改了下
CRC部分应该没问题了吧
结果是程序跑飞了
我对照例程又看了一遍,发现不同的地方,也是可能造成这种问题的地方就是section的分配了,因为我是两个工程独立创建的 所以我也不确定section该怎么分配才是正确的 您看我这种分配是不是导致程序跑飞的原因呢?