MCU内部DataFlash的特点原理揭秘

本文讲解mcu内部dataflash的特点原理,以及其模拟eeprom使用的方法和算法,如果方便,推荐观看下面的视频。 现在市面上的mcu,一般都会带一个dataflash空间,用于存储用户数据(区别于codeflash)。
dataflash有两个基础概念,sector和page:
其中sector是最小擦除单位,而page是最小写单位。
至于这个sector和page到底是多大,不同厂家的mcu定义不同
mcu family  physical sector size  page size
s12xe 256 byte - 1024 byte  2 - 8 byte
tc2xx  1 kb - 8kb 8 byte
mpc56xx     16kb - 128kb 4 - 16 byte
tricore 17xx  64kb- 128kb 128 - 256 byte
rh850 64 byte 4 byte
其他dataflash的擦写行为是这样的
那么,怎么知道一块区间到底写过数据没有呢?
我见过两种情况:
1. 直接读取数据,判断为ff就认为擦除过了
2. 有些芯片在读取擦除区间的数据是不可靠的,要特殊途径判断
软件上为了统一,autosar定义了一个blankcheck的函数
service name fls_blankcheck
syntax std_returntype fls_blankcheck(
fls_addresstype targetaddress,
fls_lengthtype  length)
description the function fls_blankcheck  shall verify, whether a given memory area has been erased but  not (yet) programmed. the function shall limit the maximum number of  checked flash  cells per main function cycle to the configured value  flsmaxreadnormalmode or flsmaxreadfastmode respectively.
好奇的你,也许会问,一个擦除单位那么大,使用很不方便,效率也不高,有没有办法让dataflash像eeprom那样使用?
这个就是磨损均衡算法了。可以参考《autosar中的fee》
fee好像很厉害的样子,能否想个办法研究下它的行为。
当然,可以用pc的file操作方式模拟fls的api接口,然后再怎么折腾都行。


云计算的未来将会是无服务器吗
InstantEye Robotics宣布推出多功能小型无人机系统
GTX 16系列全线停产!
小米max2什么时候上市?oppor11首发骁龙660,小米max2同配置今日发布只要1499!oppor11能否再续辉煌?
存储结构方式之邻接表详解
MCU内部DataFlash的特点原理揭秘
电感和磁珠的区别
TDA2030A音频功放及应用
使用最新的机器学习技术进行恶性肿瘤治疗,可以缓解患者在治疗中的痛苦
中国IPv6发展状况白皮书正式发布并同时上线了国家IPv6发展监测平台
工业测量中的噪声干扰问题
浙江萧山首个内河智能岸电系统在江顺建材码头正式投入使用
基于软件无线电中频接收系统的设计方案
谷歌量子计算机新突破 可几秒内完成47年的任务
先楫半导体发布多个系列高性能微控制器产品
数字化施工引领基础设施建设新潮流
我国IPv6规模部署加速,2025年完成向下一代互联网的平滑演进升级
如何运用数字I/O来保护继电器
关于加速度传感器7102A-0100的几种应用
怎样解决NSIS错误