一种用于物联网的实时擦写FLASH方法技术

技术编号:32811813 阅读:10 留言:0更新日期:2022-03-26 20:06
本发明专利技术提供了一种用于物联网的实时擦写FLASH方法。本发明专利技术在所有的启动场景,都可以完成flash的擦写:任意一个单核启动的时候,都可以在运行软件的同时一次性擦写flash;两个核同时启动时,可以没有网络连接的情况下一次性擦写flash;当存在网络连接的情况下,在擦写flash时保证物理层任务也能正常运行的情况下尽量少次数挂起恢复完成擦写。本发明专利技术能够根据系统的任务紧张程度,最大限度地保证擦写机会,在得到擦写机会后估算时间进行最多时间的擦写,减少挂起恢复的次数。减少挂起恢复的次数。减少挂起恢复的次数。

【技术实现步骤摘要】
一种用于物联网的实时擦写FLASH方法


[0001]本专利技术属于物联网
,具体涉及一种用于物联网的实时擦写FLASH方法。

技术介绍

[0002]物联网要求低成本,所以SRAM(StaticRandom

AccessMemory,静态随机存取存储器),TCM(Tightly

CoupledMemory,紧耦合内存)等速度快的存储设备尽量裁减适当使用以降低成本,尽量使用NORFLASH运行程序以及存储必要的数据(NV)。这要求FLASH使用寿命能够达到一定的要求。物联网终端的FLASH有两种:
[0003]一种是片内集成一片NORFLASH运行程序,再集成一片EPROM或者NORFLASH存储数据。好处是软件简单,NORFLASH只在下载的时候擦写,上电运行之后,只需要CPU从FLASH取指,存储数据的时候不用关心软件代码放在哪里,直接写另外一块EPROM或者FLASH,缺点就是成本大大的提高。
[0004]第二种方案是集成一片NORFLASH,既要运行代码,也要分一部分出来存储数据。该种方案中,芯片内部只集成一块NORFLASH,这也是在控制成本下大多数使用的方案。优点是省去一块FLASH,以及SOC上省去一个控制器,有效的降低成本。但是缺点软件复杂度上就提升了很多,同一个NORFLASH上既要保证CPU取指,又要保证擦写FLASH成功。一般的做法就是擦写FLASH的时候,保证擦写FLASH的软件由一个CPU核取指并将程序放在片内RAM中。在通信终端如果接入网络的情况下,终端设备会和基站存在DRX(非连续接收)的行为。在通信处理器一侧,物理层会每1ms产生一次中断,如果不能及时处理,物理层软件就会导致芯片死机。因此一般情况下,写FLASH的时候需要关闭网络连接,其中一个处理器进入等待状态,另一个处理器去擦写FLASH,完成擦写FLASH之后再恢复网络连接状态。这种方案在一般业务下还可以勉强运行,但是如果需要保持网络连通的情况下,例如FOTA升级这样的业务,如果还是按照以往方式关闭网络,写FLASH,再开网络,则会存在很多问题。

技术实现思路

