|
本帖最后由 NULL 于 2024-2-26 11:04 编辑
想直接在spi flash中跑代码(XIP)
却发现似乎只能4字节对齐读取?现在的情况就是 代码执行逻辑没问题,比如闪灯正常但是 如果涉及到存储在sfc空间范围内const类型变量的访问——特别是printf打印,就会因为没法字节读取导致问题,表现为printf打印紊乱——波特率没问题。
请问这是芯片固有的设计还是有什么地方可以配置的?
另:从内部flash空间访问SFC空间的结果来看 是只能4字节对齐读取的。
for (size_t i = 0; i < 16; i++)
{
log_printf("%X:[%02X] ", i, *(uint8_t *)(SFLASH_BASE + i));
}
log_printf("\r\n");
for (size_t i = 0; i < 16; i += 2)
{
log_printf("%X:[%04X] ", i, *(uint16_t *)(SFLASH_BASE + i));
}
log_printf("\r\n");
for (size_t i = 0; i < 16; i += 4)
{
log_printf("%X:[%08X] ", i, *(uint32_t *)(SFLASH_BASE + i));
}
log_printf("\r\n"); 0:[10] 1:[00] 2:[BD] 3:[00] 4:[BD] 5:[00] 6:[C5] 7:[00] 8:[C5] 9:[00] A:[C7] B:[00] C:[C7] D:[00] E:[C9] F:[00]
0:[0410] 2:[01BD] 4:[01BD] 6:[01C5] 8:[01C5] A:[01C7] C:[01C7] E:[01C9]
0:[20000410] 4:[700001BD] 8:[700001C5] C:[700001C7]
|
|