大家好,
我有一个DA1469x PROKIT和BUITION CODE,带有SDK_10.0.4.66,这具有标准MX25U3235F闪存设备。我正在执行评估以检查设备将符合客户应用程序的要求。
我的应用程序被配置为从QSPI执行XIP,使用Sample Application Freertos_Retarget构建初始测试,并在使用4MB分区表时运行正常。
现在,当我添加我的剩余应用程序时,我已经在一些专有的代码库和恒定的代码表中链接,该常量代码表将映射到ROM区域的代码大于默认的512KB。ROM接头区域增长到800kb左右。我留下了在64KB中被配置为默认值的QSPI的缓存。
我创建了一个修改过的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增加以使用空格* /
我使用使用该设备program_qspi_jtag.脚本正确刷新所有扇区,但是我无法从0x80000(remapped)或0x36080000直接的地址读回任何常量数据或执行代码。它甚至可能有一个nvms_firmware_part_size.大于512kb?
要么是program_qspi_jtag.脚本无法正确闪烁上部区域,或者QSPI内存(RE)映射以某种方式仍然存在错误。
请您提供任何指导。
谢谢
〜加里
设备:
嗨加里克拉克森,
请检查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分区表。
谢谢,PM_DIALOG.
你好,
非常感谢您的指导和步骤指令。我在启动代码早期将Cache_Flash_Reg [Flash_Region_size]设置为0x5,而不会实现必须通过OTP路由完成。
当我将Cache_Flash_reg [flash_region_size]设置为0x4以进行某些余量并调整分区表来更改为使用2mbyte配置。它现在正常工作。谢谢你的帮助。
问候,
加里
嗨加里,
很高兴你识上你的问题。如果您发现我的答案有用,请将其标记为“已接受”。
谢谢,PM_DIALOG.
嗨加里,
此外,您应该在bsp_memory_defaults.h文件中更改dg_configqspi_code_size_aa宏。请在bsp_memory_defaults中进行以下修改
136KB是在M0 +中运行的CMAC的大小。
谢谢,PM_DIALOG.