CN115712414A - 一种实现otp多次编程的方法、系统、介质及电子设备 - Google Patents

一种实现otp多次编程的方法、系统、介质及电子设备 Download PDF

Info

Publication number
CN115712414A
CN115712414A CN202211481430.0A CN202211481430A CN115712414A CN 115712414 A CN115712414 A CN 115712414A CN 202211481430 A CN202211481430 A CN 202211481430A CN 115712414 A CN115712414 A CN 115712414A
Authority
CN
China
Prior art keywords
program
pointer
mode
module
otp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211481430.0A
Other languages
English (en)
Inventor
刘泽义
高鹰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Geruitong Intelligent Technology Shenzhen Co ltd
Jade Bird Fire Co Ltd
Original Assignee
Geruitong Intelligent Technology Shenzhen Co ltd
Jade Bird Fire Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Geruitong Intelligent Technology Shenzhen Co ltd, Jade Bird Fire Co Ltd filed Critical Geruitong Intelligent Technology Shenzhen Co ltd
Priority to CN202211481430.0A priority Critical patent/CN115712414A/zh
Publication of CN115712414A publication Critical patent/CN115712414A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明涉及芯片编程技术领域,更具体地,涉及一种实现OTP多次编程的方法、系统、介质及电子设备。该方案包括在单片机内的指令译码模块增加非法指令检测模块;在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;选择第一或第二方式,启动单片机编程;当判断为第一方式时,启动非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;当判断为第二方式时,读取程序指令区中的指针内容,根据指针内容为1的数目多去对应程序指针的内容;将程序指针内容写入OTP控制器内部寄存器引导地址。该方案通过仅增加一个或门,把非法指令的条件加到产生单片机自动累积的条件中,从而实现结构简单和高效的OTP多次编程。

Description

