打印

kl25的flash支持间断的写入数据吗

[复制链接]
3511|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
774729254|  楼主 | 2013-12-18 09:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
ar_m_cu| | 2013-12-18 10:08 | 只看该作者
肯定支持的

使用特权

评论回复
板凳
774729254|  楼主 | 2013-12-18 10:30 | 只看该作者
ar_m_cu 发表于 2013-12-18 10:08
肯定支持的

你试验过吗

使用特权

评论回复
地板
ar_m_cu| | 2013-12-18 10:36 | 只看该作者
774729254 发表于 2013-12-18 10:30
你试验过吗

没有试过这个,试过其他的,但是这些芯片都是类似的,肯定是可以的

使用特权

评论回复
5
774729254|  楼主 | 2013-12-18 10:54 | 只看该作者
ar_m_cu 发表于 2013-12-18 10:36
没有试过这个,试过其他的,但是这些芯片都是类似的,肯定是可以的

但是这个flash不是写一次就得擦除一次,不然数据不是会被覆盖掉吗

使用特权

评论回复
6
ar_m_cu| | 2013-12-18 11:44 | 只看该作者
774729254 发表于 2013-12-18 10:54
但是这个flash不是写一次就得擦除一次,不然数据不是会被覆盖掉吗

写满再擦,比如你用其中的20K存储GPS数据,首先擦除这20K,然后开始写数据,第一次写10B,第二次接着上次的地址写20B,第三次接着上次的地址写10B。。。一直写,写满20K后再擦

使用特权

评论回复
7
774729254|  楼主 | 2013-12-18 14:13 | 只看该作者
ar_m_cu 发表于 2013-12-18 11:44
写满再擦,比如你用其中的20K存储GPS数据,首先擦除这20K,然后开始写数据,第一次写10B,第二次接着上次 ...

那个地址我不会操作哎,我这里有写好的例程,不过他是对固定的扇区操作的,而且发送的是固定的数据,就写一次,所以我不怎么会改,初学者,清多多指教

使用特权

评论回复
8
ar_m_cu| | 2013-12-18 15:08 | 只看该作者
774729254 发表于 2013-12-18 14:13
那个地址我不会操作哎,我这里有写好的例程,不过他是对固定的扇区操作的,而且发送的是固定的数据,就写 ...

你在坛子里面找用FLASH模拟EEPROM的例程,这个可以作为参考

使用特权

评论回复
9
774729254|  楼主 | 2013-12-18 16:14 | 只看该作者
有没有飞思卡尔的官方发言人,说明一下呢?

使用特权

评论回复
10
jd972594| | 2013-12-18 16:27 | 只看该作者
你可以每隔一秒将最新收到的数据写入FLASH啊
并不是写一次就得擦除一次的。

使用特权

评论回复
11
FSL_TICS_Robin| | 2013-12-18 16:30 | 只看该作者
774729254 发表于 2013-12-18 16:14
有没有飞思卡尔的官方发言人,说明一下呢?

请问你是想用苏大那本书上的函数操作吗?

使用特权

评论回复
12
FSL_TICS_Robin| | 2013-12-18 16:39 | 只看该作者
我记得你之前使用的都是苏大老师书上的例程,我看书上对flash函数写的很清楚啊。
其中就有flash_write函数

使用特权

评论回复
13
774729254|  楼主 | 2013-12-18 19:24 | 只看该作者
FSL_TICS_Robin 发表于 2013-12-18 16:39
我记得你之前使用的都是苏大老师书上的例程,我看书上对flash函数写的很清楚啊。
其中就有flash_write函数 ...

里面是有例程,但是他里面没有说明是否可以接收串口的数据,而且是隔一秒发送一次的数据,里面只说了每写之前都要擦除啊,例程只是简单地实现flash写入与读出的功能

使用特权

评论回复
14
jd972594| | 2013-12-18 19:31 | 只看该作者
774729254 发表于 2013-12-18 19:24
里面是有例程,但是他里面没有说明是否可以接收串口的数据,而且是隔一秒发送一次的数据,里面只说了每写 ...

楼主 你觉得数据 和 串口收到的数据 有什么区别吗?
FLASH是单独的模块,书上肯定只提将数据存入FLASH。

楼主到底想做什么? 不是KL25芯片通过串口中断接收数据,将有用的数据放入数组,再把数组中的数据存入flash,然后如果另外一个串口收到特定指令(其实就是你自己程序里约定的)进行flash擦除吗?

使用特权

评论回复
15
774729254|  楼主 | 2013-12-18 20:02 | 只看该作者
jd972594 发表于 2013-12-18 19:31
楼主 你觉得数据 和 串口收到的数据 有什么区别吗?
FLASH是单独的模块,书上肯定只提将数据存入FLASH。
...

我串口接收到的数据是一秒钟发送一次,如果都写在一个扇区,会覆盖掉原来的,而且书上说每写入到flash一次,就得要擦除一次啊,我是想保存所有的数据啊,而且书上只是说保存在一个扇区,没有说保存在连续几个扇区,我不怎么会编啊

使用特权

评论回复
16
FSL_TICS_Robin| | 2013-12-18 20:09 | 只看该作者
774729254 发表于 2013-12-18 20:02
我串口接收到的数据是一秒钟发送一次,如果都写在一个扇区,会覆盖掉原来的,而且书上说每写入到flash一 ...

我觉得你理解错了,flash在写入前擦除是确保这个扇区全1,那么我写入的才能正确。
一旦你将这个扇区擦除过,就可以对里面写了。
并不是你想写1byte进去,就要整片扇区擦除,写第二个byte,再整片擦除。
请参考6楼网友的解释。

使用特权

评论回复
17
FSL_TICS_Robin| | 2013-12-18 20:49 | 只看该作者
774729254 发表于 2013-12-18 20:02
我串口接收到的数据是一秒钟发送一次,如果都写在一个扇区,会覆盖掉原来的,而且书上说每写入到flash一 ...

请问你用的是这个函数吗?

你一个扇区满了,可以换个扇区。
偏移地址和字节数目,是根据串口数据大小来的。
比如你的126扇区刚被你擦除,每次写4字节
第一次可以从offset写0,cnt写4。第一次写的是0~3地址处
第二次offset就是4了,cnt还是4.这样第二次其实写的就是4~7地址处

使用特权

评论回复
18
FSL_FAE_River| | 2013-12-18 22:12 | 只看该作者
如果数据很重要,建议开2个相同大小的区域,写满第一个就将新的数据写入第二个区,直到第二区满了以后再去擦除第一个区

使用特权

评论回复
19
774729254|  楼主 | 2013-12-19 10:06 | 只看该作者
本帖最后由 774729254 于 2013-12-19 10:08 编辑
FSL_TICS_Robin 发表于 2013-12-18 20:49
请问你用的是这个函数吗?

你一个扇区满了,可以换个扇区。

他给的例程是写在10扇区,那像我要实现串口接收数据并保存,他会地址会自动增加吗,还是我得编程实现?

QQ截图20131219100606.png (5.49 KB )

QQ截图20131219100606.png

使用特权

评论回复
20
FSL_TICS_Robin| | 2013-12-19 10:47 | 只看该作者
774729254 发表于 2013-12-19 10:06
他给的例程是写在10扇区,那像我要实现串口接收数据并保存,他会地址会自动增加吗,还是我得编程实现?
...

这个当然要你自己控制啦,因为书上这个只是flash模块的驱动。
你只是调用它这个工具来使用,具体怎么使用当然是根据使用者意图决定的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

299

帖子

1

粉丝