嗨,团队,
我有一个DA1469x ProKit和SDK\ u10.0.4.66的构建代码,这有一个标准MX25U3235F闪存设备。我正在进行评估,以检查设备是否符合客户应用程序的要求。
我的应用程序配置为以QSPI中的XIP执行,使用示例应用程序freertos\u retarget构建的初始测试在使用4MB分区表时运行良好。
Now when I am adding the rest of my application I have linked in some proprietary code libraries and constant code tables which increases the code mapped to the ROM region to larger than the default 512KB. The ROM linker region grows to around 800KB. I have left the cache for QSPI configured as default at 64KB.
我已经创建了一个修改的基于4M的分区表,它定义了固件分区,如下所示,并且我已经调整了链接器脚本:
#define NVMS_PRODUCT_HEADER_PART_START 0x000000#define NVMS_PRODUCT_HEADER_PART_SIZE 0x002000#define NVMS_FIRMWARE_PART_START 0x002000/*与512KB的对齐由默认闪存区域大小决定。*/#定义NVMS\固件\部件\大小0x0DE000/*从默认0x07E000增加到使用空空间*/
I flashed the device using the计划脚本,似乎闪光所有部门正确,但我无法读回任何常数数据或执行代码以上的地址0x80000(重映射)或0x36080000直接。有没有可能NVMS_FIRMWARE_PART_SIZEgreater than 512KB?
要么计划脚本未能正确地闪存上部区域,或者QSPI内存(re)映射仍然被错误配置。
Please can you offer any guidance.
Thanks
~Garry
Hi Garry Clarkson,
请查看DA1469x数据表中的表976。默认情况下,FLASH region size设置为0.5 MB,但是可以通过编程OTP头中的CACHE\u FLASH\u REG[FLASH\u region\u size]来更改此值。CACHE\u FLASH\u REG[FLASH\u REGION\u BASE]和CACHE\u FLASH\u REG[FLASH\u REGION\u OFFSET]将由引导加载程序设置,因此不需要对它们进行编程。只能对CACHE\u FLASH\u REG[闪存\u区域\u大小]进行编程。
此外,如果您想拥有SUOTA功能,则必须分别修改SUOTA分区表。
Thanks, PM_Dialog
你好,
非常感谢您的指导和一步一步的指导。在启动代码的早期,我将CACHE\u FLASH\u REG[FLASH\u REGION\u SIZE]设置为0x5,但没有意识到这必须通过OTP路由完成。
我改为使用2Mbyte配置,将CACHE\u FLASH\u REG[FLASH\u REGION\u SIZE]设置为0x4以获得一些净空,并调整了分区表。它现在运转良好。谢谢你的帮助。
Regards,
Garry
Hi Garry,
很高兴你解决了问题。如果你觉得我的答案有用,请注明“已接受”。
Thanks, PM_Dialog
嗨,加里,
In addition you should change the dg_configQSPI_CODE_SIZE_AA macro in bsp_memory_defaults.h file. Please make the following modifications in bsp_memory_defaults.h
The 136KB is the size of the CMAC which is running in M0+.
Thanks, PM_Dialog