[0005]本专利技术公开了一种用于物联网的实时擦写FLASH方法,实现了所有场景下的flash擦写,有些情况下擦写flash是在网络连接的状态下,有些是无网络状态下擦写。
[0006]为达到上述目的,本专利技术的技术方案如下:
[0007]一种用于物联网的实时擦写FLASH方法,包括如下步骤:
[0008]步骤一,判断系统芯片是否为单核启动模式,如为单核启动模式,则直接转至步骤五,如非单核启动模式则执行步骤二;
[0009]步骤二,配置共享内存数据;
[0010]步骤三,正要进行flash擦写的处理器通知其他需要可能会进行flash操作的处理器进入等待状态,不对flash进行操作;
[0011]步骤四,判断此时网络是否处于连接状态,如处于连接状态,则需要每1ms周期内限定擦写的时间,即每1ms周期内首先满足物理层任务运行时间需要,剩余时间根据系统的
繁忙程度获取flash擦写时间;如网络处于非连接状态,则执行步骤五;
[0012]步骤五,不限定擦写时间;
[0013]步骤六,配置擦写flash命令;
[0014]步骤七,进行flash擦写;当不限定擦写时间时,则在flash擦写过程中不限制其操作时间;当每1ms周期内限定可擦写时间时,每1ms周期内利用当前可以擦写的时间进行其中一段擦写,当该段时间结束时flash状态若还没有擦写完,则采用suspend机制,将flash擦写动作挂起;当下一个1ms的时间片段内检测到当前flash擦写处于suspend状态,则继续获取可以擦写的时间,再采用resume机制,将从之前flash挂起的地方继续擦写操作并设置操作状态为resume状态,当可擦写的时间到期,通过命令查询flash状态若还没有擦写完,则suspend挂起,等待下一次的擦写;重复步骤七;如果擦写完则进入步骤八;
[0015]步骤八,比较已经完成擦写长度与要擦写的长度,当相等时表示擦写完成,执行步骤九;当未结束时反复执行步骤七;
[0016]步骤九,通知其他等待的处理器已完成擦写,恢复其状态,令其不再等待。
[0017]进一步的,所述步骤二中,当ARM核需要操作flash时,由DSP核检测共享内存有配置并开始flash的操作。
[0018]进一步的,获取的flash擦写时间尽量长。
[0019]进一步的,当每1ms周期内限定可擦写时间时,flash擦工作切分成多个扇区,写切分成多个页,每个扇区的擦和每个页的写分时间片段操作。
[0020]进一步的,通过以下方式计算flash可以擦写的时间:首先获取当前时间,再获取下一次滴答中断到来的时间,计算两者时间差。
[0021]进一步的,擦写放进系统空闲任务中执行。
[0022]进一步的,擦写放进1ms的滴答中断服务程序里面执行,每次固定执行定量时间。
[0023]进一步的,所述步骤七中限定可擦写时间时flash擦写过程具体包括如下步骤:
[0024]步骤1,判断flash操作是否处于执行阶段,如否则进入步骤10,如是则进入步骤2;
[0025]步骤2,关闭中断,获取当前时间以及下一次滴答中断到来时间,计算时间差;
[0026]步骤3,判断当前状态是否是flash初始状态,如是则设置擦写flash的类型,起始地址,长度,数据地址,判断是否需要擦除,如需要擦除则设置状态为flash擦开始状态,进入步骤4,否则设置状态为flash写开始状态,进入步骤7;
[0027]步骤4,判断当前状态是否为flash擦开始状态,如是则开始使用擦除命令进行擦除并等待可以擦除的时间到,如果时间到,flash没有擦完,则发送命令挂起当前擦除,设置状态为flash继续擦状态,进入步骤5,否则设置成擦完成状态进入步骤6;
[0028]步骤5,判断当前状态是否为flash继续擦状态,如是则发送恢复擦命令继续擦除,并等待可以擦除的时间,检查是否擦完,如果没有擦完,则发送挂起命令,将擦挂起,重复步骤5,否则设置擦完成状态进入步骤6;
[0029]步骤6,判断当前状态是否为flash擦完成状态,如是则检查擦是否成功,判断操作是否为仅仅擦,如是则设置状态为写完成状态,进入步骤8,否则进入步骤7;
[0030]步骤7,判断当前状态是否为flash写开始状态,如是则开始使用写命令进行写flash操作,并等待可写时间,等待时间到查询是否写结束,如没有结束则挂起写操作,设置flash写继续状态,进入步骤8;否则设置flash写完成进入步骤9;
[0031]步骤8,判断当前状态是否是flash写继续状态,如是则发送恢复写命令继续写,并等待可以写的时间,检查是否写完,如没有写完则发送挂起命令,将擦挂起,重复步骤8,否则设置擦完成状态进入步骤本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于物联网的实时擦写FLASH方法,其特征在于,包括如下步骤:步骤一,判断系统芯片是否为单核启动模式,如为单核启动模式,则直接转至步骤五,如非单核启动模式则执行步骤二;步骤二,配置共享内存数据;步骤三,正要进行flash擦写的处理器通知其他需要可能会进行flash操作的处理器进入等待状态,不对flash进行操作;步骤四,判断此时网络是否处于连接状态,如处于连接状态,则需要每1ms周期内限定擦写的时间,即每1ms周期内首先满足物理层任务运行时间需要,剩余时间根据系统的繁忙程度获取flash擦写时间;如网络处于非连接状态,则执行步骤五;步骤五,不限定擦写时间;步骤六,配置擦写flash命令;步骤七,进行flash擦写;当不限定擦写时间时,则在flash擦写过程中不限制其操作时间;当每1ms周期内限定可擦写时间时,每1ms周期内利用当前可以擦写的时间进行其中一段擦写,当该段时间结束时flash状态若还没有擦写完,则采用suspend机制,将flash擦写动作挂起;当下一个1ms的时间片段内检测到当前flash擦写处于suspend状态,则继续获取可以擦写的时间,再采用resume机制,将从之前flash挂起的地方继续擦写操作并设置操作状态为resume状态,当可擦写的时间到期,通过命令查询flash状态若还没有擦写完,则suspend挂起,等待下一次的擦写;重复步骤七;如果擦写完则进入步骤八;步骤八,比较已经完成擦写长度与要擦写的长度,当相等时表示擦写完成,执行步骤九;当未结束时反复执行步骤七;步骤九,通知其他等待的处理器已完成擦写,恢复其状态,令其不再等待。2.根据权利要求1所述的用于物联网的实时擦写FLASH方法,其特征在于,所述步骤二中,当ARM核需要操作flash时,由DSP核检测共享内存有配置并开始flash的操作。3.根据权利要求1所述的用于物联网的实时擦写FLASH方法,其特征在于,获取的flash擦写时间尽量长。4.根据权利要求1所述的用于物联网的实时擦写FLASH方法,其特征在于,当每1ms周期内限定可擦写时间时,flash擦工作切分成多个扇区,写切分成多个页,每个扇区的擦和每个页的写分时间片段操作。5.根据权利要求1所述的用于物联网的实时擦写FLASH方法,其特征在于,通过以下方式计算flash可以擦写的时间:首先获取当前时间,...

【专利技术属性】
技术研发人员:周玉超
申请(专利权)人:诺领科技南京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1