概念

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

应用场景

很多时候我们程序中的有一些变量它不是每次都需要初始化的,例如:表计中的数据,需要记录上次断电的状态标志位等等…这些都是需要记忆功能来实现的,这时候就需要把这些需要保存的变量写进去Flash里面,下次上电唤醒之后,重新读取出来。

功能实现

const unsigned char ucWriteIn[12] = {'L','i','a','n','g','J','i','n','g','Y','i','_'};int main (void)
{ CHIP_Init();CMU_ClockSelectSet(cmuClock_LFA, cmuSelect_LFRCO);
//   CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFRCO);                    /* 外部高频晶振没焊接,改为使用内部晶振  *//* *  开启LE时钟,只要使用到低频外设,都需要开启该时钟                  */CMU_ClockEnable(cmuClock_CORELE, true);    CMU_ClockEnable(cmuClock_GPIO, true);                                /* 使能GPIO模块的时钟源         */  /* Ensure core frequency has been updated */SystemCoreClockUpdate();if(SysTick_Config(SystemCoreClockGet() / 1000)) while (1);               /* 设置SysTick为1ms中断         */OrigrinatePeripherals_init();    WriteFlash();                                  //擦写Flashwhile(1);}

擦写函数:

void WriteFlash(void)
{//add a timerMSC_Init();                  //初始化MSC,并使能AUXHFRCO__disable_irq();             //关闭总中断if(MSC_ErasePage((uint32_t *)0x0fe00000) == mscReturnOk)       //擦除指定地址的数据{MSC_WriteWord((uint32_t *)0x0fe00000,ucWriteIn,12);               //将数据写入指定地址。}MSC_Deinit();unsigned char *Point = (unsigned char *)0x0fe00000;      //直接读取写入的地址位上的数据for(unsigned char i = 0; i < 8; i++)                            //读出的数据进行比对,和写入的是否一致!{if(*(Point + i) == ucWriteIn[i])continue;else{while(1);             // error occur}}__enable_irq();               //开启总中断printf("point = %s  \r\n",Point);
}

注意事项:
1、切记,在写Flash的过程中,不允许被任何东西打断,否则写入不成功;读数据没有这个要求。

2、写入的数据以4个字节为单位!

代码运行调试

总结

以上就是写Flash的过程,具体如何适合你的代码,需要你自己移植设计,很简单也很方便!

小壁虎EFM32如何写Flash实现存储相关推荐

  1. 小壁虎EFM32之ADC 采集电压

    前言 最近在学习小壁虎EFM32芯片的使用,需要用ADC采集电压,学习之中,遇到一些小问题和需要注意的地方,现将其记录下来,避免以后自己再次踩坑和往后可以学而时习之:好了,进入正题. 代码 主函数: ...

  2. efm32芯片电压_小壁虎PK小蝴蝶(EFM32 vs STM32L)

    近日因要使用低功耗MCU,故花了点时间来研究ARM cortex M系列的低功耗MCU,今天的主角,相信熟悉 ARM Cortex 单片机的大神们,一听这名字,就知道是谁了. -EnergyMicro ...

  3. 小壁虎(EFM32 Zero Gecko)开发板测量功耗

    小壁虎(EFM32 Zero Gecko)是一款类似于Arduino的开发板,旨在更加方便快捷的开发嵌入式软硬件 开发环境下载链接Simplicity Studio 安装好软件后,插上开发板,再按照提 ...

  4. 采用NAND Flash设计存储设备的挑战在哪里?

    对于搞电子设计的工程师而言,NAND Flash是再熟悉不过的东西了.在电子设计的时候,NAND Flash通常作为大容量存储介质,可以类比为PC系统中的磁盘.在电子设计领域,对于小容量存储,还可以采 ...

  5. 写flash,要不要加个判断?

    相关文章 既生Flash,又何生EEPROM? 存储器Flash页.扇区.块的区别 这是我一个知识星球朋友的提问 刚开始我没有认真去思考这个问题,之后我仔细查了下资料,里面的内容还挺多. 先看看EMM ...

  6. Arduino ESP32 flash数据存储结构

    Arduino ESP32 flash数据存储结构 分区表官方文档:<分区表> 想了解ESP32 flash数据存储结构需要从分区表开始了解.一点类似一台电脑上挂载的硬盘一样. 分区表保存 ...

  7. s3c4510 烧写flash

    原创:s3c4510 烧写flash(sst39vf3201) 补齐了所有文件 参考其他资料 作者:wangkj 栏目:ARM技术 原创:S3C4510 烧写FLASH(SST39VF3201) 补齐 ...

  8. GPT-3有多强?伯克利小哥拿它写“鸡汤”狂涨粉

    作者 | 文摘菌 出品|大数据文摘 GPT-3有多强大?可不止能写高考作文. 最近,一位美国小哥用GPT-3写的博客,就打败了一票人类作者,登上了新闻平台技术板块热榜第一?? 你没听错.这位小哥名叫L ...

  9. GPT-3有多强?伯克利小哥拿它写“鸡汤”狂涨粉,还成了Hacker News最火文章?!

    大数据文摘出品 GPT-3有多强大?可不止能写高考作文. 最近,一位美国小哥用GPT-3写的博客,就打败了一票人类作者,登上了新闻平台技术板块热榜第一?? 你没听错.这位小哥名叫Liam Porr,来 ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动标准差(rolling std)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额标准差
  2. 小电商的延时队列设计概要
  3. NPM酷库:dateformat 时间字符串格式化
  4. WORD如何取消编辑保护?
  5. buy low buy lower——伪思考
  6. paypal如何支付欧元_做印度最好的第三方四方支付网关-在线业务源码服务wefreepay一网打尽...
  7. java找出最高工资和下标_Java 8 lambda用于为每个部门选择最高薪资员工
  8. ueditor html模板,UEditor 编辑模板
  9. 采用晶体管作为电子元器件的计算机属于,采用晶体管作为电子元器件的计算机属于(...
  10. 【Tensorrt】Tensorrt C++部署YOLO v5报错记录 Version tag does not match. Note: Current Version: xxx, Serializ
  11. 数据分析师三个等级_数据分析课|这三个等级的数据分析师报考条件,一定是你需要的...
  12. WCF学习经验分享,如何更好地学习WCF?
  13. 无人机宽带自组网技术(随笔)
  14. strncpy()函数详解
  15. 记FTP链接:Server Reply: SSH-2.0-OpenSSH_8.0
  16. 《黑头人》(暂定)开发日志
  17. python中的调试器dbg
  18. 解决微信小程序ios端滚动卡顿的问题
  19. shared_from_this的使用
  20. pythonurllib库获取yahoo财经数据_用Python从Yahoo财经中获取历史数据

热门文章

  1. 查询mysql定时任务(事件)及事件的内容
  2. 文件管理“桌面”变成“Desktop”解决方法
  3. 云原生社区最新力作《深入理解 Istio》出版
  4. 【小松教你手游开发】【系统模块开发】图文混排 (在label中插入表情)
  5. C#里氏转换,子类赋值父类,父类强制转换成子类的理解
  6. 浅析组织结构与个人发展的关系
  7. centos7安装httpd service和启动时遇到的问题
  8. 计算机无法读光盘,光驱读不出光盘,教您电脑光盘不能被识别怎么解决
  9. python自动推送消息_Python自动接收微信群消息并推送相应的公众号文章
  10. 会议及作用篇--项目管理(二十一)终