CN102360316B - 一次性可编程存储器中启动程序的运行方法及装置 - Google Patents
一次性可编程存储器中启动程序的运行方法及装置 Download PDFInfo
- Publication number
- CN102360316B CN102360316B CN 201110320901 CN201110320901A CN102360316B CN 102360316 B CN102360316 B CN 102360316B CN 201110320901 CN201110320901 CN 201110320901 CN 201110320901 A CN201110320901 A CN 201110320901A CN 102360316 B CN102360316 B CN 102360316B
- Authority
- CN
- China
- Prior art keywords
- configuration table
- main
- backup
- check
- crc
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 125000004122 cyclic group Chemical group 0.000 claims description 22
- 238000012795 verification Methods 0.000 claims description 18
- 230000002159 abnormal effect Effects 0.000 abstract description 7
- 238000006073 displacement reaction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开了一次性可编程存储器中启动程序的运行方法及装置,用于芯片运行OTP存储器中的启动程序。本发明实施例方法包括:获取校验正确的配置表后,根据配置表中保存的主启动程序所在的OTP区块的偏移地址,依次对OTP区块进行CRC校验及异或移位校验,若OTP区块通过校验,则保存该OTP区块的偏移地址,在主启动程序所在的OTP区块都校验完成之后,启动主启动程序。能够有效的提高启动程序的正确性,避免因运行错误的启动程序导致的芯片不正常或损坏的问题。
Description
技术领域
本发明涉及半导体技术,尤其涉及一次性可编程(OTP,One TimeProgrammable)存储器中启动程序的运行方法及装置。
背景技术
OTP存储器可以是用于在各种计算机相关应用中(例如在蜂窝式电话、个人数字助理等小型手持式数字装置中)提供非易失性存储器的有效且低成本机构。
在现有技术中,在嵌入式控制芯片中可使用OTP存储器作为启动程序的存储介质,芯片中的中央处理器(CPU,Center Processing Unit)可获取OTP存储器中的启动程序,并启动。
研究人员在研究中发现,现有技术中的OTP存储器中启动程序的运行方法存在以下缺陷:OTP存储器在生产,烧录,或者多次使用过程中可能出现坏块,使得OTP存储器中的启动程序出错,芯片若运行出错的启动程序,将导致芯片不正常甚至造成芯片损坏。
发明内容
本发明实施例提供了一种一次性可编程存储器中启动程序的运行方法及装置,通过对OTP存储器中已烧录启动程序的OTP区块中的数据进行循环冗余校验码(CRC,Cyclic Redundancy Check)校验及异或移位校验,能够有效的提高CPU加载启动程序的正确性,避免因运行错误的启动程序导致的芯片不正常或损坏的问题。
本发明实施例中的方法包括:获取OTP存储器中校验正确的配置表;根据配置表中保存的主启动程序所在的OTP区块的偏移地址,获取起始的保存主启动程序的OTP区块;对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值;当主启动程序的CRC校验值与配置表中保存的主启动程序的CRC校验值相同时,对主启动程序进行异或移位校验,获取主启动程序的异或移位校验值;当主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值相同时,则保存OTP区块的偏移地址,判断OTP区块是否是最后一个保存主启动程序的OTP区块,若是,则停止OTP区块的校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值的步骤;根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
本发明实施例中的装置包括:配置表获取单元,用于获取OTP存储器中校验正确的配置表;区块确定单元,用于根据配置表中保存的主启动程序所在的OTP区块的偏移地址,确定起始的保存主启动程序的OTP区块;CRC校验单元,用于对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值;异或移位校验单元,用于当主启动程序的CRC校验值与配置表中保存的主启动程序的CRC校验值相同时,对主启动程序进行异或移位校验,获取主启动程序的异或移位校验值;处理单元,用于当主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值相同时,则保存OTP区块的偏移地址,判断OTP区块是否是最后一个保存主启动程序的OTP区块,若是,则停止OTP区块的校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值的步骤;程序运行单元,用于根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
从以上技术方案可以看出,本发明实施例具有以下优点:
通过根据配置表中保存的启动程序所在的OTP区块的偏移地址,确定该保存启动程序的OTP区块,并对该OTP区块中的主启动程序进行CRC校验及异或移位校验,若该OTP区块通过校验,则确定该OTP区块中的启动程序正确,运行该启动程序,能够有效的提高CPU运行程序的正确性,避免因运行错误的启动程序导致的芯片不正常或损坏的问题。
附图说明
图1为本发明实施例中OTP存储器中启动程序的运行方法的一个示意图;
图2为本发明实施例中备份启动程序的校验方法的一个示意图;
图3为本发明实施例中OTP存储器中配置表的获取方法的一个示意图;
图4为发明实施例中OTP存储器数据结构图;
图5为本发明实施例中OTP存储器中启动程序的运行装置的一个示意图;
图6为本发明实施例中OTP存储器中启动程序的运行装置的一个示意图。
具体实施方式
本发明实施例提供了一种OTP存储器中启动程序的运行方法及装置,用于CPU对OTP存储器中的启动程序进行校验,使得CPU能够运行正确的启动程序,避免因运行错误的启动程序导致芯片不正常或损坏的问题。
请参阅图1,为本发明实施例中一种OTP存储器中启动程序的运行方法的实施例,包括:
101、获取OTP存储器中校验正确的配置表;
在本发明实施例中,OTP存储器划分为若干个存储空间相同的OTP区块,且在对OTP存储器进行数据烧录时,是按照OTP区块的大小将相应大小的数据烧录至OTP区块中,实现数据烧录,且OTP存储器的配置表也将烧录至OTP存储器中,其中,配置表中包含保存主启动程序和/或备份启动程序的的OTP区块的偏移地址、其数据校验值,及其有效标记位,此外,还包括配置表的标识位,坏块的偏移地址。
在本发明实施例中,芯片中的CPU可通过对查找到的配置表进行校验,获取OTP存储器中校验正确的配置表。
102、根据配置表中保存的主启动程序所在的OTP区块的偏移地址,获取起始的主启动程序的OTP区块;
在本发明实施例中,芯片中的CPU将根据配置表中保存的主启动程序所在的OTP区块的偏移地址,确定起始的主启动程序的OTP区块。
需要说明的是,在本发明实施例中,在将启动程序在烧录到OTP存储器中时,为了提高程序运行的可靠性,可将该启动程序中的每一个数据块进行两次烧录,进行数据备份,因此,在OTP存储器中,可能仅包含主启动程序,还可能同时包含主启动程序及其备份的备份启动程序。
103、对OTP区块中的主启动程序进行CRC校验,获取主启动程序的CRC校验值;
104、当主启动程序的CRC校验值与配置表中保存的主启动程序的CRC校验值相同时,对主启动程序进行异或移位校验,获取主启动程序的异或移位校验值;
在本发明实施例中,CPU将对OTP区块中的主启动程序进行CRC校验,获取主启动程序的CRC校验值,由于配置表中已包含了该主启动程序所在的OTP区块中的启动程序的CRC校验值,因此,CPU将比较当前的CRC校验值与配置表中保存的主启动程序的CRC校验值,当主启动程序CRC校验值与配置表中保存的主启动程序的CRC校验值相同时,则说明该主启动程序已通过CRC校验,CPU将对该主启动程序进行异或移位校验,获取主启动程序的异或移位校验值。
105、当主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值相同时,保存OTP区块的偏移地址;
在本发明实施例中,配置表中也保存了主启动程序所在的OTP区块的异或移位校验的校验值,且当主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值相同时,该OTP区块通过异或移位校验,OTP存储器所在的芯片的CPU将该OTP区块的偏移地址保存至CPU的寄存器中。
106、判断OTP区块是否为最后一个保存主启动程序的OTP区块,若是,则执行步骤108,若否,则执行步骤107;
107、获取下一个保存主启动程序的OTP区块,返回执行步骤103;
108、停止OTP区块的校验,根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
在本发明实施例中CPU在保存OTP区块的偏移地址之后,将判断该OTP区块是否为最后一个保存主启动程序的OTP区块,当该OTP区块为最后一个保存主启动程序的OTP区块时,说明保存主启动程序的OTP区块已完成校验,将根据保存的通过校验的OTP区块的偏移地址,运行启动程序。若该OTP区块并不是最后一个,则获取下一个保存主启动程序的OTP区块,并返回执行步骤103,即对OTP区块中的主启动程序进行CRC校验,获取主启动程序的CRC校验值。
在本发明实施例中,CPU将根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
在本发明实施例中,通过对主启动程序所在的OTP区块进行CRC校验及异或移位校验,若通过校验,则确定该主启动程序正确,使得CPU能够运行正确的启动程序,避免因运行错误的启动程序导致芯片不正常或损坏的问题,提高OTP存储器的利用率。
需要说明的是,在本发明实施例中,当OTP存储器中也保存了备份启动程序时,则当对主启动程序的校验不匹配时,可对该主启动程序的备份启动程序进行校验,请参阅图2,为本发明实施例中备份启动程序的校验方法,包括:
201、根据配置表中保存的备份启动程序所在的OTP区块的偏移地址,获取保存主启动程序的备份启动程序的OTP区块;
在本发明实施例中,当主启动程序的CRC校验值与配置表中保存的主启动程序的CRC校验值不同,或者主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值不同时,CPU将根据配置表中保存的备份启动程序所在的OTP区块的偏移地址,获取保存主启动程序的备份启动程序的OTP区块。例如:若数据块1保存在OTP区块2中,备份数据块1保存在OTP区块4中,则当OTP区块中的数据块1未通过CRC校验,或者未通过异或移位校验时,CPU获取保存备份数据块1的OTP区块4。请参阅表4,为本发明实施例中OTP存储器可能的数据结构图。
202、对OTP区块中的备份启动程序进行CRC校验,获取备份启动程序的CRC校验值;
203、当备份启动程序的CRC校验值与配置表中保存的备份启动程序的CRC校验值相同时,对备份启动程序进行异或移位校验,获取备份启动程序的异或移位校验值;
204、当备份启动程序的异或移位校验值与配置表中保存的备份启动程序的异或移位校验值相同时,则保存所述OTP区块的偏移地址;
205、判断OTP区块是否为最后一块保存备份启动程序的OTP区块,若是,则执行步骤206,若否,则执行步骤207;
206、停止对OTP区块校验;
207、获取下一个保存主启动程序的OTP区块,返回图1所示实施例中的步骤103。
在本发明实施例中,CPU将对备份启动程序进行CRC校验,当备份启动程序的CRC校验的校验值与与配置表中保存的备份启动程序的CRC校验值相同时,则继续对该备份启动程序进行异或移位校验,且当该备份启动程序的异或移位校验值与配置表中保存的该备份启动程序的异或移位校验值相同时,则保存该备份启动程序所在的OTP区块的偏移地址,且该偏移地址保存在CPU的寄存器中,并将判断该OTP区块是否为最后一块保持备份启动程序的OTP区块,若是,则停止校验,若否,则获取下一个保存主启动程序的OTP区块,并返回图1所示实施例中的步骤103,即返回执行对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值的步骤。
在本发明实施例中,在主启动程序校验失败的情况下,CPU可通过对备份启动程序进行校验,使用备份启动程序,能够有效的提高启动程序的正确概率,提高OTP存储器的利用率。
在本发明实施例中,CPU将获取通过校验的配置表,该配置表可以是主配置表或者备份配置表,请参阅图3,为本发明实施例中配置表的获取方法的实施例,包括:
301、根据预置的主配置表标记码在OTP存储器中查找所述主配置表,对主配置表中的数据进行CRC校验,获得主配置表的CRC校验值;
在本发明实施例中,在将配置表烧录至OTP存储器时,可将配置表进行两次有效的烧录,作为主配置表及备份配置表,且将在配置表中预先设置主配置表标记码及备份配置表标记码,例如,可将主配置表的表头设置为两个DW常量,作为主配置表标记码,需要说明的是,主配置表标记码与备份配置表标记码可以相同,也可以不同,例如,可将主配置表标记码设置为DW,将备份配置表标记码设置为DM,或者将主配置表标记码及备份配置表标记码均设置为DN,则在对配置表进行校验时,任意取一个配置表作为主配置表。
302、判断主配置表的CRC校验值与主配置表中保存的主配置表CRC校验的校验值是否相同,若是,则执行步骤303,若否,则执行步骤306、
303、对主配置表进行异或移位校验,获得主配置表的异或移位校验值;
在本发明实施例中,当主配置表的CRC校验值与主配置表中保存的所述主配置表的CRC校验的校验值相同时,CPU将对主配置表进行异或移位校验,获得主配置表的异或移位校验值。
304判断主配置表的异或移位校验的校验值与主配置表中保存的主配置表的异或移位校验值是否相同,若是,则执行步骤305,若否,则执行步骤306;
305、确定主配置表为校验正确的配置表;
当主配置表的异或移位校验的校验值与主配置表中保存的主配置表的异或移位校验的校验值相同时,CPU将确定主配置表为校验正确的配置表。
在本发明实施例中,CPU查找到主配置表之后,将对主配置表依次进行CRC校验及异或移位校验,若主配置表通过CRC校验及异或移位校验时,则确定该主配置表为校验正确的配置表,且将在对主启动程序或者备份启动程序的校验中使用。
306、根据预置的备份配置表标记码在OTP存储器中查找备份配置表,对备份配置表中的数据进行CRC校验,获得所述备份配置表的CRC校验值;
在本发明实施例中,当在OTP存储器查找不到主配置表,或者主配置表的CRC校验值与主配置表中保存的主配置表的CRC校验的校验值不同,或者主配置表的异或移位校验的校验值与主配置表中保存的主配置表的异或移位校验的校验值不同时,CPU根据预置的备份配置表标记码在OTP存储器中查找备份配置表,对备份配置表中的数据进行CRC校验,获得备份配置表的CRC校验值。
307、当备份配置表的CRC校验值与备份配置表中保存的备份配置表的CRC校验的校验值相同时,则对备份配置表进行异或移位校验,获得所述备份配置表的异或移位校验值;
308、当备份配置表的异或移位校验的校验值与备份配置表中保存的备份配置表的异或移位校验的校验值相同时,则确定备份配置表为校验正确的配置表。
在本发明实施例中,通过设置主配置表及备份配置表,能够有效的提高OTP存储器的利用率。
需要说明的是,在本发明实施例中,若主配置表及备份配置表均为通过CRC校验及异或移位校验,则将不能够对启动程序程序进行校验及运行。若有保存相同数据的主启动程序及备份启动程序均为通过校验,则启动程序不完整,也不能运行启动程序。
请参阅图5,为本发明实施例中一种OTP存储器中启动程序的运行装置的示意图,包括:
配置表获取单元501,用于获取OTP存储器中校验正确的配置表;
区块确定单元502,用于根据配置表中保存的主启动程序所在的OTP区块的偏移地址,确定起始的保存主启动程序的OTP区块;
CRC校验单元503,用于对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值;
异或移位校验单元504,用于当主启动程序的CRC校验值与配置表中保存的主启动程序的CRC校验值相同时,对主启动程序进行异或移位校验,获取主启动程序的异或移位校验值;
处理单元505,用于当主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值相同时,则保存OTP区块的偏移地址,判断OTP区块是否是最后一个保存主启动程序的OTP区块,若是,则停止OTP区块的校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值的步骤;
程序运行单元506,用于根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
在本发明实施例中,通过对主启动程序所在的OTP区块进行CRC校验及异或移位校验,若通过校验,则确定该主启动程序正确,使得CPU能够运行正确的启动程序,避免因运行错误的启动程序导致芯片不正常或损坏的问题。
为了更好的理解本发明的技术方案,请参阅图6,为本发明实施例中一种OTP存储器中启动程序的运行装置的实施例,包括:
图5所示实施例中的配置表获取单元501,区块确定单元502,CRC校验单元503,异或移位校验单元504,处理单元505,程序运行单元506,且与图5所示实施例中描述的内容相似,此处不再赘述。
其中,配置表获取单元501包括:
配置表查找及CRC校验单元601,用于根据预置的主配置表标记码在OTP存储器中查找主配置表,对主配置表中的数据进行CRC校验,获得主配置表的CRC校验值;
配置表异或移位校验单元602,用于当主配置表的CRC校验值与主配置表中保存的主配置表的CRC校验的校验值相同时,则对主配置表进行异或移位校验,获得主配置表的异或移位校验值;
确定单元603,用于当主配置表的异或移位校验的校验值与主配置表中保存的主配置表的异或移位校验的校验值相同时,则确定主配置表为校验正确的配置表。
在本发明实施例中,配置表查找及CRC校验单元601还用于当在OTP存储器查找不到主配置表,或者主配置表的CRC校验值与主配置表中保存的主配置表的CRC校验的校验值不同,或者主配置表的异或移位校验的校验值与主配置表中保存的主配置表的异或移位校验的校验值不同时,根据预置的备份配置表标记码在OTP存储器中查找备份配置表,对备份配置表中的数据进行CRC校验,获得备份配置表的CRC校验值;
配置表异或移位校验单元602还用于当备份配置表的CRC校验值与备份配置表中保存的备份配置表的CRC校验的校验值相同时,则对备份配置表进行异或移位校验,获得备份配置表的异或移位校验值;
确定单元603还用于当备份配置表的异或移位校验的校验值与备份配置表中保存的备份配置表的异或移位校验的校验值相同时,则确定备份配置表为校验正确的配置表。
区块确定单元502还用于当主启动程序的CRC校验值与配置表中保存的主启动程序的CRC校验值不同,或者主启动程序的异或移位校验值与配置表中保存的主启动程序的异或移位校验值不同时,根据配置表中保存的备份启动程序所在的OTP区块的偏移地址,确定与保存主启动程序对应的保存备份启动程序的OTP区块;
CRC校验单元503还用于对备份启动程序进行CRC校验,获取备份启动程序的CRC校验值;
异或移位校验单元504还用于当备份启动程序的CRC校验值与配置表中保存的备份启动程序的CRC校验值相同时,对备份启动程序进行异或移位校验,获取备份启动程序的异或移位校验值;
处理单元505还用于当备份启动程序的异或移位校验值与配置表中保存的备份启动程序的异或移位校验值相同时,则保存OTP区块的偏移地址;判断OTP区块是否为最后一块保存备份启动程序的OTP区块,若是,则停止校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行对OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取主启动程序的CRC校验值的步骤。
在本发明实施例中,通过对配置表进行CRC校验及异或移位校验,且在主配置表校验失败时,对备份配置表进行校验,及对主启动程序进行CRC校验及异或移位校验,且在主启动程序校验失败时,对备份启动程序进行校验,能够提高配置表及启动程序的正确性,避免因运行错误的启动程序导致芯片操作失误或者损坏的情况,能够有效的提高OTP存储器的利用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种一次性编程存储器中启动程序的运行方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种一次性可编程OTP存储器中启动程序的运行方法,其特征在于,包括:
获取OTP存储器中校验正确的配置表;
根据所述配置表中保存的主启动程序所在的OTP区块的偏移地址,获取起始的保存主启动程序的OTP区块;
对所述OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值;
当所述主启动程序的CRC校验值与所述配置表中保存的所述主启动程序的CRC校验值相同时,对所述主启动程序进行异或移位校验,获取所述主启动程序的异或移位校验值;
当所述主启动程序的异或移位校验值与所述配置表中保存的所述主启动程序的异或移位校验值相同时,则保存所述OTP区块的偏移地址,判断所述OTP区块是否是最后一个保存主启动程序的OTP区块,若是,则停止OTP区块的校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行所述对所述OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值的步骤;
根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
2.根据权利要求1所述的方法,其特征在于,所述配置表为主配置表或者备份配置表;
所述获取OTP存储器中校验正确的配置表包括:
根据预置的主配置表标记码在所述OTP存储器中查找所述主配置表,对所述主配置表中的数据进行CRC校验,获得所述主配置表的CRC校验值;
当所述主配置表的CRC校验值与所述主配置表中保存的所述主配置表的CRC校验的校验值相同时,则对所述主配置表进行异或移位校验,获得所述主配置表的异或移位校验值;
当所述主配置表的异或移位校验的校验值与所述主配置表中保存的所述主配置表的异或移位校验的校验值相同时,则确定所述主配置表为所述校验正确的配置表。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当在所述OTP存储器查找不到所述主配置表,或者所述主配置表的CRC校验值与所述主配置表中保存的所述主配置表的CRC校验的校验值不同,或者所述主配置表的异或移位校验的校验值与所述主配置表中保存的所述主配置表的异或移位校验的校验值不同时,根据预置的备份配置表标记码在所述OTP存储器中查找所述备份配置表,对所述备份配置表中的数据进行CRC校验,获得所述备份配置表的CRC校验值;
当所述备份配置表的CRC校验值与所述备份配置表中保存的所述备份配置表的CRC校验的校验值相同时,则对所述备份配置表进行异或移位校验,获得所述备份配置表的异或移位校验值;
当所述备份配置表的异或移位校验的校验值与所述备份配置表中保存的所述备份配置表的异或移位校验的校验值相同时,则确定所述备份配置表为所述校验正确的配置表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述主启动程序的CRC校验值与所述配置表中保存的所述主启动程序的CRC校验值不同,或者所述主启动程序的异或移位校验值与所述配置表中保存的所述主启动程序的异或移位校验值不同时,根据所述配置表中保存的备份启动程序所在的OTP区块的偏移地址,获取保存所述主启动程序的备份启动程序的OTP区块;
对所述OTP区块中的备份启动程序进行CRC校验,获取所述备份启动程序的CRC校验值;
当所述备份启动程序的CRC校验值与所述配置表中保存的所述备份启动程序的CRC校验值相同时,对所述备份启动程序进行异或移位校验,获取所述备份启动程序的异或移位校验值;
当所述备份启动程序的异或移位校验值与所述配置表中保存的所述备份启动程序的异或移位校验值相同时,则保存所述OTP区块的偏移地址;判断所述OTP区块是否为最后一块保存备份启动程序的OTP区块,若是,则停止校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行所述对所述OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值的步骤。
5.根据权利要求1所述的方法,其特征在于,所述根据保存的通过校验的OTP区块的偏移地址,运行启动程序包括为:
根据保存的通过校验的OTP区块的偏移地址,在所述OTP存储器中运行启动程序;
或者,
根据保存的通过校验的OTP区块的偏移地址,将启动程序读取到随机存取存储器RAM中,在所述RAM中运行所述启动程序。
6.一种一次性可编程OTP存储器中启动程序的运行装置,其特征在于,包括:
配置表获取单元,用于获取OTP存储器中校验正确的配置表;
区块确定单元,用于根据所述配置表中保存的主启动程序所在的OTP区块的偏移地址,确定起始的保存主启动程序的OTP区块;
CRC校验单元,用于对所述OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值;
异或移位校验单元,用于当所述主启动程序的CRC校验值与所述配置表中保存的所述主启动程序的CRC校验值相同时,对所述主启动程序进行异或移位校验,获取所述主启动程序的异或移位校验值;
处理单元,用于当所述主启动程序的异或移位校验值与所述配置表中保存的所述主启动程序的异或移位校验值相同时,则保存所述OTP区块的偏移地址,判断所述OTP区块是否是最后一个保存主启动程序的OTP区块,若是,则停止OTP区块的校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行所述对所述OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值的步骤;
程序运行单元,用于根据保存的通过校验的OTP区块的偏移地址,运行启动程序。
7.根据权利要求6所述的装置,其特征在于,所述配置表获取单元包括:
配置表查找及CRC校验单元,用于根据预置的主配置表标记码在所述OTP存储器中查找所述主配置表,对所述主配置表中的数据进行CRC校验,获得所述主配置表的CRC校验值;
配置表异或移位校验单元,用于当所述主配置表的CRC校验值与所述主配置表中保存的所述主配置表的CRC校验的校验值相同时,则对所述主配置表进行异或移位校验,获得所述主配置表的异或移位校验值;
确定单元,用于当所述主配置表的异或移位校验的校验值与所述主配置表中保存的所述主配置表的异或移位校验的校验值相同时,则确定所述主配置表为所述校验正确的配置表。
8.根据权利要求7所述的装置,其特征在于,
所述配置表查找及CRC校验单元还用于当在所述OTP存储器查找不到所述主配置表,或者所述主配置表的CRC校验值与所述主配置表中保存的所述主配置表的CRC校验的校验值不同,或者所述主配置表的异或移位校验的校验值与所述主配置表中保存的所述主配置表的异或移位校验的校验值不同时,根据预置的备份配置表标记码在所述OTP存储器中查找所述备份配置表,对所述备份配置表中的数据进行CRC校验,获得所述备份配置表的CRC校验值;
所述配置表异或移位校验单元还用于当所述备份配置表的CRC校验值与所述备份配置表中保存的所述备份配置表的CRC校验的校验值相同时,则对所述备份配置表进行异或移位校验,获得所述备份配置表的异或移位校验值;
所述确定单元还用于当所述备份配置表的异或移位校验的校验值与所述备份配置表中保存的所述备份配置表的异或移位校验的校验值相同时,则确定所述备份配置表为所述校验正确的配置表。
9.根据权利要求8所述的装置,其特征在于,
所述区块确定单元还用于当所述主启动程序的CRC校验值与所述配置表中保存的所述主启动程序的CRC校验值不同,或者所述主启动程序的异或移位校验值与所述配置表中保存的所述主启动程序的异或移位校验值不同时,根据所述配置表中保存的备份启动程序所在的OTP区块的偏移地址,确定与保存所述主启动程序对应的保存备份启动程序的OTP区块;
所述CRC校验单元还用于对所述备份启动程序进行CRC校验,获取所述备份启动程序的CRC校验值;
所述异或移位校验单元还用于当所述备份启动程序的CRC校验值与所述配置表中保存的所述备份启动程序的CRC校验值相同时,对所述备份启动程序进行异或移位校验,获取所述备份启动程序的异或移位校验值;
所述处理单元还用于当所述备份启动程序的异或移位校验值与所述配置表中保存的所述备份启动程序的异或移位校验值相同时,则保存所述OTP区块的偏移地址;判断所述OTP区块是否为最后一块保存备份启动程序的OTP区块,若是,则停止校验,若否,则获取下一个保存主启动程序的OTP区块,返回执行所述对所述OTP区块中的主启动程序进行循环冗余校验码CRC校验,获取所述主启动程序的CRC校验值的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110320901 CN102360316B (zh) | 2011-10-20 | 2011-10-20 | 一次性可编程存储器中启动程序的运行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110320901 CN102360316B (zh) | 2011-10-20 | 2011-10-20 | 一次性可编程存储器中启动程序的运行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102360316A CN102360316A (zh) | 2012-02-22 |
CN102360316B true CN102360316B (zh) | 2013-07-24 |
Family
ID=45585647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110320901 Active CN102360316B (zh) | 2011-10-20 | 2011-10-20 | 一次性可编程存储器中启动程序的运行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102360316B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508732B (zh) * | 2011-10-25 | 2015-08-19 | 深圳芯邦科技股份有限公司 | 改善一次性可编程存储器使用性能的方法及装置 |
CN103309765B (zh) * | 2012-03-08 | 2016-02-24 | 深圳迈瑞生物医疗电子股份有限公司 | 一种在线配置可编程器件的方法 |
CN102736933A (zh) * | 2012-05-16 | 2012-10-17 | 中兴通讯股份有限公司 | Boot文件加载方法及装置 |
CN105426206B (zh) * | 2015-11-12 | 2018-11-20 | 深圳国微技术有限公司 | 一种版本信息的控制方法和控制装置 |
CN106875974B (zh) * | 2017-03-16 | 2023-12-12 | 成都信息工程大学 | 一种otp存储装置以及访问otp存储器的方法 |
CN107657153B (zh) * | 2017-09-27 | 2020-11-13 | 深圳芯邦科技股份有限公司 | 一种芯片内flash区的代码保护方法及装置 |
CN110187920B (zh) * | 2019-04-01 | 2022-06-10 | 深圳市德明利技术股份有限公司 | 基于otp的主控芯片的boot代码扩展方法 |
CN112306559A (zh) * | 2019-07-26 | 2021-02-02 | 珠海零边界集成电路有限公司 | 一种存储启动系统及方法 |
CN110750272B (zh) * | 2019-10-12 | 2023-09-05 | 昆山丘钛微电子科技有限公司 | 用于摄像设备的数据烧录方法、烧录设备以及存储介质 |
CN113590209B (zh) * | 2021-09-29 | 2022-03-01 | 翱捷科技(深圳)有限公司 | 芯片启动控制方法、芯片及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3302950B2 (ja) * | 1999-08-13 | 2002-07-15 | 甲府日本電気株式会社 | Crc生成部およびcrc計算装置 |
CN100395706C (zh) * | 2005-12-31 | 2008-06-18 | 华为技术有限公司 | 一种交换机设备板件自启动的方法 |
KR100791485B1 (ko) * | 2006-03-18 | 2008-01-04 | (주) 코아보이스 | 음성신호를 이용한 otp 보안 인증시스템 및 그 보안 인증방법 |
CN100472444C (zh) * | 2006-08-28 | 2009-03-25 | 中兴通讯股份有限公司 | 一种提高芯片启动速度的装置及方法 |
CN101324867B (zh) * | 2007-06-16 | 2011-07-20 | 深圳市硅格半导体有限公司 | 基于半导体存储介质的数据管理装置及管理方法 |
-
2011
- 2011-10-20 CN CN 201110320901 patent/CN102360316B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102360316A (zh) | 2012-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102360316B (zh) | 一次性可编程存储器中启动程序的运行方法及装置 | |
CN102508732B (zh) | 改善一次性可编程存储器使用性能的方法及装置 | |
CN111124517B (zh) | 嵌入式芯片引导启动方法、装置、计算机设备和存储介质 | |
US8867289B2 (en) | Chip with embedded non-volatile memory and testing method therefor | |
CN102750191A (zh) | 用于启动固态非易失性存储设备内的刷新操作的方法 | |
US9086961B2 (en) | Repair method and device for abnormal-erase memory block of non-volatile flash memory | |
US20190332776A1 (en) | Firmware map data | |
CN106897166B (zh) | 一种移动终端及其修复方法 | |
CN101944051A (zh) | 片上多备份的高可靠嵌入式系统固件及其工作方法 | |
WO2015103917A1 (zh) | 无线路由设备管理方法和装置 | |
CN1971536A (zh) | 基本输入输出系统的纠错系统及方法 | |
TW201626398A (zh) | 測試及識別記憶體裝置之系統及方法 | |
US8345483B2 (en) | System and method for addressing threshold voltage shifts of memory cells in an electronic product | |
TW201543496A (zh) | 資料處理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN109683980B (zh) | 实现轨旁安全平台u盘配置文件可靠装载的方法 | |
CN104035776B (zh) | 一种操作系统的启动方法 | |
CN108196975B (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
TW200935230A (en) | Redundant bit patterns for column defects coding | |
US20100257430A1 (en) | Storage device and method for extending lifetime of storage device | |
US8020115B2 (en) | Apparatus, method and system for permanent storage of data | |
CN115858396B (zh) | 用于芯片验证的方法及装置、电子设备、存储介质 | |
CN105279048B (zh) | 一种数据恢复方法及装置 | |
US20140289569A1 (en) | Semiconductor storage device, controller, and memory system | |
US8527839B2 (en) | On-the-fly repair method for memory | |
US10832790B1 (en) | Performance of non data word line maintenance in sub block mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |