[技术问题解答] 关于KL25的片内Flash问题

[复制链接]
2568|17
 楼主| wxb18k 发表于 2014-12-1 14:53 | 显示全部楼层 |阅读模式
我想问下MKL15z64这个芯片在写片内Flash的时候,如果一个片区已有内容,是否在写入前必须先擦除这个片区吗?可以不擦除直接写吗?
FSL_TICS_Robin 发表于 2014-12-1 15:46 | 显示全部楼层
楼主你好
在执行写入操作之前要确保写入区的存储单元全为0xFF也就是在上一次擦除之后没有被写入过。
如果你不执行擦除操作将写入区为0的单元改成1,那么只执行写入操作后的数据会出错。
 楼主| wxb18k 发表于 2014-12-1 16:00 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-12-1 15:46
楼主你好
在执行写入操作之前要确保写入区的存储单元全为0xFF也就是在上一次擦除之后没有被写入过。
如果你 ...

我想问下是不是每次擦除的时候都是要擦除整个扇区(一个扇区1kb),能不能只擦除自己想要写入的地址,而扇区内的其他地址不擦除?
FSL_TICS_Robin 发表于 2014-12-1 16:25 | 显示全部楼层
wxb18k 发表于 2014-12-1 16:00
我想问下是不是每次擦除的时候都是要擦除整个扇区(一个扇区1kb),能不能只擦除自己想要写入的地址,而 ...

擦除就是按扇区一下子擦除的,无法单独只擦除那一个地址。
你可以先把这个扇区不想被擦除的地址值读出来,然后擦除此扇区,最后将读出的其他地址的数据和要改变的地址数据一起写进去。

或者这个变量单独放一个扇区。
 楼主| wxb18k 发表于 2014-12-1 18:05 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-12-1 16:25
擦除就是按扇区一下子擦除的,无法单独只擦除那一个地址。
你可以先把这个扇区不想被擦除的地址值读出来, ...

感觉这样很傻啊,为了要改变一点点数据而做了那么多,而且耗时,主要是我这项目对时间要求比较高
FSL_TICS_Robin 发表于 2014-12-2 08:31 | 显示全部楼层
wxb18k 发表于 2014-12-1 18:05
感觉这样很傻啊,为了要改变一点点数据而做了那么多,而且耗时,主要是我这项目对时间要求比较高 ...

KL25这款芯片没有EEPROM,所以你把数据存入Flash时就不能像使用EEPROM那么方便了。
FSL_FAE_LiKe 发表于 2014-12-2 09:47 | 显示全部楼层
wxb18k 发表于 2014-12-1 18:05
感觉这样很傻啊,为了要改变一点点数据而做了那么多,而且耗时,主要是我这项目对时间要求比较高 ...

楼主,这样设计的原因是因为Flash在烧录编程的时候只能由1变0,不能由0变1,要0变1只能大量擦除,这是Flash的物理特性决定的
危险人物 发表于 2014-12-2 11:30 | 显示全部楼层
恶意围观
FSL_TICS_Robin 发表于 2014-12-9 16:13 | 显示全部楼层
请问此问题是否已经解决?
如果尚未解决建议继续在帖子里与大家一起讨论。
lkl0305 发表于 2015-8-23 12:20 来自手机 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

140

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部