一种芯片内部flash存储方法及装置制造方法及图纸

技术编号:20763361 阅读:57 留言:0更新日期:2019-04-03 14:09
本发明专利技术公开了一种芯片内部flash存储方法,包括分别为flash内的各个程序函数添加对应的序列号并保存;接收flash操作指令后,确定flash操作指令对应的各个程序函数的序列号及执行顺序;flash操作指令开始执行后,检测当前待执行的程序函数的序列号是否符合前述确定的执行顺序,若不符合,停止执行flash操作指令;若符合,执行待执行的程序函数;判断当前是否存在待执行的程序函数,若存在,重复上述检测操作,若不存在,flash操作指令执行完毕。本发明专利技术为程序函数标号来保证每步执行的程序函数均正确执行,尽可能避免了flash受到干扰时的执行错误,提高芯片内部flash的抗干扰能力及可靠性。本发明专利技术还公开了一种基于上述方法的装置、包含内部flash存储器的芯片及计算机可读存储介质。

【技术实现步骤摘要】
一种芯片内部flash存储方法及装置
本专利技术涉及flash存储器
,特别是涉及一种芯片内部flash存储方法、装置、包含内部flash存储器的芯片及计算机可读存储介质。
技术介绍
Flash存储器存储区别于外部存储器,成本较低。目前很多MCU开放了内部FLASH操作,针对不需要大量存储数据的方案,选择内部FLASH存储来减少产品成本。但是由于同时flash内部数据存储的抗干扰性能不及外部存储器,特别是当外部环境比较恶劣时,MCU会复位和飞走。其中,程序飞走指的是程序的PC指针会指向代码区的任何地方,包括无效地址,使得发生错误的执行流程;程序复位也是同理,程序的PC指针会指向最初程序执行的地址,也会导致发生错误的执行流程。而当发生错误的执行流程时,flash程序执行会出现错误,使得出现数据存储错误或者擦写错误等情况,影响后续flash的正常使用;flash的抗干扰性差,使用的可靠性低。因此,如何提供一种可靠性高的芯片内部flash存储方法、装置、设备及计算机可读存储介质是本领域技术人员目前需要解决的问题。
技术实现思路
本专利技术的目的是提供一种芯片内部flash存储方法,为程序函数标号来保证每步执行的程序函数均正确执行,从而尽可能避免了flash受到干扰时的执行错误,提高芯片内部flash存储器的抗干扰能力以及可靠性;本专利技术的另一目的是提供一种基于上述方法的装置、包含内部flash存储器的芯片及计算机可读存储介质。为解决上述技术问题,本专利技术提供了一种芯片内部flash存储方法,包括:分别为flash内的各个程序函数添加对应的序列号并进行保存;接收flash操作指令后,确定所述flash操作指令对应的各个程序函数的序列号及执行顺序;在所述flash操作指令开始执行后,检测当前待执行的程序函数的序列号是否符合前述确定的执行顺序,若不符合,则停止执行所述flash操作指令;若符合,则执行所述待执行的程序函数;判断当前是否存在待执行的程序函数,若存在,重复上述检测操作,若不存在,所述flash操作指令执行完毕。优选地,所述程序函数包括写入函数、擦除函数和读取函数中的任一种或几种的组合。优选地,执行相应的程序函数对所述flash进行数据写入时的过程具体为:查询当前待写入数据的一组扇区中的最近一个空白区域地址;将所述待写入数据写入所述最近一个空白区域地址;读取写入的数据,将所述写入的数据与所述待写入数据进行比对,若相同,则完成所述待写入数据的写入;若不同,判断当前所述待写入数据的写入次数是否超出预设次数阈值,若超出,则终止当前程序函数;若未超出,则继续将所述待写入数据写入下一个空白区域地址,并重复上述比对操作。优选地,所述确定所述flash操作指令对应的各个程序函数的序列号及执行顺序之后,还包括:依据各个所述程序函数的序列号及执行顺序得到待执行序列号数组;所述执行所述待执行的程序函数之后,还包括:记录当前执行的程序函数的序列号;判断当前不存在待执行的程序函数之后,还包括:将记录的所执行的各个程序函数的序列号依次进行组合,得到执行序列号数组;将所述执行序列号数组与所述待执行序列号数组进行比对,若相同,则所述flash操作指令执行成功,若不同,则所述flash操作指令执行失败。为解决上述技术问题,本专利技术还提供了一种芯片内部flash存储装置,包括:序列号设置模块,用于分别为flash内的各个程序函数添加对应的序列号并进行保存;函数执行模块,用于接收flash操作指令后,确定所述flash操作指令对应的各个程序函数的序列号及执行顺序;序列号检测模块,用于在所述flash操作指令开始执行后,检测当前待执行的程序函数的序列号是否符合前述确定的执行顺序,若不符合,则停止执行所述flash操作指令;若符合,触发函数执行模块;所述函数执行模块,用于执行所述待执行的程序函数;执行判断模块,用于判断当前是否存在待执行的程序函数,若存在,重复触发所述序列号检测模块,若不存在,所述flash操作指令执行完毕。优选地,所述函数执行模块包括写入单元、擦除单元和读取单元中的任一种或几种的组合。优选地,所述写入单元具体用于:查询当前待写入数据的一组扇区中的最近一个空白区域地址;将所述待写入数据写入所述最近一个空白区域地址;读取写入的数据,将所述写入的数据与所述待写入数据进行比对,若相同,则完成所述待写入数据的写入;若不同,判断当前所述待写入数据的写入次数是否超出预设次数阈值,若超出,则终止当前程序函数;若未超出,则继续将所述待写入数据写入下一个空白区域地址,并重复上述比对操作。优选地,所述函数执行模块还用于依据各个所述程序函数的序列号及执行顺序得到待执行序列号数组;所述函数执行模块还用于:在执行所述待执行的程序函数之后,记录当前执行的程序函数的序列号;所述执行判断模块还用于:在判断当前不存在待执行的程序函数之后,将记录的所执行的各个程序函数的序列号依次进行组合,得到执行序列号数组;将所述执行序列号数组与所述待执行序列号数组进行比对,若相同,则所述flash操作指令执行成功,若不同,则所述flash操作指令执行失败。为解决上述技术问题,本专利技术还提供了一种包含内部flash存储器的芯片,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如以上任一项所述的芯片内部flash存储装置方法的步骤。为解决上述技术问题,本专利技术还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一项所述的芯片内部flash存储装置方法的步骤。本专利技术提供了一种芯片内部flash存储方法,预先对flash内的程序函数均进行了标号并进行了序列号保存,当接收flash操作指令后,确定该操作指令对应的一系列程序函数的序列号及其执行顺序后,依次执行这些程序函数,并且每执行一个程序函数之前,均判断当前执行的程序函数的序列号与之前确定的执行顺序是否相符,若相符,表明当前并未受到干扰,程序函数未发生飞走或者复位,程序函数的PC指针指向正确的地址,故可以正常进行处理;若不相符,表明当前受到干扰,程序函数发生了飞走或者复位,程序函数的PC指针未指向正确的地址,因此,停止执行flash操作指令,避免出现操作错误的情况。可见,本专利技术通过为程序函数标号来保证每步执行的程序函数均正确执行,从而尽可能避免了flash受到干扰时的执行错误,提高了芯片内部flash存储器的抗干扰能力以及可靠性。本专利技术还提供了一种基于上述方法的装置、包含内部flash存储器的芯片及计算机可读存储介质。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种芯片内部flash存储方法的过程的流程图;图2为本专利技术提供的另一种芯片内部flash写入方法的过程的流程图;图3为本专利技术提供的一种flash写入方法的示意图;图4为本专利技术提供的一种芯片内部flash存储装置的结构示意图。具体实施方式本专利技术的核心是提供一种芯片内部本文档来自技高网...

