一次性可编程芯片otp的升级方法

文档序号:6524194阅读:375来源:国知局
一次性可编程芯片otp的升级方法
【专利摘要】本发明适用于电子【技术领域】,提供了一种一次性可编程芯片OTP的升级方法,所述方法包括:预设一非易失性存储空间;所述一次性可编程芯片OTP的外设发生变化时,在所述非易失性存储装置中烧录入对应的库函数;所述一次性可编程芯片OTP启动时调用所述库函数。借此,本发明可以有效解决OTP对外设的兼容性问题。
【专利说明】一次性可编程芯片OTP的升级方法
【技术领域】
[0001]本发明涉及电子【技术领域】,尤其涉及一种一次性可编程芯片OTP的升级方法。
【背景技术】
[0002]目前很多嵌入式控制器芯片出于成本考虑,均会考虑在芯片出厂时烧写一块OTPROM用于存放芯片上电后开始阶段的启动代码,由于是一次性烧录在芯片的,所以对于稳定性和兼容性要求很高,CODE Size也会尽量短小精悍。通常情况下,OTP是不会考虑外设兼容性的,而只需要能保证正常启动Bootloader或Firmware就可以了。
[0003]当OTP ROM运行依赖的外设发生了改变,考虑到OTP是一次性烧录不能改变的,传统的做法往往不得不在新批次生产芯片时更新OTP R0M,从而加大了成本的支出和维护的难度。
[0004]综上可知,现有的一次性可编程芯片0ΤΡ,在实际使用上显然存在不便与缺陷,所以有必要加以改进。

【发明内容】

[0005]针对上述的缺陷,本发明的目的在于提供一种一次性可编程芯片OTP的升级方法,可以有效解决OTP对外设的兼容性问题。
[0006]为了实现上述目的,本发明提供一种一次性可编程芯片OTP的升级方法,所述方法包括:
[0007]预设一非易失性存储空间;
[0008]所述一次性可编程芯片OTP的外设发生变化时,在所述非易失性存储装置中烧录入对应的库函数;
[0009]所述一次性可编程芯片OTP启动时调用所述库函数。
[0010]根据本发明的一次性可编程芯片OTP的升级方法,所述一次性可编程芯片OTP启动时调用所述库函数的步骤包括:
[0011]读取并拷贝所述库函数到指定的随机存储器;
[0012]从所述随机存储器中调用并执行所述库函数。
[0013]根据本发明的一次性可编程芯片OTP的升级方法,所述一次性可编程芯片OTP与库函数的交互窗口只有一个。
[0014]根据本发明的一次性可编程芯片OTP的升级方法,所述库函数的执行指令为单独生成。
[0015]根据本发明的一次性可编程芯片OTP的升级方法,所述非易失性存储空间通过在所述一次性可编程芯片OTP的外部设置一非易失性存储空间实现。
[0016]根据本发明的一次性可编程芯片OTP的升级方法,所述一次性可编程芯片OTP具有一默认的子函数库。
[0017]本发明通过预设一非易失性的存储空间,当一次性可编程芯片OTP的外设发生改变时,用户可以将需要的库函数烧录入所述非易失性存储空间。且当一次性可编程芯片OTP启动时可以从所述非易失性存储空间调用并执行对应的库函数,以实现相应的功能,借此有效解决OTP对外设的兼容性问题。
【专利附图】

