spi nor flash问题

2019-07-21 04:38发布

w25q128 一共是16M字,分成256个block,每个块是64k,每个块又分为
16 个扇区(Sector),每个扇区 4K 个字节 。 这个没问题。

官方的测试程序为,写字符串到flash里面, 在读出来。测试ok。
有一个问题不太懂。
W25QXX_Write((u8*)TEXT_Buffer,FLASH_SIZE-100,SIZE);

W25QXX_Read(datatemp,FLASH_SIZE-100,SIZE);       


这上面的FLASH_SIZE=128*1024*1024;    这个地方不太懂了,为什么不是16*1024*1024那。
假设        FLASH_SIZE=128*1024*1024 这个是对的。 那么如果 我在  1 到FLASH_SIZE 地址上全部写固定的u8,那么这个不就是128M字节的了吗?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
aaaaalaode
2019-07-21 14:08
正点原子 发表于 2019-3-7 17:04
例程是写错了,应该是16*1024*1024, 越界能使用,是因为你写入的地址,高位被抛弃,低位还是可以写入的, ...

调试了一下。 首先变量是u32 位的没问题, 但是打印是0。 修改了变量的名字变成小写,那么可以了, 但是实际的地址已经超出spi的地址范围了。应该是 SPI2_ReadWriteByte(W25X_Rea
    SPI2_ReadWriteByte((u8)((ReadAddr)>>16));  
    SPI2_ReadWriteByte((u8)((ReadAddr)>>8));   
    SPI2_ReadWriteByte((u8)ReadAddr);   
这个地方的问题, 高位的超出的已经被忽视了。

一周热门 更多>