【技术保护点】
1.一种芯片内部flash存储方法,其特征在于,包括:分别为flash内的各个程序函数添加对应的序列号并进行保存;接收flash操作指令后,确定所述flash操作指令对应的各个程序函数的序列号及执行顺序;在所述flash操作指令开始执行后,检测当前待执行的程序函数的序列号是否符合前述确定的执行顺序,若不符合,则停止执行所述flash操作指令;若符合,则执行所述待执行的程序函数;判断当前是否存在待执行的程序函数,若存在,重复上述检测操作,若不存在,所述flash操作指令执行完毕。

【技术特征摘要】
1.一种芯片内部flash存储方法,其特征在于,包括:分别为flash内的各个程序函数添加对应的序列号并进行保存;接收flash操作指令后,确定所述flash操作指令对应的各个程序函数的序列号及执行顺序;在所述flash操作指令开始执行后,检测当前待执行的程序函数的序列号是否符合前述确定的执行顺序,若不符合,则停止执行所述flash操作指令;若符合,则执行所述待执行的程序函数;判断当前是否存在待执行的程序函数,若存在,重复上述检测操作,若不存在,所述flash操作指令执行完毕。2.根据权利要求1所述的方法,其特征在于,所述程序函数包括写入函数、擦除函数和读取函数中的任一种或几种的组合。3.根据权利要求2所述的方法,其特征在于,执行相应的程序函数对所述flash进行数据写入时的过程具体为:查询当前待写入数据的一组扇区中的最近一个空白区域地址;将所述待写入数据写入所述最近一个空白区域地址;读取写入的数据,将所述写入的数据与所述待写入数据进行比对,若相同,则完成所述待写入数据的写入;若不同,判断当前所述待写入数据的写入次数是否超出预设次数阈值,若超出,则终止当前程序函数;若未超出,则继续将所述待写入数据写入下一个空白区域地址,并重复上述比对操作。4.根据权利要求1-3任一项所述的方法,其特征在于,所述确定所述flash操作指令对应的各个程序函数的序列号及执行顺序之后,还包括:依据各个所述程序函数的序列号及执行顺序得到待执行序列号数组;所述执行所述待执行的程序函数之后,还包括:记录当前执行的程序函数的序列号;判断当前不存在待执行的程序函数之后,还包括:将记录的所执行的各个程序函数的序列号依次进行组合,得到执行序列号数组;将所述执行序列号数组与所述待执行序列号数组进行比对,若相同,则所述flash操作指令执行成功,若不同,则所述flash操作指令执行失败。5.一种芯片内部flash存储装置,其特征在于,包括:序列号设置模块,用于分别为flash内的各个程序函数添加对应的序列号并进行保存;函数执行模块,用于接收flash操作指令后,确定所述flash操作指令对应的各个程...

【专利技术属性】
技术研发人员:林新正
申请(专利权)人:杭州普创电子有限公司
类型:发明
国别省市:浙江,33

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

1