DA14531-SUOTA升级时出现错误:same image error以及关于内存重叠的问题有些疑惑

我是初学者,根据教程文档一步一步做完 在ios suota app中连接上把fw2.image选中升级时提示same image error

我看了论坛中其他人遇到的这个问题 最关键的user_version.h以及sdk_version.h中的SDK_VERSION我都修改了  USER_DEVICE_NAME也进行了修改 PRODUCT_HEADER_POSITION也是对应的  但是它还是一直提示same image error

当我使用其他fw2.image(没有参与制作烧录进去的multi.image)时就可以升级 然后在用fw2.image也可以升级了 只能这样升级  希望可以帮我解决这个问题 谢谢

对了 我还有一个疑问 当我打开suota功能时 编译就会报错 打开#define CFG_PRF_SUOTAR后 发生内存重叠
.\out_531\dsps_device_531.axf: Error: L6221E: Execution region RET_DATA with Execution range [0x07fc7a10,0x07fc8224) overlaps with Execution region RET_HEAP with Execution range [0x07fc7d30,0x07fc9800).
我不知道如何解决 在研究一段时间后我发现

- `rwip_heap_db_ret`位于地址`0x07fc7d30`,占用1036字节。( 其实是1028)
- `dma_uart_cfg`位于地址`0x07fc7d80`,占用28字节。

这两个区域显然有重叠,从地址`0x07fc7d80`开始的内容与前一个数据段`rwip_heap_db_ret`发生重叠。

要解决这个问题,可以:
- 调整`rwip_heap_db_ret`的大小或起始地址。
- ***`dma_uart_cfg`到一个新的、不重叠的地址区域。 

我选择将/// DB Heap
#ifndef DB_HEAP_SZ
#define RWIP_HEAP_DB_SIZE_JT 924 // in bytes
#else
#define RWIP_HEAP_DB_SIZE_JT DB_HEAP_SZ // in bytes
#endif

#if defined (__DA14531__)
#define DB_HEAP_SZ (924)
#if defined (CFG_BLE_FLOW_CONTROL)
#define MSG_HEAP_SZ (5*924)
#else
#define MSG_HEAP_SZ (6*924)
#endif
#else
#define DB_HEAP_SZ (1024)
#define MSG_HEAP_SZ (32*1024)
#endif改为了924 就变正常了  我越增加代码这个924就得变得越小 我不确定这样改对不对

希望可以解答我这两个疑问 谢谢

Parents Reply Children