一种实现OTP多次编程的方法、系统、介质及电子设备
技术领域
本发明涉及芯片编程技术领域,更具体地,涉及一种实现OTP多次编程的方法、系统、介质及电子设备。
背景技术
OTP(One T ime Programmab l e)是单片机的一种存储器类型,意思是一次性可编程:程序烧入单片机后,将不可再次更改和清除。OTP作为单片机代码区,由于其可靠性高,成本低,广泛用于各种电子产品中。在大部分应用场景中,用户代码使用了OTP代码区的一小部分。因OTP只能支持一次编程,二次编程需要紫外线照射后才能使用。这导致编程过的OTP芯片只能废弃,造成较大浪费。
在本发明技术之前,现有技术通过在MCU外部的地址线上增加一个至少16位的加法器,大大增加了面积,同时因增加这个加法器的加法计算物理延迟的原因,极大的影响单片器实现的工作频率,从而影响整个SoC性能,通过空间和面积换区编程次数,在之前编程过的区域无法再次编程,只能重复利用曾经没有编程过的区域,从而达到多次编程的目的。
发明内容
鉴于上述问题,本发明提出了一种实现OTP多次编程的方法、系统、介质及电子设备,通过仅增加一个或门,把非法指令的条件加到产生单片机自动累积的条件中,从而实现结构简单和高效的OTP多次编程。
根据本发明实施例第一方面,提供一种实现OTP多次编程的方法。
在一个或多个实施例中,优选地,所述一种实现OTP多次编程的方法包括:
在单片机内的指令译码模块增加非法指令检测模块;
在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;
选择第一方式和第二方式中的一种,启动单片机编程;
当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;
当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容;
将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程。
在一个或多个实施例中,优选地,所述在单片机内的指令译码模块增加非法指令检测模块,具体包括:
在单片机的指令译码模块设置一个能够依次判断是否为非法指令的所述非法指令检测模块;
当监测到合法指令后,使得指令译码模块启动程序。
在一个或多个实施例中,优选地,所述在单片机内的指针计算模块中增加可编程启动地址模块和地址输入,具体包括:
在单片机的内增加用于获得程序启动地址的所述可编程启动地址模块;
将所述可编程启动地址模块的启动地址连接OTP的控制器。
在一个或多个实施例中,优选地,所述选择第一方式和第二方式中的一种,启动单片机编程,具体包括:
在单片机内根据经验设置启动模式;
将所述启动模式设置为所述第一方式和所述第二方式中的一种;
在所述第一方式下,自动进行编程,在所述第二方式下,根据地址选择进行编程。
在一个或多个实施例中,优选地,所述当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程,具体包括:
在启所述第一方式后,在单片机内利用所述非法指令检测模块判断为编程代码区;
将即将编程的程序按照程序预设的顺序,依次放在OTP的位置上;
在读取到未编程代码区时,自动控制取指地址自动累加;
当读取到合法有效指令时,开始依次进行多次编程。
在一个或多个实施例中,优选地,所述当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容,具体包括:
在启动所述第二方式后,在OTP中存入每个程序的起始地址,作为每个程序的程序指针;
程序地址选择指针用于直接读取每个程序的程序指针,作为所述指针内容;
在OTP初始化完毕后,自动读取所述指针内容中1的数量,进行选择所述程序指针的内容。
在一个或多个实施例中,优选地,所述将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程,具体包括:
把所述程序指针的内容写入到所述OTP控制器中的所述寄存器BOOT_ADDR;
所述寄存器BOOT_ADDR连接到单片机内核的所述可编程启动地址模块;
在单片机内核复位释放的上升沿,增加所述指针内容中的1的数量1个,自动更新所述指针内容到所述寄存器BOOT_ADDR。
根据本发明实施例第二方面,提供一种实现OTP多次编程的系统。
在一个或多个实施例中,优选地,所述一种实现OTP多次编程的系统包括:
第一方式布置模块,用于在单片机内的指令译码模块增加非法指令检测模块;
第二方式布置模块,用于在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;
方式判断模块,用于选择第一方式和第二方式中的一种,启动单片机编程;
第一方式执行模块,用于当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;
第二方式指针模块,用于当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容;
第二方式执行模块,用于将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程。
根据本发明实施例第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第一方面中任一项所述的方法。
根据本发明实施例第四方面,提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现本发明实施例第一方面中任一项所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明方案中设计一种OTP多次编程的架构与方法,使得空余的OTP存储空间可再次利用,从而实现多次编程,可将编程过的芯片利用起来,从而节省成本。
本发明方案中,通过2种方式实现OTP的多次编程,第一方式由通过非法指令检测实现自动启动,第二方式通过指针计算模块实现快速的启动和多次的编程。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的一种实现OTP多次编程的方法的流程图。
图2是本发明一个实施例的一种实现OTP多次编程的方法中的在单片机内的指令译码模块增加非法指令检测模块的流程图。
图3是本发明一个实施例的一种实现OTP多次编程的方法中的在单片机内的指针计算模块中增加可编程启动地址模块和地址输入的流程图。
图4是本发明一个实施例的一种实现OTP多次编程的方法中的选择第一方式和第二方式中的一种,启动单片机编程的流程图。
图5是本发明一个实施例的一种实现OTP多次编程的方法中的当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程的流程图。
图6是本发明一个实施例的一种实现OTP多次编程的方法中的当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容的流程图。
图7是本发明一个实施例的一种实现OTP多次编程的方法中的将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程的流程图。
图8是本发明一个实施例的一种实现OTP多次编程的系统的结构图。
图9是本发明一个实施例中一种电子设备的结构图。
图10是本发明一个实施例中第一方式的OTP程序分区图。
图11是本发明一个实施例中的工作时序。
具体实施方式
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
OTP(One T ime Programmab l e)是单片机的一种存储器类型,意思是一次性可编程:程序烧入单片机后,将不可再次更改和清除。OTP作为单片机代码区,由于其可靠性高,成本低,广泛用于各种电子产品中。在大部分应用场景中,用户代码使用了OTP代码区的一小部分。因OTP只能支持一次编程,二次编程需要紫外线照射后才能使用。这导致编程过的OTP芯片只能废弃,造成较大浪费。
在本发明技术之前,现有技术通过在MCU外部的地址线上增加一个至少16位的加法器,大大增加了面积,同时因增加这个加法器的加法计算物理延迟的原因,极大的影响单片器实现的工作频率,从而影响整个SoC性能,通过空间和面积换区编程次数,在之前编程过的区域无法再次编程,只能重复利用曾经没有编程过的区域,从而达到多次编程的目的。
本发明实施例中,提供了一种实现OTP多次编程的方法、系统、介质及电子设备。该方案通过仅增加一个或门,把非法指令的条件加到产生单片机自动累积的条件中,从而实现结构简单和高效的OTP多次编程。
根据本发明实施例第一方面,提供一种实现OTP多次编程的方法。
图1是本发明一个实施例的一种实现OTP多次编程的方法的流程图。
在一个或多个实施例中,优选地,所述一种实现OTP多次编程的方法包括:
S101、在单片机内的指令译码模块增加非法指令检测模块;
S102、在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;
S103、选择第一方式和第二方式中的一种,启动单片机编程;
S104、当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;
S105、当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容;
S106、将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程。
在本发明实施例中,为解决上述问题,本发明设计一种OTP多次编程的架构与方法,使得空余的OTP存储空间可再次利用,从而实现多次编程,可将编程过的芯片利用起来,从而节省成本。对MCU内核的架构做两点发明:第一点,对指令译码模块增加非法指令检测模块,当发现非法指令时,PC指令自动累积。第二点,对PC指针计算模块增加一个可编程启动地址模块和一个BOOT_ADDR输入,BOOT_ADDR为引导地址,在MCU内核复位释放的上升沿,把BOOT_ADDR的值采样到PC指针寄存器中,随后PC指针自动会以此BOOT_ADDR的值为基础进行改。
图2是本发明一个实施例的一种实现OTP多次编程的方法中的在单片机内的指令译码模块增加非法指令检测模块的流程图。
如图2所示,在一个或多个实施例中,优选地,所述在单片机内的指令译码模块增加非法指令检测模块,具体包括:
S201、在单片机的指令译码模块设置一个能够依次判断是否为非法指令的所述非法指令检测模块;
S202、当监测到合法指令后,使得指令译码模块启动程序。
在本发明实施例中,为了实现多次编程,非法指令检测模块在读取到未编程代码区时(通常是0xFF或0x00数值,为16进制数据)时,控制PC取指地址自动累加,只到读取到合法有效指令,才开始执行相应的程序。
图3是本发明一个实施例的一种实现OTP多次编程的方法中的在单片机内的指针计算模块中增加可编程启动地址模块和地址输入的流程图。
如图3所示,在一个或多个实施例中,优选地,所述在单片机内的指针计算模块中增加可编程启动地址模块和地址输入,具体包括:
S301、在单片机的内增加用于获得程序启动地址的所述可编程启动地址模块;
S302、将所述可编程启动地址模块的启动地址连接OTP的控制器。
在本发明实施例中,假设通过可编程启动地址模块进行多次编程,在OTP中存入程序x的起始地址(程序x指针)及程序x起始地址选择指针(程序指针区指针),OTP初始化完毕自动读取程序x起始地址选择指针,然后选择读取相应的程序x起始地址,并把此值写入到OTP控制器中的寄存器BOOT_ADDR。
图4是本发明一个实施例的一种实现OTP多次编程的方法中的选择第一方式和第二方式中的一种,启动单片机编程的流程图。
如图4所示,在一个或多个实施例中,优选地,所述选择第一方式和第二方式中的一种,启动单片机编程,具体包括:
S401、在单片机内根据经验设置启动模式;
S402、将所述启动模式设置为所述第一方式和所述第二方式中的一种;
S403、在所述第一方式下,自动进行编程,在所述第二方式下,根据地址选择进行编程。
在本发明实施例中,通过两种方式实现具体的OTP多次编程,两种方式的选择采用经验判断,使得空余的OTP存储空间可再次利用,从而实现多次编程,可将编程过的芯片利用起来,从而节省成本,具体的经验判断流程如下。
图5是本发明一个实施例的一种实现OTP多次编程的方法中的当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程的流程图。
如图5所示,在一个或多个实施例中,优选地,所述当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程,具体包括:
S501、在启所述第一方式后,在单片机内利用所述非法指令检测模块判断为编程代码区;
S502、将即将编程的程序按照程序预设的顺序,依次放在OTP的位置上;
S503、在读取到未编程代码区时,自动控制取指地址自动累加;
S504、当读取到合法有效指令时,开始依次进行多次编程。
在本发明实施例中,在读取到未编程代码区时(通常是0xFF或0x00数值)时,只需要把最先编程的程序放在OTP的最高位置,第二次编程的程序放在次高位置,以此类推,即可实现OTP的多次编程,此处累加的PC是指MCU的读取指令的地址,通过地址的累加,实现了MCU自动从非编程区域到编程区域的指令代码的自动搜索,只到找到第一条合法指令,即为搜索到所需执行目标区域代码,然后开始执行程序代码,而在本发明技术之前,都需要预设执行目标区域代码的位置或地址。
图6是本发明一个实施例的一种实现OTP多次编程的方法中的当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容的流程图。
如图6所示,在一个或多个实施例中,优选地,所述当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容,具体包括:
S601、在启动所述第二方式后,在OTP中存入每个程序的起始地址,作为每个程序的程序指针;
S602、程序地址选择指针用于直接读取每个程序的程序指针,作为所述指针内容;
S603、在OTP初始化完毕后,自动读取所述指针内容中1的数量,进行选择所述程序指针的内容。
在本发明实施例中,没有上述第一方式的限制,在OTP程序分区内程序0-n可以任意放到OTP对应的区域,没有任何限制,为节省OTP空间,建议从最低地址开始存放程序。OTP最高地址保留十几个字节保存程序指针区,程序指针区保存各程序0~n的起始地址及选择程序指针区指针(用来选择程序起始地址)。
图7是本发明一个实施例的一种实现OTP多次编程的方法中的将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程的流程图。
如图7所示,在一个或多个实施例中,优选地,所述将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程,具体包括:
S701、把所述程序指针的内容写入到所述OTP控制器中的所述寄存器BOOT_ADDR;
S702、所述寄存器BOOT_ADDR连接到单片机内核的所述可编程启动地址模块;
S703、在单片机内核复位释放的上升沿,增加所述指针内容中的1的数量1个,自动更新所述指针内容到所述寄存器BOOT_ADDR。
在本发明实施例中,通常紫外线擦除过或未编程的OTP的存储的每个bit一般是0,编程写对应的bit为1时,只能把对应的b it的0改成1,此方法的核心是每次编程依序增加或改变程序指针区指针(选择指针)中“1”的数目来选择需要使用的程序x的起始地址(如0x00,0x01,0x03,0x7)。第0次编程,编程程序0和程序0指针,然后再编程程序指针区指针为0x00;第1次编程,编程程序1和程序1指针,然后在编程程序指针区指针为0x01;第2次编程,编程程序2和程序2指针,然后在编程程序指针区指针为0x03。
根据本发明实施例第二方面,提供一种实现OTP多次编程的系统。
图8是本发明一个实施例的一种实现OTP多次编程的系统的结构图。
在一个或多个实施例中,优选地,所述一种实现OTP多次编程的系统包括:
第一方式布置模块801,用于在单片机内的指令译码模块增加非法指令检测模块;
第二方式布置模块802,用于在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;
方式判断模块803,用于选择第一方式和第二方式中的一种,启动单片机编程;
第一方式执行模块804,用于当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;
第二方式指针模块805,用于当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容;
第二方式执行模块806,用于将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程。
在本发明实施例中,通过一系列的模块化设计,实现一个适用于不同结构下的系统,该系统能够通过采集、分析和控制,实现闭环的、可靠的、高效的执行。
根据本发明实施例第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第一方面中任一项所述的方法。
根据本发明实施例第四方面,提供一种电子设备。图9是本发明一个实施例中一种电子设备的结构图。图9所示的电子设备为通用实现OTP多次编程装置,其包括通用的计算机硬件结构,其至少包括处理器901和存储器902。处理器901和存储器902通过总线903连接。存储器902适于存储处理器901可执行的指令或程序。处理器901可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器901通过执行存储器902所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线903将上述多个组件连接在一起,同时将上述组件连接到显示控制器904和显示装置以及输入/输出(I/O)装置905。输入/输出(I/O)装置905可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置905通过输入/输出(I/O)控制器906与系统相连。
图10为第一方式的OTP程序分区图,在MCU复位释放后,通常都是从0地址开始读取指令代码。未编程的OTP代码区默认值为0xFF或0x00,MCU获取到0x00或0xFF认为是非法指令或指令的一部分,指令译码模块或非法指令检测模块会控制PC自动累加,只到PC累加到合法有效指令的OTP代码区,即可开始启动程序。对OTP代码区做如下图排列,第一次编程的程序放到程序0区,第二次编程的程序放到程序1区,其他以此类推。第一次编程,程序编程到程序0区,比程序0区低的OTP区域都是未编程区,MCU复位释放后,PC自动从0地址累加到程序0区,开始执行程序0区的程序。第二次编程,程序编程到比程序0区低的程序1区,比程序1区低的OTP区域都是未编程区,MCU复位释放后,PC自动从0地址累加到程序1区,开始执行程序1区的程序。更多次数的编程,以此类推,从而实现多次编程,充分利用完整个OTP可编程区,节省成本。
具体工作时序如下图11,OTP复位并初始化后(MCU内核复位未释放),OTP控制器自动读取在OTP最高地址区域的程序指令区,首先读取程序指令区指针的内容,根据内容中“1”的数目,来决定读程序x指针(数值为0x00,读取程序0指针的内容;数值为0x01,读取程序1指针的内容;数值为0x03,读取程序2指针的内容,其他依此类推)的内容,并把此内容写入OTP控制器内部的寄存器BOOT_ADDR,然后释放MCU复位,MCU的可编程启动地址模块自动以BOOT_ADDR为PC指针起始地址自动读取相应的程序x。从而实现多次编程,充分利用完整个OTP可编程区,节省成本。此方法的优势是没有第一种方法的不支持中断的限制,其实现逻辑电路也比较简单,仅需要MCU内核复位上升沿检测及载入BOOT_ADDR到PC指针起始地址寄存器逻辑,附加的逻辑电路的延迟也很小,对MCU的IC后端物理实现的工作频率也影响很小。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明方案中设计一种OTP多次编程的架构与方法,使得空余的OTP存储空间可再次利用,从而实现多次编程,可将编程过的芯片利用起来,从而节省成本。
本发明方案中,通过2种方式实现OTP的多次编程,第一方式由通过非法指令检测实现自动启动,第二方式通过指针计算模块实现快速的启动和多次的编程。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种实现OTP多次编程的方法,其特征在于,该方法包括:
在单片机内的指令译码模块增加非法指令检测模块;
在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;
选择第一方式和第二方式中的一种,启动单片机编程;
当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;
当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容;
将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程。
2.如权利要求1所述的一种实现OTP多次编程的方法,其特征在于,所述在单片机内的指令译码模块增加非法指令检测模块,具体包括:
在单片机的指令译码模块设置一个能够依次判断是否为非法指令的所述非法指令检测模块;
当监测到合法指令后,使得指令译码模块启动程序。
3.如权利要求&所述的一种实现OTP多次编程的方法,其特征在于,所述在单片机内的指针计算模块中增加可编程启动地址模块和地址输入,具体包括:
在单片机的内增加用于获得程序启动地址的所述可编程启动地址模块;
将所述可编程启动地址模块的启动地址连接OTP的控制器。
4.如权利要求&所述的一种实现OTP多次编程的方法,其特征在于,所述选择第一方式和第二方式中的一种,启动单片机编程,具体包括:
在单片机内根据经验设置启动模式;
将所述启动模式设置为所述第一方式和所述第二方式中的一种;
在所述第一方式下,自动进行编程,在所述第二方式下,根据地址选择进行编程。
5.如权利要求&所述的一种实现OTP多次编程的方法,其特征在于,所述当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程,具体包括:
在启所述第一方式后,在单片机内利用所述非法指令检测模块判断为编程代码区;
将即将编程的程序按照程序预设的顺序,依次放在OTP的位置上;
在读取到未编程代码区时,自动控制取指地址自动累加;
当读取到合法有效指令时,开始依次进行多次编程。
6.如权利要求&所述的一种实现OTP多次编程的方法,其特征在于,所述当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容,具体包括:
在启动所述第二方式后,在OTP中存入每个程序的起始地址,作为每个程序的程序指针;
程序地址选择指针用于直接读取每个程序的程序指针,作为所述指针内容;
在OTP初始化完毕后,自动读取所述指针内容中1的数量,进行选择所述程序指针的内容。
7.如权利要求1所述的一种实现OTP多次编程的方法,其特征在于,所述将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程,具体包括:
把所述程序指针的内容写入到所述OTP控制器中的所述寄存器BOOT_ADDR;
所述寄存器BOOT_ADDR连接到单片机内核的所述可编程启动地址模块;
在单片机内核复位释放的上升沿,增加所述指针内容中的1的数量1个,自动更新所述指针内容到所述寄存器BOOT_ADDR。
8.一种实现OTP多次编程的系统,其特征在于,该系统用于实施如权利要求1-7中任一项所述的方法,该系统包括:
第一方式布置模块,用于在单片机内的指令译码模块增加非法指令检测模块;
第二方式布置模块,用于在单片机内的指针计算模块中增加可编程启动地址模块和地址输入;
方式判断模块,用于选择第一方式和第二方式中的一种,启动单片机编程;
第一方式执行模块,用于当判断为所述第一方式时,启动所述非法指令检测模块进行非法指令判断,并根据预设的程序分区进行多次编程;
第二方式指针模块,用于当判断为所述第二方式时,读取程序指令区中的指针内容,根据所述指针内容为1的数目多少去对应程序指针的内容;
第二方式执行模块,用于将所述程序指针的内容写入OTP控制器内部的寄存器BOOT_ADDR,释放单片机复位,进行自动的程序编程。
9.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-7中任一项所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-7任一项所述的方法。
CN202211481430.0A 2022-11-24 2022-11-24 一种实现otp多次编程的方法、系统、介质及电子设备 Pending CN115712414A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211481430.0A CN115712414A (zh) 2022-11-24 2022-11-24 一种实现otp多次编程的方法、系统、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211481430.0A CN115712414A (zh) 2022-11-24 2022-11-24 一种实现otp多次编程的方法、系统、介质及电子设备

