主题中讨论的其他器件:UNIFLASH
工具与软件:
你(们)好
使用的闪存是 LP Devboard - 16MB S25FL128SAGNFI000、与 TI 提供的闪存示例相同的 syscfg。 寻址模式4字节不启用。
我注意到的是、如果我将某些 内容写入地址0x00040000、我可以从0x00040000中读取它、但在0x00840000中将出现相同的内容。
以特定模式写入、并且 0x00040000 与0x00840000相同、 但 使用 Flash_write TI 驱动程序调用仅写入0x00040000。
两个地址都低于16M、这种回绕不应发生。
遵循调用 Flash_READ 的代码、该代码到达 QSPI_spiMemMapReadDma、映射的地址为 0x60840000、似乎正确。

QSPI_edmaTransfer/edmaParam.srcAddr 仍为 0x60840000。
地址<= 16位时可以正常工作、写入那里的映像也可以、我可以从给定的地址使用 TI SBL 示例进行引导。
问题从24位开始(理论上不应该、3字节寻址在 0x00840000处也应有效)。
代码本身来自引导加载程序和 QSPI 闪存示例、syscfg 没有任何改变。
由于我不知道 DMA 传输、是否存在任何16位还是24位限制?
编辑:仔细检查它甚至不是16位、因为0x00040000已经超过16位、但是问题是24位地址的较高位(0x00840000)。
EDIT2:我将当前日期时间作为字符串、并使用特殊字符 Seq 来标识闪存中的条目-我使用了 UNIFLASH 读取、但似乎有重复的数据:
0x60040000 F8AD1BC2 0000FFFF 30320001 32313432 38303530 36333935
0x60840000 F8AD1BC2 0000FFFF 30320001 32313432 38303530 36333935
0x60240000 F8AD1BC2 0000FFFF 30320003 32313432 39303530 38333430
0x60A40000 F8AD1BC2 0000FFFF 30320003 32313432 39303530 38333430
0x60340000 F8AD1BC2 0000FFFF 30320002 32313432 38303530 38323135
0x60B40000 F8AD1BC2 0000FFFF 30320002 32313432 38303530 38323135
但同一日期不可能出现两次(日期始终更改、并且我从未触摸过闪存的上部-最后一个标头被写入0x60340000)。
问题是24位地址(0x800000)的最后一位。
此致





