记录.关于flash的擦除后的值

flash在被擦除后,读回的值是1,而不是0。也就是说一个字被擦除后其值是0xFF而不是0x00,这个跟flash的原理有关。

所以这也可以推出:flash无法写入1,只能写入0。要想写入1只能先对flash擦除再写。所以对字寻址的flash都需要一次擦除4个字节然后再写入值,有两个步骤,而不是直接就写入了。

那么知道这个知识对我们有什么帮助:当我们需要操作flash时就能知道需要先擦除再写入。就这样!!!

### FLASH存储器的读写擦除原理及其实现 #### 1. FLASH存储器的基本概念 FLASH存储器是一种非易失性存储器,能够在断电的情况下仍然保存数据信息。它的典型应用场景包括计算机BIOS、PDA设备以及数码相机中的数据存储等[^1]。 #### 2. 读取操作原理 在FLASH存储器中,读取操作是最简单的操作之一。当需要从某个地址读取数据时,控制器会向该地址发送请求信号,并等待响应。由于FLASH存储器支持随机访问模式,因此可以直接定位到目标单元并返回所需的数据。需要注意的是,虽然读取速度快,但由于硬件设计的原因,某些类型的FLASH可能会存在一定的延迟时间[^3]。 #### 3. 写入操作原理 对于写入操作而言,情况相对复杂些。因为FLASH不允许像传统RAM那样逐位修改比特,而是采用了一种特殊的机制——即先整体清除后再重新填充新内容的过程称为“编程”。具体来说: - **准备工作**:如果要更新某一小部分内容,则需先把包含这部分在内的整个扇区(Sector/Page)的内容复制出来暂存起来; - **执行删除命令**:接着对该区域发起一次完整的清零动作也就是所谓的“擦除”过程; - **完成实际录入工作**:最后把之前保留下来的信息连同新增加的部分一起送回到原来的位置上覆盖原有记录即可[^2]。 此流程不仅增加了额外开销而且还加速了器件的老化程度故而在频繁改动场合下应考虑采取适当措施来延长使用寿命如实施损耗均衡策略等等。 #### 4. 擦除操作原理 与上述提到的不同之处在于,“擦除”的目的并非仅仅是为了腾出空间以便后续利用那么简单;实际上它是改变内部物理结构从而允许进一步进行有效‘书写’的前提条件。一般来说,一个标准页面或者区块会被设定成全逻辑高态(通常是FFh),这意味着所有的浮栅晶体管都被充电至接近阈电压之上使得它们处于导通状态直到再次经历相应的加载程序为止[^5]。 得注意的一点是,尽管现代技术已经极大地提高了每次可承受的最大循环数但仍有限制范围内的最佳实践建议遵循厂商给出的具体指导方针以确保长期可靠性[^4]。 ```c // 示例代码展示如何初始化和控制SPI通信协议下的Flash芯片 void SPI_Flash_Init(void){ // 初始化GPIO端口配置... // 设置波特率以及其他必要参数... } uint8_t Read_Status_Register(){ uint8_t status; // 发送READ_STATUS_REGISTER指令并通过MISO接收反馈结果... return status; } ``` 以上片段仅作为示意用途并未完全体现所有细节部分请参照官方文档获取更详尽描述。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值