大家好,
我有一个DA1469x PROKIT和BUITION CODE,带有SDK_10.0.4.66,这具有标准MX25U3235F闪存设备。我正在执行评估以检查设备将符合客户应用程序的要求。
我的应用程序被配置为从QSPI执行XIP,使用Sample Application Freertos_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基于4M的分区表,它将固件分区定义为较大的正常,我调整了链接器脚本:
#define nvms_product_header_part_start 0x000000 #define nvms_product_header_part_size 0x002000 #define nvms_firmware_part_start 0x002000 / *对齐到512kb是由默认flash_region_size指定的。* / #define nvms_firmware_part_size 0x0de000 / *从默认值0x07e000增加以使用空格* /
I flashed the device using theprogram_qspi_jtag.脚本正确刷新所有扇区,但是我无法从0x80000(remapped)或0x36080000直接的地址读回任何常量数据或执行代码。它甚至可能有一个NVMS_FIRMWARE_PART_SIZEgreater than 512KB?
要么是program_qspi_jtag.脚本无法正确闪烁上部区域,或者QSPI内存(RE)映射以某种方式仍然存在错误。
Please can you offer any guidance.
Thanks
~Garry
Hi Garry Clarkson,
请检查DA1469X数据表的表976。缺省情况下,闪存区域大小设置为0.5 MB,但可以通过在OTP标题中编程Cache_Flash_Reg [Flash_Region_Size]来更改此值。bootloader将设置cache_flash_reg [flash_region_base]和cache_flash_reg [flash_region_offset],因此您不需要对它们进行编程。只有Cache_Flash_reg [Flash_Region_size]必须编程。
此外,如果您希望具有偶像功能,则必须分别修改Suota分区表。
Thanks, PM_Dialog
你好,
非常感谢您的指导和步骤指令。我在启动代码早期将Cache_Flash_Reg [Flash_Region_size]设置为0x5,而不会实现必须通过OTP路由完成。
当我将Cache_Flash_reg [flash_region_size]设置为0x4以进行某些余量并调整分区表来更改为使用2mbyte配置。它现在正常工作。谢谢你的帮助。
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