硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2854|回复: 2
收起左侧

[有问必答] spi读写外部FLASH扇区首地址确定

[复制链接]

3

主题

5

回帖

14

积分

新手上路

积分
14
发表于 2019-9-21 10:44:30 | 显示全部楼层 |阅读模式
在阅读关于SPI读写FLASH的过程中,看到在计算扇区首地址是这样计算的,
uiFirstAddr = _uiWrAddr & (~(g_tSF.PageSize - 1));
请问有谁知道这是遵循什么原理么?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107143
QQ
发表于 2019-9-21 11:24:14 | 显示全部楼层
SPI Flash的页大小是256字节,为了方便擦除操作,我们是设置的4KB,因为SPI Flash的最小擦除单位是4096字节。

uiFirstAddr = _uiWrAddr & (~(g_tSF.PageSize - 1));
->uiFirstAddr = _uiWrAddr & (~(4096 - 1));
->uiFirstAddr = _uiWrAddr & (~(0x00000FFF));
->uiFirstAddr = _uiWrAddr & 0xFFFFF000;

从而保证了每次都0x1000,0x2000等扇区地址。


回复

使用道具 举报

3

主题

5

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2019-9-21 15:27:06 | 显示全部楼层
eric2013 发表于 2019-9-21 11:24
SPI Flash的页大小是256字节,为了方便擦除操作,我们是设置的4KB,因为SPI Flash的最小擦除单位是4096字节 ...

明白啦,非常感谢~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 10:47 , Processed in 0.192094 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表