Publications (1)

Publication Number Publication Date
CN115712414A true CN115712414A (zh) 2023-02-24

Family

ID=85234742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211481430.0A Pending CN115712414A (zh) 2022-11-24 2022-11-24 一种实现otp多次编程的方法、系统、介质及电子设备

Country Status (1)

Country Link
CN (1) CN115712414A (zh)

Similar Documents

Publication Publication Date Title
US9189248B2 (en) Specialized boot path for speeding up resume from sleep state
CN100456272C (zh) 利用快闪存储器引导的系统和方法
US7302518B2 (en) Method and system for managing a suspend request in a flash memory
EP2453352A1 (en) Software updating process for an embedded device
KR20120058555A (ko) 조건부 비-분기 명령들의 비-실행을 예측하기 위한 방법들 및 장치들
CN102236621A (zh) 计算机接口信息配置系统及方法
JP2011159069A (ja) 半導体記憶装置及びその制御方法
KR100777446B1 (ko) 전자장치 및 그 부팅방법
JP2011086298A (ja) プログラム・フロー制御
CN112612520B (zh) 一种基于pld对寄存器清零的方法、系统、设备及介质
CN105760191A (zh) 嵌入式系统设备程序烧写量产方法
CN104156234A (zh) 启动多核处理器、bootloader大小端模式自适应的方法及装置
KR970066888A (ko) 불 휘발성 메모리를 사용한 마이크로컴퓨터
US6543008B1 (en) Computer system and program rewriting method
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
KR101793282B1 (ko) 마이크로 컴퓨터
US9928079B2 (en) Conditional processor auto boot with no boot loader when coupled with a nonvolatile memory
CN103294578A (zh) 取得触发功能的指令的方法
CN115712414A (zh) 一种实现otp多次编程的方法、系统、介质及电子设备
US6981109B2 (en) Digital signal processor system having programmable random access memory that executes processing during downloading of a program
CN114327660B (zh) 基于fpga的外接内存的初始化方法
CN116185299A (zh) 闪存控制器及相关装置和方法
CN105204896A (zh) 一种数字存储示波器的BootLoader设计方法
KR19980054349A (ko) 옵션 자동 설정 회로
JP3197865B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: Room 1901, Building A, Financial Port Building, No. 1003 Xin'an 6th Road, Haiyu Community, Xin'an Street, Bao'an District, Shenzhen City, Guangdong Province, 518101

Applicant after: Jiaqi Semiconductor (Shenzhen) Co.,Ltd.

Applicant after: Bluebird fire Co.,Ltd.

Address before: 518100 19th Floor, Tower A, Financial Port, 1003 Xin'an 6th Road, Bao'an District, Shenzhen, Guangdong Province

Applicant before: GERUITONG INTELLIGENT TECHNOLOGY (SHENZHEN) CO.,LTD.

Country or region before: China

Applicant before: Bluebird fire Co.,Ltd.