【附图说明】
[0018]图1是本发明一实施例的OTP资源分布示意图;
[0019]图2是本发明一实施例的OTP的升级方法流程图;
[0020]图3是本发明一实施例的OTP应用方法流程图;
[0021 ] 图4是本发明另一实施例的OTP应用方法流程图。
【具体实施方式】
[0022]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]参见图1,本发明提供了一种一次性可编程芯片OTP的资源分布图,所述一次性可编程芯片OTP应用于嵌入式控制器芯片。图中的OTP R0M10即对应本发明中的一次性可编程芯片0ΤΡ,是一次性烧录器件。非易失性存储装置20为独立于一次性可编程芯片OTP之外的器件,其提供本发明所述的非易失性存储空间,RAM30为本发明预设的随机存储器。
[0024]再参见图2,本发明提供了一种一次性可编程芯片OTP的升级方法,其可以通过如图1所示的资源实现,该方法包括:
[0025]步骤S201,预设一非易失性存储空间。该非易失性存储空间可以进行多次擦写处理,根据不同需求烧录不同的程序。如前所述,该非易失性存储空间可以通过在OTP外部设置一非易失性存储装置实现。
[0026]步骤S202,所述一次性可编程芯片OTP的外设发生变化时,在所述非易失性存储装置中烧录入对应的库函数。一次性可编程芯片OTP内部存储有芯片启动开始阶段的启动代码,且启动代码与芯片的外设具有很大关联,当OTP的外设发生变化时,OTP本身的启动代码不能被改写,本发明通过在非易失性存储空间烧录对应外设的函数库,借此实现OTP的升级,以更好的兼容新的外设。
[0027]步骤S203,所述一次性可编程芯片OTP启动时调用所述库函数。具体的,当芯片启动,OTP运行时,其先读取并拷贝对应的库函数到指定的随机存储器(RAM),然后从RAM调用执行这些库函数以实现对应的功能。
[0028]需要说明的是,本发明中库函数的执行指令是单独生成的,OTP Code在编译链接时,相对于库函数是独立的,也不会对库函数进行符号解析等链接行为,两者间不存在调用及链接的关系,为此,本发明提前建立如下约定,确保不发生冲突和异常:
[0029]I)对于库函数代码编译,库函数代码尽可能的简单,编译不做过多优化,并且少用或不使用函数参数及全局变量,并保持让一次性可编程芯片OTP与库函数的交互窗口有且只有一个,即:库函数入口。
[0030]进一步的,在编译库函数时,其代码段以及RAM的资源分配符合OTP的要求,每个库函数入口地址定位在OTP指定的位置,所有RAM资源限定在OTP指定的区域,如果要使用全局变量与OTP通信,则这些变量必须通过约定定位在OTP指定的位置。
[0031]2)本发明在编译OTP时,保证预留且不占用库函数资源。结合图1,所述的库函数资源包括:R0指令段,RW/ZI/STACK段,全局变量区域。
[0032]本发明的一实施例中,假定OTP运行时按序调用func_l、func_2、…func_n,然后跳转进入Bootloader或Firmware,当需要调用库函数时,首先要保证库函数代码已经读取并拷贝到预留好的指定RAM中,此时,OTP对应的PC直接跳转到RAM中对应的函数入口调用即可,子函数负责调用返回。
[0033]图3是本发明一实施例的OTP升级后的应用流程图,该实施例中,func_l、func_2、…血11(3_11在0^ R0M10里具有一组默认的实现(子函数库),具体应用时,首先检测默认的子函数库里是否具有需要调用的函数,若有则直接即行调用,否则转到外部的非易失性存储空间进行调用。该方法主要应用于OTP R0M10资源充分且兼容性比较高的情况,若OTP R0M10的资源不够丰富,则采用如图4所示的应用流程。
[0034]参见图4,该实施例中的func_l、func_2、…func_n完全会依赖外部的非易失性存储器20中的库函数,OTP只是预留好程序跳转的位置,起调度作用,即需要什么样的库函数,直接从非易失性存储空间的库函数中调取。需要说明的是,在调用库函数前,须保证库函数已从非易失性存储装置20读取到指定的RAM30中,OTP除了读取外设功能外,其他功能均可以通过库函数实现。本实施例中,OTP只需占用很小的资源,即可实现最大程度的灵活性。[0035]综上所述,本发明通过预设一非易失性的存储空间,当一次性可编程芯片OTP的外设发生改变时,用户可以将需要的库函数烧录入所述非易失性存储空间。且当一次性可编程芯片OTP启动时可以从所述非易失性存储空间调用并执行对应的库函数,以实现相应的功能,借此有效解决OTP对外设的兼容性问题。
[0036]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种一次性可编程芯片OTP的升级方法,其特征在于,所述方法包括: 预设一非易失性存储空间; 所述一次性可编程芯片OTP的外设发生变化时,在所述非易失性存储装置中烧录入对应的库函数; 所述一次性可编程芯片OTP启动时调用所述库函数。
2.根据权利要求1所述的一次性可编程芯片OTP的升级方法,其特征在于,所述一次性可编程芯片OTP启动时调用所述库函数的步骤包括: 读取并拷贝所述库函数到指定的随机存储器; 从所述随机存储器中调用并执行所述库函数。
3.根据权利要求1或2所述的一次性可编程芯片OTP的升级方法,其特征在于,所述一次性可编程芯片OTP与库函数的交互窗口只有一个。
4.根据权利要求3所述的一次性可编程芯片OTP的升级方法,其特征在于,所述库函数的执行指令为单独生成。
5.根据权利要求1所述的一次性可编程芯片OTP的升级方法,其特征在于,所述非易失性存储空间通过在所述一次性可编程芯片OTP的外部设置一非易失性存储空间实现。
6.根据权利要求5所述的一次性可编程芯片OTP的升级方法,其特征在于,所述一次性可编程芯片OTP具有一默认的子函数库。
【文档编号】G06F9/445GK103927195SQ201310694569
【公开日】2014年7月16日 申请日期:2013年12月17日 优先权日:2013年12月17日
【发明者】姚鸣强 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1