之前没有遇到过这方面的需求,现在遇到了,记录下来:
 一般来说,flash芯片会支持以下几种擦除接口。
擦除接口:

  • 1、256Byte擦除接口(页擦除)
  • 2、4KByte擦除接口(块擦除)
  • 3、32KByte擦除接口(扇区擦除)
  • 4、64KByte擦除接口(扇区擦除)

一种最简单的处理思想就是:
一个地址先判断它是否是64K的开始地址、是否是32K的开始地址、是否是4K的地址如果不是(说明只能使用256B的擦除方法了)再判断这个地址加上256B是否大于结束地址,不大于就执行擦除操作。然后这个地址就加上256B,然后进入下一个这种循环,循环反复,知道这个地址等于结束地址

但是,flash操作和其他不同的地方就是:

1、最简单的全部使用256B 擦除方法(1024~52224)–需要循环200次。

#include "stdio.h"typedef  unsigned int uint32_t;void page_earase(uint32_t addr)
{printf("256B: %d\r\n", addr);
}void sector_earase(uint32_t addr)
{printf("4K: %d\r\n", addr);
}void block32_earase(uint32_t addr)
{printf("32K: %d\r\n", addr);
}void block64_earase(uint32_t addr)
{printf("64K: %d\r\n", addr);
}void block_file_earase(uint32_t start, uint32_t end)
{uint32_t size = end - start;for (int i = 0; i < (size / 256); i++){page_earase(start+(256*i));}printf("total: %d\r\n", size/256);
}int main(void)
{block_file_earase(1024, 52224);return 0;
}

2、加入4KB的擦除方法(1024~52224)–需要循环200次。

嵌入式单片机应用开发--FLASH的擦除操作(擦除开始地址到结束地址内的数据)相关推荐

  1. 嵌入式单片机产品开发设计框架

    老板突然要给你一个新的需求,要你做一款自己不熟悉的产品,第一感觉都是懵的,不知道这个产品的工作原理是什么?用的是什么方案,什么芯片? 我们首先是买个样品回来研究一下,看别人是怎么做的,然后在别人样品的 ...

  2. 嵌入式linux备份flash,嵌入式Linux裸机开发(十一)——Nandflash

    嵌入式Linux裸机开发(十一)--Nandflash 一.Nand Flash简介 NandFlash是Flash的一种,具有容量较大,改写速度快等优点,适用于大量数据的存储.NandFlash没有 ...

  3. nand flash的读操作详解

    这篇文章不是介绍 nandflash的物理结构和关于nandflash的一些基本知识的.你需要至少了解 你手上的 nand flash的物理结构和一些诸如读写命令 操作的大概印象,你至少也需要看过 s ...

  4. uml+oopc嵌入式c语言开发精讲_嵌入式开发中更接近底层的汇编与C语言

    分享本文,介绍下更接近硬件底层的C语言与汇编,解释 CPU 如何执行代码. 高级语言与低级语言 学习编程其实就是学习与计算机交流的语言.因为计算机不理解人类语言,通过编译器把人类写的代码转成二进制代码 ...

  5. STM32 FLASH 简单读写操作【有代码】

    [举报再看养成习惯,噢 不对,点赞再看 养成习惯.感谢支持] STM32的Flash操作分为读写:读写. 一.读操作 读取比较简单,直接指针解引用地址就可以读取.注意一下读取的单位即可 /****** ...

  6. 单片机按键开发库-支持连击、长按等操作

    Multi-Function Button Dectection Multi-Function Button Dectection,简称MFBD,是一个基于嵌入式C语言的按键库,自动消抖,支持单击.长 ...

  7. 嵌入式单片机开发小工具集 进制转换计算器 (持续更新)

    单片机开发工具集 文章目录 单片机开发工具集 前言 一,目录 二,模块 1,16进制转二进制寄存器 前言 在嵌入式单片机开发中,经常要处理一些不同进制的数据,查看配置寄存器等,需要用到一些特定功能的小 ...

  8. GD32F4xx系列的内部FLASH读写以及擦除操作

    GD32F4xx系列的FLASH读写以及擦除操作 1,打开GD32F4用户手册 可以查看到芯片对应的FLASH的大小以及可使用的存储地址. 目前我使用的GD32F407VGT6的FLASH大小为1M, ...

  9. 【嵌入式开发】ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

    文章目录 一. 内存 简介 1. 两大内存分类 ( 1 ) DRAM 简介 ( 定期刷新 | 速度慢 | 成本低 ) ( 2 ) SRAM 简介 ( 不需刷新 | 存取速度快 | 功耗大 | 成本高 ...

最新文章

  1. php图片转字符程序,PHP文字转图片功能原理与实现方法分析
  2. java robot 控制鼠标_Java-探索Robot类:[2]自动控制鼠标
  3. TortoiseSVN在Windows下的使用
  4. matlab--矩阵运算
  5. rfc垮端口 sap_SAP扫盲系列之二:SAP ABAP应用服务器的组成部分
  6. kafka rebalance与数据重复消费问题
  7. php定时任务(自己)
  8. 世界上最难的视觉图_世界上最长的蛇有多长?四川惊现55米洪荒巨蟒(图)
  9. 螺旋天线matlab仿真,用AMDS进行螺旋天线仿真
  10. 牛顿法的优缺点及特征
  11. 数据挖掘概念与技术(第三版)课后答案——第一章
  12. win10如何搜索计算机网络ip,win10怎样查看电脑IP地址?,看完就明白了
  13. php 排它性,排他性
  14. 费雪信息场增量建场实际实验
  15. SketchUp模型组件【iMod · 精选242 —— 现代客厅SU模型】
  16. matlab的实验报告,MATLAB实验报告(8个实验).doc
  17. CAD2010在布局中加入标准图框直接打印图纸
  18. OJ题目:一元二次方程
  19. 虚幻引擎 遇到的问题总结
  20. 关于UnrealEngine4与罗技X52等UE4没有兼容的外接设备在UE4中的映射问题

热门文章

  1. Google Earth选项中的重要设置
  2. 我将进化成一条狗(7)——脑机接口
  3. [SQL SERVER 2016]ABF文件的还原
  4. n枚硬币找出假币问题(包含一枚假币)
  5. Spring IOC循环依赖问题
  6. Vue框架学习(第十三课)Vuex状态管理中的store和state属性
  7. 西电职称计算机报名,西安电子科技大学.PDF
  8. 想让AI变现?这六大市场营销场景不容忽视
  9. 全金属牙冠-市场现状及未来发展趋势
  10. Unity - But the dll is not allowed to be included or could not be found 打包时错误提示的解决方法