手册上提到“与具有字节选择功能的存储器(SRAM、ROM、PSRAM等)进行异步传输时,FSMC 执行读写操作并通过它的字节通道BL[1:0]访问正确的数据。 ”
如下图所示:
SRAM挂到FSMC的NOR/PSRAM 1上,
现在定义一个8位和一个16位的变量temp_8 temp_16:
#define Bank1_SRAM1_ADDR ((uint32_t)0x60000000)
#define temp_8 (*(u8 *)(Bank1_SRAM1_ADDR+0x0))
#define temp_16 (*(u16 *)(Bank1_SRAM1_ADDR+0x1))
赋值
temp_8=0x12;
temp_16=0x3456;
---------------------------------------------------------------------------------------
1.两个变量在FSMC存储块中的存放位置应该如上图所示吧
2.而在SRAM中呢,temp_8会放在00000中的低8位,然后temp_16中的0x56会放在00000中的高8位,而0x34会放在00001中的低8位
还是temp_8直接放在00000的低8位,而高8位空,temp_16高低8位对应该放入00001中呢?应该不会是第二种情况吧,不明NBL0、NBL1的控制时序
|