一种NORFLASH快速读写方法与流程
未命名
08-14
阅读:158
评论:0
一种norflash快速读写方法
技术领域
1.本发明涉及iot设备数据读写方法,尤其涉及一种norflash快速读写方法。
背景技术:
2.目前,大部分iot设备都会外挂一个norflash,用于存储固件和用户的重要数据,由于norflash具有读取速度快、写入速度慢、擦除速度特别慢的特性,且iot设备在频繁保存用户数据的时候会长期占用cpu资源,导致其它线程无法正常获取到cpu资源,进而出现播放卡顿等现象。
技术实现要素:
3.本发明要解决的技术问题在于,针对现有技术的不足,提供一种有利于减少频繁存储用户数据对cpu资源的占用、能有效减少对norflash擦除次数的快速读写方法。
4.为解决上述技术问题,本发明采用如下技术方案。
5.一种norflash快速读写方法,其包括有:分块步骤:将norflash的4k字节数据划为4个数据块,每个数据块为1k字节,设计每个数据块的数据结构;写入步骤:将4k字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,若数据块未被写入,则将本次需要保存的用户数据写入该数据块中;若全部的数据块均被写入过,则先将整个4k字节数据擦除,再将用户数据写入第一个数据块中;读取步骤:将4k字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,查找最后一个被写入的数据块,读取该数据块中的用户数据。
6.优选地,所述写入步骤和所述读取步骤中,通过标签检测每个数据块是否被写入过。
7.优选地,所述写入步骤中,若查找到未被写入的数据块,则加入校验,将用户数据写入该数据块中。
8.优选地,所述写入步骤中,若全部的数据块均被写入过,则在整个4k字节数据擦除之后,将4k字节数据起始位置的数据块作为第一个数据块。
9.优选地,所述读取步骤中,读取数据块中的用户数据过程包括校验步骤:若校验通过,则设置用于数据,若校验未通过,则擦除整个4k字节数据,初始化默认数据。
10.优选地,擦除4k字节数据的过程中,将全部数据块的数据位写为1。
11.优选地,写入用户数据的过程中,将数据块的相应位写为0。
12.本发明公开的norflash快速读写方法,其相比现有技术而言的有益效果在于:本发明作为一种对少量用户数据频繁存储时加快存储速度的方法,不仅能有效减少频繁存储用户数据对cpu的占用,还能大量减少对norflash的擦除次数,较好地满足了应用需求。
附图说明
13.图1为本发明norflash快速读写方法的流程图;
14.图2为norflash的电路原理图。
具体实施方式
15.本发明公开了一种norflash快速读写方法,请参见图1和图2,其包括有:
16.步骤a-分块步骤:将norflash的4k字节数据划为4个数据块,每个数据块为1k字节,设计每个数据块的数据结构;
17.具体而言,在该步骤中,norflash中存储用户数据少于1k字节时,可以将4k字节地址划为4块,每块1k字节,设计每块的数据结构,包含是否使用标签、用户数据类型、数据crc32校验;
18.步骤b-写入步骤:将4k字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,若数据块未被写入,则将本次需要保存的用户数据写入该数据块中;若全部的数据块均被写入过,则先将整个4k字节数据擦除,再将用户数据写入第一个数据块中;
19.实际应用中,当需要写入用户数据的时候,先将4k字节数据完整读出,遍历其中数据块,通过标签检测该块是否被写入过,如未写入,则将这次需要保存的用户写入未写入的块中;如果所有块都被写入过,则将整个4k数据快擦除,再将用户数据写入第一块中;
20.步骤c-读取步骤:将4k字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,查找最后一个被写入的数据块,读取该数据块中的用户数据;
21.读取数据时,先将4k数据完整读出,遍历其中数据块,通过标签检测该块是否被写入过,找到最后一个写入的块,读取其中数据。
22.基于上述原理,使得本发明相比现有技术而言的有益效果在于:本发明作为一种对少量用户数据频繁存储时加快存储速度的方法,不仅能有效减少频繁存储用户数据对cpu的占用,还能大量减少对norflash的擦除次数,较好地满足了应用需求。
23.本实施例中,关于norflash一种非易失闪存技术的特性包括:1、读取速度快;2、写入速度慢,写入值只能从1变成0,所以写入之前需要将数据擦除成1;3、每次擦除整块4k,擦除速度很慢,擦除次数为10000-100000次。
24.作为一种优选方式,所述写入步骤和所述读取步骤中,通过标签检测每个数据块是否被写入过。
25.在本实施例的所述写入步骤中,若查找到未被写入的数据块,则加入校验,将用户数据写入该数据块中。此外,在所述写入步骤中,若全部的数据块均被写入过,则在整个4k字节数据擦除之后,将4k字节数据起始位置的数据块作为第一个数据块。
26.所述读取步骤中还包括校验步骤,具体而言,所述读取步骤中,读取数据块中的用户数据过程包括校验步骤:若校验通过,则设置用于数据,若校验未通过,则擦除整个4k字节数据,初始化默认数据。
27.实际应用中,优选采用数据crc32校验,crc32校验是一种循环冗余校验数据方式,主要用于检测数据在传输、存储、读取的时候是否出错,其特点为:1、检错能力极强;2、开销小,适合嵌入式系统;3、通用性高。
28.作为一种优选方式,擦除4k字节数据的过程中,将全部数据块的数据位写为1。进一步地,写入用户数据的过程中,将数据块的相应位写为0。
技术特征:
1.一种norflash快速读写方法,其特征在于,包括有:分块步骤:将norflash的4k字节数据划为4个数据块,每个数据块为1k字节,设计每个数据块的数据结构;写入步骤:将4k字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,若数据块未被写入,则将本次需要保存的用户数据写入该数据块中;若全部的数据块均被写入过,则先将整个4k字节数据擦除,再将用户数据写入第一个数据块中;读取步骤:将4k字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,查找最后一个被写入的数据块,读取该数据块中的用户数据。2.如权利要求1所述的norflash快速读写方法,其特征在于,所述写入步骤和所述读取步骤中,通过标签检测每个数据块是否被写入过。3.如权利要求1所述的norflash快速读写方法,其特征在于,所述写入步骤中,若查找到未被写入的数据块,则加入校验,将用户数据写入该数据块中。4.如权利要求1所述的norflash快速读写方法,其特征在于,所述写入步骤中,若全部的数据块均被写入过,则在整个4k字节数据擦除之后,将4k字节数据起始位置的数据块作为第一个数据块。5.如权利要求1所述的norflash快速读写方法,其特征在于,所述读取步骤中,读取数据块中的用户数据过程包括校验步骤:若校验通过,则设置用于数据,若校验未通过,则擦除整个4k字节数据,初始化默认数据。6.如权利要求1所述的norflash快速读写方法,其特征在于,擦除4k字节数据的过程中,将全部数据块的数据位写为1。7.如权利要求1所述的norflash快速读写方法,其特征在于,写入用户数据的过程中,将数据块的相应位写为0。
技术总结
本发明公开了一种NORFLASH快速读写方法,其包括有:分块步骤:将NORFLASH的4K字节数据划为4个数据块,每个数据块为1K字节,设计每个数据块的数据结构;写入步骤:将4K字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,若数据块未被写入,则将本次需要保存的用户数据写入该数据块中;若全部的数据块均被写入过,则先将整个4K字节数据擦除,再将用户数据写入第一个数据块中;读取步骤:将4K字节数据完整读出,遍历其中的数据块,检测每个数据块是否被写入过,查找最后一个被写入的数据块,读取该数据块中的用户数据。本发明利于减少频繁存储用户数据对CPU资源的占用、能有效减少对NORFLASH擦除次数。能有效减少对NORFLASH擦除次数。能有效减少对NORFLASH擦除次数。
技术研发人员:蒋启霖 韩孝龙 胡新宇 万勇 陈旭斌
受保护的技术使用者:深圳市火火兔智慧科技有限公司
技术研发日:2023.05.25
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
