CN104679547A - 一种mcu中的***配置信息的读取方法和*** - Google Patents
一种mcu中的***配置信息的读取方法和*** Download PDFInfo
- Publication number
- CN104679547A CN104679547A CN201310637285.5A CN201310637285A CN104679547A CN 104679547 A CN104679547 A CN 104679547A CN 201310637285 A CN201310637285 A CN 201310637285A CN 104679547 A CN104679547 A CN 104679547A
- Authority
- CN
- China
- Prior art keywords
- system configuration
- configuration information
- mcu
- register
- data register
- 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.)
- Granted
Links
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种MCU中的***配置信息的读取方法和***,以解决目前的OTP技术导致的在MCU中集成OTP使MCU增加较大的面积、制造工艺复杂、产生错误概率增加的问题。其中,方法包括:在MCU上电复位后,从闪存芯片的***配置部分读取***配置信息,并将***配置信息存储到***配置寄存器单元;MCU采用***配置寄存器单元中的***配置信息配置MCU;配置完成后,从闪存芯片内部的程序数据部分读取程序数据,并运行程序数据。通过采用闪存芯片空间存储***配置信息,不会增加太多MCU芯片面积,并且不需要增加额外的特殊工艺,使得芯片制造工艺简单,有效的减少了成本,并且产生错误的概率降低。
Description
技术领域
本发明涉及MCU技术领域,特别是涉及一种MCU中的***配置信息的读取方法和***。
背景技术
微控制单元(Micro Control Unit,MCU),又称单片微型计算机(SingleChip Microcomputer,SCM)或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的中央处理器(Central Processing Unit,CPU)、随机存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
MCU可以应用于多种产品中,由于每个产品的特性都不一致,如不同闪存容量、不同内存容量大小、不同外设、某种功能是否打开等,不同的产品可能用于不同用户、不同应用场景,因此根据个性化需求,需要为不同产品定制不同功能的MCU。而要定制不同功能的MCU需要通过***配置信息去配置,***配置信息一般所占的空间不大(比如几十个bytes),但要求该***配置信息在某一特定产品中一直保持不变,并且***掉电不丢失。
目前较为常用的是一次性可编程(One Time Programmable,OTP)技术,将OTP集成到MCU中,每个产品的***配置信息都存储在OTP中。MCU在测试阶段同时可以通过某个测试用例,将***配置信息一次性烧写到OTP中,在MCU运行时,将OTP中的***配置信息读到***中。OTP可以保证编程后数据掉电不丢失。
但是,上述方法存在以下缺点:由于将OTP集成到MCU中,并且OTP的面积较大,因此会使MCU增加较大的面积;制造工艺复杂,OTP与标准单元库的工艺不一样,可能会产生兼容性问题,虽然现在的芯片生产厂家此类工艺比较成熟,但仍然会增加生产过程中的流程,额外增加费用;产生错误概率增加,由于制造工艺不同,产生错误概率增加,从而导致芯片成品率降低。
发明内容
本发明提供一种MCU中的***配置信息的读取方法和***,以解决目前的OTP技术导致的在MCU中集成OTP使MCU增加较大的面积、制造工艺复杂、以及产生错误概率增加的问题。
为了解决上述问题,本发明公开了一种微控制单元MCU的***配置信息的读取方法,其特征在于,所述MCU与闪存芯片连接,所述MCU包括***配置寄存器单元,所述闪存芯片包括***配置部分和程序数据部分,所述***配置部分存储有所述MCU的***配置信息,所述程序数据部分存储有所述MCU的程序数据,
所述方法包括:
在所述MCU上电复位后,所述MCU从所述闪存芯片的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元;
所述MCU采用所述***配置寄存器单元中的***配置信息配置所述MCU;
配置完成后,所述MCU从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
可选地,所述MCU还包括闪存配置寄存器单元,所述闪存配置寄存器单元包括操作寄存器和数据寄存器,
所述方法还包括:
当需要修改所述***配置部分的***配置信息时,将要写入的***配置信息写入到所述数据寄存器中;
通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,并读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
可选地,在将所述数据寄存器中的***配置信息写入到所述***配置部分之后,还包括:
通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器;
通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查;
当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息相同时,确定修改正确完成,将所述MCU重新上电复位;
当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息不相同时,执行所述通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分的步骤。
可选地,所述闪存配置寄存器单元还包括密钥寄存器,
在将要写入的***配置信息写入到所述数据寄存器中之前,还包括:
向所述密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证;
当验证成功时,执行所述将要写入的***配置信息写入到所述数据寄存器中步骤;
当验证不成功时,将所述MCU重新上电复位。
可选地,所述方法还包括:
当需要调试所述***配置部分的***配置信息时,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并对所述***配置信息进行调试。
可选地,所述MCU与所述闪存芯片相互独立并在外部物理连接,或者所述闪存芯片集成在所述MCU中。
另一方面,本发明还公开了一种微控制单元MCU的***配置信息的读取***,其特征在于,包括MCU和与所述MCU连接的闪存芯片,所述MCU包括***配置寄存器单元,所述闪存芯片包括***配置部分和程序数据部分,所述***配置部分存储有所述MCU的***配置信息,所述程序数据部分存储有所述MCU的程序数据,
所述MCU还包括:
读取存储单元,用于在所述MCU上电复位后,从所述闪存芯片的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元;
配置单元,用于采用所述***配置寄存器单元中的***配置信息配置所述MCU;
读取运行单元,用于所述配置单元配置完成后,从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
可选地,所述MCU还包括闪存配置寄存器单元,所述闪存配置寄存器单元包括操作寄存器和数据寄存器,
所述MCU还包括:
写入单元,用于当需要修改所述***配置部分的***配置信息时,将要写入的***配置信息写入到所述数据寄存器中;
操作配置单元,用于通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,并读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
可选地,所述操作配置单元,还用于在将所述数据寄存器中的***配置信息写入到所述***配置部分之后,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器;
所述MCU还包括:
数据配置单元,用于通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息相同时,确定修改正确完成,将所述MCU重新上电复位;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息不相同时,所述操作配置单元通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
可选地,所述闪存配置寄存器单元还包括密钥寄存器,
所述MCU还包括:
密钥配置单元,用于在所述写入单元将要写入的***配置信息写入到所述数据寄存器中之前,向所述密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证;当验证成功时,所述写入单元将要写入的***配置信息写入到所述数据寄存器中;当验证不成功时,将所述MCU重新上电复位。
可选地,所述操作配置单元,还用于当需要调试所述***配置部分的***配置信息时,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并对所述***配置信息进行调试。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,MCU与闪存芯片连接,MCU包括***配置寄存器单元,闪存芯片包括***配置部分和程序数据部分,***配置部分存储有所述MCU的***配置信息,程序数据部分存储有所述MCU的程序数据。在MCU上电复位后,首先,MCU从闪存芯片内部的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元;然后,MCU采用所述***配置寄存器单元中的***配置信息配置所述MCU;最后,配置完成后,MCU从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
本发明实施例中采用闪存芯片空间存储***配置信息,对这些***配置信息进行处理只需在MCU中增加几个寄存器即可,因此并不会增加太多MCU芯片面积;并且,在MCU***中,MCU本身就与闪存芯片连接,因此不需要增加额外的特殊工艺(即不需要额外将闪存芯片集成到MCU中),使得芯片制造工艺简单,有效的减少了成本,并且产生错误的概率降低。
附图说明
图1是本发明实施例一的一种MCU的***配置信息的读取方法的流程图;
图2是本发明实施例二的一种MCU的***配置信息的读取方法的流程图;
图3是本发明实施例三的一种MCU的整体结构图;
图4是本发明实施例三的一种闪存配置寄存器单元的结构框图;
图5是本发明实施例三的一种MCU的***配置信息的读取方法的流程图;
图6是本发明实施例四的一种MCU的***配置信息的读取***的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
MCU可以应用于多种产品中,由于每个产品的特性都不一致,因此根据个性化需求,需要为不同产品定制不同功能的MCU。而要定制不同功能的MCU需要通过***配置信息去配置,***配置信息一般所占的空间不大,但要求该***配置信息在某一特定产品中一直保持不变,并且***掉电不丢失。
在MCU***中,闪存芯片(或者其他非易失性存储器)是不可或缺的,即MCU与闪存芯片连接,该连接可以是MCU与闪存芯片相互独立并在外部物理连接(例如通过导线连接),也可以是将闪存芯片集成在MCU中。需要说明的是,本发明中MCU本身就与闪存芯片连接,因此不需要再额外将MCU与闪存芯片进行外部物理连接或者额外将闪存芯片集成在MCU中,即不需要额外的特殊工艺。
闪存芯片具有掉电数据不丢失的特点,主要用于存储MCU的程序数据。一般闪存芯片的容量比较大(比如从几十Kbytes到几Mbytes不等),并且MCU的程序数据不会用到闪存芯片的所有空间,所以一般闪存芯片有一小部分空间不会被用到,即是空闲的。
本发明就是要通过闪存芯片中这一少量空闲空间实现对配置信息的存储。因此在本发明中,可以将闪存芯片分为程序数据部分和***配置部分这两部分,其中,在程序数据部分存储有MCU的程序数据,该程序数据为***运行时所需要的程序以及常数性数据;在***配置部分存储有MCU的***配置信息,该***配置信息为将MCU配置出不同功能所需的配置数据。因此,本发明中不需要在MCU中集成面积较大的OTP,从而不会增加太多MCU芯片面积,也不需要额外的特殊工艺,芯片制造工艺简单、节约了成本。
下面,通过以下各个实施例对本发明的MCU的***配置信息的读取方法和***进行介绍。
实施例一:
参照图1,示出了本发明实施例一的一种MCU的***配置信息的读取方法的流程图,该方法可以包括以下步骤:
步骤100,在所述MCU上电复位后,所述MCU从所述闪存芯片内部的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元。
本发明实施例中,MCU包括***配置寄存器单元,该***配置寄存器单元主要用于存储MCU的***配置信息,然后在***配置时为MCU提供***配置信息。
由于本发明实施例中将MCU的***配置信息存储在闪存芯片内部的***配置部分,因此在MCU上电复位后,MCU可以自动从闪存芯片的***配置部分读取所述***配置信息,然后将所述***配置信息存储到所述***配置寄存器单元,以供后续***配置过程使用。
步骤102,所述MCU采用所述***配置寄存器单元中的***配置信息配置所述MCU。
MCU读取到闪存芯片内的***配置信息并将其存储至MCU中的***配置寄存器单元中之后,可以采用读取到的***配置信息配置所述MCU。例如,可以将***配置寄存器单元中的***配置信息输出到MCU的其他模块中,以使MCU具有特定的功能,从而达到个性化需求。
步骤104,配置完成后,所述MCU从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
在MCU配置完成后,即可使MCU运行时具有某一特定的功能。首先,MCU要从所述闪存芯片内部的程序数据部分读取所述程序数据,然后运行所述程序数据,此时MCU正常运行。
本发明实施例中采用闪存芯片空间存储***配置信息,对这些***配置信息进行处理只需在MCU中增加几个寄存器即可,因此并不会增加太多MCU芯片面积;并且,在MCU***中,MCU本身就与闪存芯片连接,因此不需要增加额外的特殊工艺(即不需要额外将闪存芯片集成到MCU中),使得芯片制造工艺简单,有效的减少了成本,并且产生错误的概率降低。
实施例二:
参照图2,示出了本发明实施例二的一种MCU的***配置信息的读取方法的流程图,该方法可以包括以下步骤:
步骤200,在所述MCU上电复位后,所述MCU从所述闪存芯片的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元。
本发明实施例中,MCU上电复位后,将自动从闪存芯片的***配置部分读取所述***配置信息,然后将所述***配置信息存储到所述***配置寄存器单元,以供后续的***配置过程使用。
步骤202,所述MCU采用所述***配置寄存器单元中的***配置信息配置所述MCU。
MCU要正常运行,首先要对自身进行配置,以使MCU可以运行在某一特定功能上,MCU的这些功能是通过上述***配置信息实现的,不同的***配置信息可以是MCU实现不同的功能。因此,MCU运行之前要采用上述***配置寄存器单元中的***配置信息配置所述MCU,这些***配置信息可能涉及到不同模块对应的功能,因此可以将这些***配置信息分别输出到MCU的对应模块中。
步骤204,配置完成后,所述MCU从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
在配置完成后,该MCU即可正常运行其中的程序。MCU的程序数据存储在闪存芯片的程序数据部分,因此MCU首先要从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据,此时,MCU即可执行程序设定的功能。
上述步骤200~步骤204是MCU正常运行的过程,本发明实施例中还增加了对***配置部分的***配置信息进行修改的功能。需要说明的是,该修改是指生产厂家的修改,而非用户的修改,即生产厂家通过修改MCU的配置信息定制不同功能的MCU,而禁止用户对***配置信息进行修改。
本发明实施例中,MCU还可以包括闪存配置寄存器单元,该闪存配置寄存器单元中可以包括一系列寄存器,MCU通过配置闪存配置寄存器单元可以控制MCU中的闪存控制单元的运行,进而实现对闪存芯片的操作。本发明实施例可以在MCU的闪存配置寄存器单元中增加密钥寄存器、操作寄存器和数据寄存器,MCU通过对这些寄存器进行配置可以实现对闪存芯片中的***配置信息进行修改。虽然在闪存配置寄存器单元中增加了上述寄存器,但是这些寄存器的面积较小,因此增加这些寄存器并不会导致MCU增加很大面积。
优选的,本发明实施例的微控制单元MCU的***配置信息的读取方法还可以包括以下步骤:
步骤S206,当需要修改所述***配置部分的***配置信息时,向所述密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证。
本发明实施例中,由于***配置部分只用于在芯片测试阶段为了定制某个特定功能的MCU,生产厂家将***配置信息写入闪存芯片中的***配置部分,因此,用户不可操作***配置部分的***配置信息。因此为了保证***配置信息只可被生产厂家修改,而不能被用户修改,本发明实施例中设置了密钥寄存器,只有知道密钥才可以对***配置信息进行修改,因此这些密钥只有生产厂家才能获得。
首先生产厂家在生产该MCU时,可以在密钥寄存器中预先存储一个或多个密钥,为了增强对***配置信息的保护,可以设置多个密钥,只有所有密钥验证成功之后才确认最终验证成功,或者也可以设置当有预设个数的密钥验证成功之后确认最终验证成功,本发明实施例对此并不加以限制。上述密钥可以为一串数字(例如123456)、字母(例如abcdef)、或者数字和字母的组合(例如123abc)等形式,本发明实施例对此并不加以限制。
当需要修改所述***配置部分的***配置信息时(即需要定制不同功能的MCU时),首先需要向所述密钥寄存器写入一个或多个密钥,并通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证。如果写入的密钥与密钥寄存器中预先存储的密钥全部相同,则说明验证成功,此时可以执行步骤208;如果写入的密钥与密钥寄存器中预先存储的密钥至少有一个不相同,则说明验证不成功,此时需要将MCU重新上电复位才能正常运行,上电复位之后,可以返回执行上述步骤200。
步骤208,将要写入的***配置信息写入到所述数据寄存器中。
如果上述步骤206中验证成功,说明可以对闪存芯片中的***配置信息进行修改。首先可以根据预先设置的MCU要实现的功能获取要写入的***配置信息,然后MCU将要写入的***配置信息写入到闪存配置寄存器单元内的数据寄存器中存储。
步骤210,通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,并读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
在将要写入的***配置信息写入数据寄存器之后,还要将该***配置信息写入到闪存芯片的***配置部分,以使MCU实现预先设置的功能。首先,MCU可以通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,然后读取所述数据寄存器中的***配置信息,最后通过配置所述操作寄存器将所述数据寄存器中的***配置信息写入到所述闪存芯片的***配置部分。之后可以将MCU重新上电复位,MCU可以自动将闪存芯片中的***配置信息读取到***配置寄存器单元,并利用该***配置信息对MCU进行配置,以使MCU实现修改后的***配置信息所表示的功能。
因此,本发明实施例中,由于将***配置信息存储至闪存芯片中,故可以通过MCU的配置对闪存芯片中的***配置信息进行擦写操作,而目前的OTP技术中,由于OTP为一次可编程存储器,因此无法对其中的数据进行擦写操作,如果要定制特定功能的MCU,则要采用新的OTP进行编程,保存***配置信息。
本发明实施例中,考虑到MCU与闪存芯片为两个不同的芯片,在擦写过程中可能会产生错误,虽然这种错误的概率非常小,但由于***配置信息非常重要,因此还可以对写入闪存芯片***配置部分的***配置信息进一步验证。
优选的,本发明实施例的微控制单元MCU的***配置信息的读取方法还可以包括以下步骤:
步骤212,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器。
步骤214,通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查。
本发明实施例可以对写入***配置部分的***配置信息进行验证,以检测其是否正确。例如,可以将***配置部分的***配置信息与数据寄存器中的***配置信息进行对比,以检查之前写入***配置部分的***配置信息是否正确。
首先,MCU可以通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器。然后,通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查。当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息相同时,则说明之前写入***配置部分的***配置信息正确,此时可以确定修改正确完成,并将所述MCU重新上电复位;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息不相同时,则说明之前写入***配置部分的***配置信息出现了错误,此时则要重新执行上述步骤210,重新向闪存芯片的***配置部分写入***配置信息。
目前的OTP技术中,由于OTP为一次可编程存储器,如果由于一些特殊原因导致编程错误,则会导致整个MCU丢弃。而本发明实施例中,由于增加了对***配置信息的对比检查过程,因此对于在擦写过程中产生的错误可以及时更正,从而保证MCU的正常运行,而不需要将MCU丢弃。
本发明实施例中,还可以增加对MCU的调试过程,该调试过程可以是对用户在使用MCU的过程中出现的问题进行的调试。因此,本发明实施例的方法还可以包括以下步骤:
步骤216,当需要调试所述***配置部分的***配置信息时,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并对所述***配置信息进行调试。
需要说明的是,在该调试过程中,也需要先执行上述步骤S206中向密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证的过程,以保证用户无法自主对***配置信息进行调试。验证通过后,可以通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并对所述***配置信息进行调试。
例如,某个MCU产品禁用了某个调试功能,在用户使用中出现问题,则可以返回原生产厂家调试定位问题,可通过对***配置信息的操作执行此调试功能,调试定位好问题,之后再禁用此调试功能,返回给用户。
本发明实施例中,还存在生产厂家在生产MCU时的调试过程,即预先准备多个实现方案(即多种***配置信息)逐个进行调试。该调试过程可以是可以通过配置操作寄存器依次将上述多种***跑配置信息写入***配置部分,每次写入后使MCU运行,判断是否能够正常运行,最后选出可取方案。对于具体的调试过程,本发明实施例在此不再详细论述。
本发明实施例中,由于将MCU的***配置信息存储至闪存芯片的***配置部分,因此可以对***配置信息进行读取、擦除、写入等操作,当用户在使用过程中出现问题时,生产厂家可以对***配置信息进行调试,修改***配置信息,从而消除上述问题,而OTP无法实现上述功能。
下面,通过实施例三,对本发明的MCU的***配置信息的读取方法进行详细介绍。
实施例三:
首先,介绍一下本发明实施例中的MCU的整体结构,如图3所示,该MCU可以包括:***总线30、闪存控制器32、静态随机存储器(Static RandomAccess Memory,SRAM)34和其他模块36。该MCU与闪存芯片38连接,MCU与闪存芯片可以相互独立并在外部物理连接,也可以将闪存芯片集成在MCU中。
其中,闪存控制器32可以包括闪存总线接口单元320、***配置寄存器单元322、SRAM控制单元324、闪存配置寄存器单元326、闪存控制单元328。分别叙述如下:
闪存总线接口单元:闪存总线接口单元的功能是将***总线的读写访问转化为闪存控制器内部的读写操作。闪存总线接口单元根据地址空间的不同将***总线的访问分为两类:一类是访问闪存配置寄存器单元,通过数据通路2访问;一类是访问SRAM中的程序数据,通过数据通路1访问。
***配置寄存器单元:将MCU上电后,MCU可以自动从闪存芯片中***配置部分读取***配置信息,并保存在***配置寄存器单元中,在***运行中,输出到MCU中的其他模块,控制其他模块的运行,该其他模块可以为USB模块等,本发明实施例在此不再详细论述。例如,控制MCU中的USB模块,某一个MCU可以实现USB模块的功能,而另一个MCU不能实现USB模块的功能,此时可以采用***配置寄存器单元中的某一位进行控制,例如将这一位设为1,表示允许使用USB模块,设为0,则表示MCU中禁用USB模块。
SRAM控制单元:控制***总线从闪存芯片中读程序数据。MCU上电后,自动通过闪存控制单元从闪存芯片中的程序数据部分读取程序数据暂存到SRAM中,全部存储完成后,***总线通过闪存总线接口,并通过SRAM控制单元从SRAM中读取程序数据到CPU中执行程序。
闪存配置寄存器单元:主要包括一系列寄存器,由***总线通过数据通路2配置,控制闪存控制单元的运行。在本发明中,***总线通过闪存配置寄存器单元,可以通过数据通路4向闪存芯片中的***配置部分擦写数据,也可以从***配置部分读数据。
闪存控制单元:控制闪存芯片,包括执行读、写、擦除等数据操作,读ID,读状态等。在本发明实施例中,程序数据部分的读操作为***上电后自动执行,通过数据通路3,存储到SRAM中;程序数据部分的写操作是***总线通过数据通路6完成的。***配置部分的读操作可以包括两种,一种是***上电后,自动读取,通过数据通路5,存到***配置寄存器单元中;另外一种是闪存配置寄存器单元主动读取,通过数据通路4读取到闪存配置寄存器单元中,通过***总线可以被CPU访问,CPU读取后可以有多种用途,例如对读取的***配置信息进行对比检查等;***配置部分的写操作可以为闪存配置寄存器单元通过数据通路4完成。
其中各个数据通路的功能如下:
数据通路1:从SRAM控制单元到闪存总线接口的读数据通路,用于将SRAM中数据读取到***总线中。
数据通路2:闪存总线接口单元到闪存配置寄存器单元之间的数据通路,用于***总线配置闪存寄存器信息。
数据通路3:从闪存控制单元到SRAM控制单元之间的读数据通路,用于将闪存芯片中程序数据部分的程序数据读取到SRAM中。
数据通路4:闪存配置寄存器单元与闪存控制单元之间的数据通路,用于闪存配置寄存器单元擦写或读取闪存芯片中***配置部分的***配置信息。
数据通路5:从闪存控制单元到***配置寄存器单元之间的读数据通路,用于在***上电后,从闪存芯片中的***配置部分读取***配置信息存入***配置寄存器单元中。
数据通路6:闪存总线接口单元到闪存控制单元之间的写数据通路,用于用***总线编程闪存芯片中的程序数据部分。
本发明实施例中,对于***配置信息的读写等操作主要是通过MCU配置闪存配置寄存器单元完成的,因此在该闪存配置寄存器单元中增加了一些特定的寄存器。
如图4所示,为本发明实施例三的一种闪存配置寄存器单元的结构框图,该闪存配置寄存器单元326可以包括:密钥寄存器3260、操作寄存器3262和数据寄存器3264。
密钥寄存器:由于***配置部分的***配置信息只有在生产厂家定制某一功能的MCU时或者在进行MCU调试时能够***作,因此,要保证该***配置信息不能被用户操作。该密钥寄存器即实现了这一功能,预先在密钥寄存器中存储一个或多个密钥,当需要对***配置信息进行操作时,通过配置操作寄存器对写入的密钥进行验证,只有写入的密钥正确,才能操作闪存芯片中的***配置部分。所以,此密钥用户不可知,用户不能操作***配置部分。为了提高保密功能,可以设置多个密钥,只有所有密钥全部输入正确时,才能确定验证成功。
操作寄存器:只有在密钥正确的情况下,操作寄存器才有效。通过配置操作寄存器并根据操作地址可以实现对闪存芯片中***配置部分的***配置信息的操作,包括擦除,编程,读取。
数据寄存器:包含需要写入到***配置部分的***配置信息,以及从***配置部分读取的***配置信息。通过配置数据寄存器可以实现对上述两个***配置信息的对比检查。
当然,闪存配置寄存器单元还可以包括其他配置寄存器,这些配置寄存器可以为闪存控制器实现其他功能所需的配置寄存器,本发明实施例在此不再详细论述。
下面,对本发明实施例中的MCU的***配置信息的读取方法进行介绍参照图5,示出了本发明实施例三的一种MCU的***配置信息的读取方法的流程图,该方法可以包括以下步骤:
步骤S500,将MCU上电复位。
步骤S502,读取闪存芯片中的***配置信息。
将MCU上电复位后,MCU可以自动读取闪存芯片中***配置部分的***配置信息,然后通过数据通路5存储至***配置寄存器单元,在后面MCU运行的过程中,这些***配置信息保持不变。
步骤S504,配置***。
MCU可以采用***配置寄存器单元中的***配置信息,配置整个MCU***,使得MCU实现某个特定的功能上,达到产品个性化需求。
步骤S506,***运行。
配置完***后,MCU可以从闪存芯片中的程序数据部分读取程序数据,通过数据通路3、经过SRAM控制单元存储至SRAM,再从SRAM中读取,经过SRAM控制单元、通过数据通路1、再经过闪存总线接口单元到***总线,并开始执行程序。
步骤S508,是否需要改写***配置信息。
此步骤为定制某个特定功能的MCU时才需要,正常运行程序时没有此步骤,在定制某个特定功能的MCU时,则需要改写***配置信息。因此,如果是,则执行步骤S508;如果否,则返回***运行过程。
步骤S510,写密钥。
该过程为***总线通过配置密钥寄存器完成,通过将输入的密钥与密钥寄存器中预先存储的密钥进行对比验证,当输入的密钥全部验证成功时,确定最终验证成功。当然,本发明实施例中也可以设置当有预设个数的密钥验证成功时,确定最终验证成功,本发明实施例对此并不加以限制。
步骤S512,密钥是否验证成功。
如果验证不成功,则不能对闪存芯片中的***配置信息进行任何操作,同时还要将MCU重新上电复位后才能正常运行,进行验证可以防止不合法的程序盗取密码。如果验证成功,则可以对***配置部分的***配置信息进行操作。
步骤S514,擦写***配置信息。
当验证成功时,可以通过配置操作寄存器对闪存芯片中***配置部分的***配置信息进行擦写,从而将修改后的***配置信息通过数据通路4重新写入闪存芯片中的***配置部分,使MCU实现修改后的功能。
需要说明的是,本发明实施例中,还可以在***配置部分预留一些保留位,在MCU的设计生产过程中,可能没有考虑全,而在产品的实际应用中对MCU中的各个功能的需求又各不一样,这样可以用保留位去控制,但需要将MCU的一层或多层金属做相应的修改,即对MCU做金属修改(Metalfix)。例如在某个产品中不需要模数变换器(Analog-to-DigitalConverter,ADC)模块,而已生产的MCU芯片中没有控制是否应用ADC模块的配置信息,那么可以通过预留的保留位来控制,但需要对MCU做Metalfix,修改ADC模块可以利用该保留位控制是否可用。
步骤S516,读取***配置信息。
由于MCU与闪存芯片为两个不同芯片,因此在擦写过程中可能会产生错误,虽然这种错误的概率非常小,但由于***配置信息非常重要,因此需要将***配置信息读出比较,全部比较正确,确定修改成功。同样是通过配置闪存配置寄存器单元中的操作寄存,对闪存芯片中的***配置部分进行读操作,将闪存芯片中的***配置部分的***配置信息通过数据通路4,读到闪存配置寄存器单元中的数据寄存器中。
步骤S518,对比检查。
通过配置数据寄存器将从***配置部分读出的***配置信息与数据寄存器中存储的***配置信息进行对比。如果错误,则跳到擦写***配置信息的步骤,重写擦写***配置信息;如果正确,则说明修改正确完成,将MCU重新上电复位,重载***配置信息到***配置寄存器单元中。
首先,本发明实施例采用多余的闪存芯片空间存储***配置信息,不会使MCU增加太多的面积,不增加额外的特殊工艺,使得芯片制造时简单,有效的减少了成本;
其次,在OTP技术中,***配置信息编程后无法改写,如果出现错误要将整个芯片丢弃,而在本发明实施例中可以对***配置信息进行操作,编程错误时无需丢弃芯片。另外,本发明实施例中还可以增加芯片调试手段,例如某个产品禁用了某个调试功能,用户使用中出现问题,生产厂家可通过对***配置信息进行修改,调试定位问题,然后再禁用此调试功能,返回给用户;
再次,本发明实施例中采用密钥保护的方法,使得只有获得密钥的生产厂家可以改写***配置信息,而用户不可操作,从而保证了各个MCU产品的安全性。
实施例四:
参照图6,示出了本发明实施例四的一种MCU的***配置信息的读取***的结构框图,该***可以包括:MCU60和与所述MCU连接的闪存芯片62,本发明实施例中MCU与所述闪存芯片可以相互独立并在外部物理连接,或者所述闪存芯片集成在所述MCU中。所述MCU60可以包括***配置寄存器单元600,所述闪存芯片包括***配置部分和程序数据部分,所述***配置部分存储有所述MCU的***配置信息,所述程序数据部分存储有所述MCU的程序数据,
其中,所述MCU60还可以包括:
读取存储单元602,用于在所述MCU上电复位后,从所述闪存芯片的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元;
配置单元604,用于采用所述***配置寄存器单元中的***配置信息配置所述MCU;
读取运行单元606,用于所述配置单元配置完成后,从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
本发明实施例中采用闪存芯片空间存储***配置信息,对这些***配置信息进行处理只需在MCU中增加几个寄存器即可,因此并不会增加太多MCU芯片面积;并且,在MCU***中,MCU本身就与闪存芯片连接,因此不需要增加额外的特殊工艺(即不需要额外将闪存芯片集成到MCU中),使得芯片制造工艺简单,有效的减少了成本,并且产生错误的概率降低。
优选的,所述MCU还可以包括闪存配置寄存器单元608,所述闪存配置寄存器单元608可以包括操作寄存器6080和数据寄存器6082。
所述MCU60还可以包括:
写入单元610,用于当需要修改所述***配置部分的***配置信息时,将要写入的***配置信息写入到所述数据寄存器中;
操作配置单元612,用于通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,并读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
本发明实施例中将***配置信息存储至闪存芯片中,因此可以通过MCU的配置利用上述写入单元610和操作配置单元612对闪存芯片中的***配置信息进行操作,而目前的OTP技术中,由于OTP为一次可编程存储器,因此无法对其中的数据进行操作。
优选的,所述闪存配置寄存器单元608还可以包括密钥寄存器6084。
所述MCU还可以包括:密钥配置单元614,用于在所述写入单元将要写入的***配置信息写入到所述数据寄存器中之前,向所述密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证;当验证成功时,所述写入单元将要写入的***配置信息写入到所述数据寄存器中;当验证不成功时,将所述MCU重新上电复位。
本发明实施例中为了保证***配置信息只可被生产厂家修改,而不能被用户修改,还设置了密钥寄存器,只有知道密钥才可以对***配置信息进行修改,因此这些密钥只有生产厂家才能获得。
优选的,本发明实施例中所述操作配置单元612,还用于在将所述数据寄存器中的***配置信息写入到所述***配置部分之后,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器;
所述MCU60还可以包括:数据配置单元616,用于通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息相同时,确定修改正确完成,将所述MCU重新上电复位;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息不相同时,所述操作配置单元通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
本发明实施例中,由于增加了对***配置信息的对比检查过程,因此对于在擦写过程中产生的错误可以及时更正,从而保证MCU的正常运行,而不需要将MCU丢弃。
优选的,所述操作配置单元,还用于当需要调试所述***配置部分的***配置信息时,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并对所述***配置信息进行调试。
由于将MCU的***配置信息存储至闪存芯片的***配置部分,因此可以对***配置信息进行读取、擦除、写入等操作,当用户在使用过程中出现问题时,生产厂家可以对***配置信息进行调试,修改***配置信息,从而消除上述问题,而OTP无法实现上述功能。
对于***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种MCU中的***配置信息的读取方法和***,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种微控制单元MCU的***配置信息的读取方法,其特征在于,所述MCU与闪存芯片连接,所述MCU包括***配置寄存器单元,所述闪存芯片包括***配置部分和程序数据部分,所述***配置部分存储有所述MCU的***配置信息,所述程序数据部分存储有所述MCU的程序数据,
所述方法包括:
在所述MCU上电复位后,所述MCU从所述闪存芯片的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元;
所述MCU采用所述***配置寄存器单元中的***配置信息配置所述MCU;
配置完成后,所述MCU从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
2.根据权利要求1所述的方法,其特征在于,所述MCU还包括闪存配置寄存器单元,所述闪存配置寄存器单元包括操作寄存器和数据寄存器,
所述方法还包括:
当需要修改所述***配置部分的***配置信息时,将要写入的***配置信息写入到所述数据寄存器中;
通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,并读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
3.根据权利要求2所述的方法,其特征在于,在将所述数据寄存器中的***配置信息写入到所述***配置部分之后,还包括:
通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器;
通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查;
当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息相同时,确定修改正确完成,将所述MCU重新上电复位;
当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息不相同时,执行所述通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分的步骤。
4.根据权利要求2所述的方法,其特征在于,所述闪存配置寄存器单元还包括密钥寄存器,
在将要写入的***配置信息写入到所述数据寄存器中之前,还包括:
向所述密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证;
当验证成功时,执行所述将要写入的***配置信息写入到所述数据寄存器中步骤;
当验证不成功时,将所述MCU重新上电复位。
5.根据权利要求2所述的方法,其特征在于,还包括:
当需要调试所述***配置部分的***配置信息时,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并对所述***配置信息进行调试。
6.根据权利要求1所述的方法,其特征在于,所述MCU与所述闪存芯片相互独立并在外部物理连接,或者所述闪存芯片集成在所述MCU中。
7.一种微控制单元MCU的***配置信息的读取***,其特征在于,包括MCU和与所述MCU连接的闪存芯片,所述MCU包括***配置寄存器单元,所述闪存芯片包括***配置部分和程序数据部分,所述***配置部分存储有所述MCU的***配置信息,所述程序数据部分存储有所述MCU的程序数据,
所述MCU还包括:
读取存储单元,用于在所述MCU上电复位后,从所述闪存芯片的***配置部分读取所述***配置信息,并将所述***配置信息存储到所述***配置寄存器单元;
配置单元,用于采用所述***配置寄存器单元中的***配置信息配置所述MCU;
读取运行单元,用于所述配置单元配置完成后,从所述闪存芯片内部的程序数据部分读取所述程序数据,并运行所述程序数据。
8.根据权利要求7所述的***,其特征在于,所述MCU还包括闪存配置寄存器单元,所述闪存配置寄存器单元包括操作寄存器和数据寄存器,
所述MCU还包括:
写入单元,用于当需要修改所述***配置部分的***配置信息时,将要写入的***配置信息写入到所述数据寄存器中;
操作配置单元,用于通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,并读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
9.根据权利要求8所述的***,其特征在于,
所述操作配置单元,还用于在将所述数据寄存器中的***配置信息写入到所述***配置部分之后,通过配置所述操作寄存器对所述***配置部分的***配置信息进行读取,并将所述***配置部分的***配置信息写入所述数据寄存器;
所述MCU还包括:
数据配置单元,用于通过配置所述数据寄存器将所述操作寄存器读取的所述***配置信息与所述数据寄存器中的***配置信息进行对比检查;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息相同时,确定修改正确完成,将所述MCU重新上电复位;当所述操作寄存器读取的***配置信息与所述数据寄存器中的***配置信息不相同时,所述操作配置单元通过配置所述操作寄存器对所述***配置部分的***配置信息进行擦除,读取所述数据寄存器中的***配置信息,将所述数据寄存器中的***配置信息写入到所述***配置部分。
10.根据权利要求8所述的***,其特征在于,所述闪存配置寄存器单元还包括密钥寄存器,
所述MCU还包括:
密钥配置单元,用于在所述写入单元将要写入的***配置信息写入到所述数据寄存器中之前,向所述密钥寄存器写入一个或多个密钥,通过配置所述密钥寄存器将所述一个或多个密钥与所述密钥寄存器自身预先存储的一个或多个密钥进行对比验证;当验证成功时,所述写入单元将要写入的***配置信息写入到所述数据寄存器中;当验证不成功时,将所述MCU重新上电复位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637285.5A CN104679547B (zh) | 2013-12-02 | 2013-12-02 | 一种mcu中的***配置信息的读取方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310637285.5A CN104679547B (zh) | 2013-12-02 | 2013-12-02 | 一种mcu中的***配置信息的读取方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679547A true CN104679547A (zh) | 2015-06-03 |
CN104679547B CN104679547B (zh) | 2017-11-10 |
Family
ID=53314648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310637285.5A Active CN104679547B (zh) | 2013-12-02 | 2013-12-02 | 一种mcu中的***配置信息的读取方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679547B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445470A (zh) * | 2016-09-30 | 2017-02-22 | 北京集创北方科技股份有限公司 | 芯片中的配置寄存器的初始化方法和初始化装置 |
CN106934305A (zh) * | 2015-12-31 | 2017-07-07 | 北京兆易创新科技股份有限公司 | 一种嵌入式*** |
CN106934258A (zh) * | 2015-12-31 | 2017-07-07 | 北京兆易创新科技股份有限公司 | 一种嵌入式*** |
CN108596822A (zh) * | 2018-04-24 | 2018-09-28 | 上海顺久电子科技有限公司 | 数据存储方法、装置及图像处理*** |
CN111506255A (zh) * | 2019-01-31 | 2020-08-07 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及*** |
CN111782290A (zh) * | 2020-06-02 | 2020-10-16 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及设备 |
CN112905235A (zh) * | 2021-03-12 | 2021-06-04 | 北京集睿致远科技有限公司 | 一种mcu程序执行方法和芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221214A (zh) * | 2005-08-31 | 2008-07-16 | 上海海尔集成电路有限公司 | 一种微控制器配置接口 |
CN201145900Y (zh) * | 2008-01-15 | 2008-11-05 | 上海海尔集成电路有限公司 | 微控制器 |
CN102662913A (zh) * | 2012-03-29 | 2012-09-12 | 佛山华芯微特科技有限公司 | 用于提高mcu存储性能的方法及其对应的mcu芯片 |
-
2013
- 2013-12-02 CN CN201310637285.5A patent/CN104679547B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221214A (zh) * | 2005-08-31 | 2008-07-16 | 上海海尔集成电路有限公司 | 一种微控制器配置接口 |
CN201145900Y (zh) * | 2008-01-15 | 2008-11-05 | 上海海尔集成电路有限公司 | 微控制器 |
CN102662913A (zh) * | 2012-03-29 | 2012-09-12 | 佛山华芯微特科技有限公司 | 用于提高mcu存储性能的方法及其对应的mcu芯片 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934305A (zh) * | 2015-12-31 | 2017-07-07 | 北京兆易创新科技股份有限公司 | 一种嵌入式*** |
CN106934258A (zh) * | 2015-12-31 | 2017-07-07 | 北京兆易创新科技股份有限公司 | 一种嵌入式*** |
CN106934305B (zh) * | 2015-12-31 | 2024-02-06 | 兆易创新科技集团股份有限公司 | 一种嵌入式*** |
CN106934258B (zh) * | 2015-12-31 | 2023-12-15 | 兆易创新科技集团股份有限公司 | 一种嵌入式*** |
CN106445470A (zh) * | 2016-09-30 | 2017-02-22 | 北京集创北方科技股份有限公司 | 芯片中的配置寄存器的初始化方法和初始化装置 |
CN106445470B (zh) * | 2016-09-30 | 2019-05-31 | 北京集创北方科技股份有限公司 | 芯片中的配置寄存器的初始化方法和初始化装置 |
CN108596822A (zh) * | 2018-04-24 | 2018-09-28 | 上海顺久电子科技有限公司 | 数据存储方法、装置及图像处理*** |
CN111506255B (zh) * | 2019-01-31 | 2023-09-26 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及*** |
CN111506255A (zh) * | 2019-01-31 | 2020-08-07 | 山东存储之翼电子科技有限公司 | 基于nvm的固态硬盘元数据管理方法及*** |
CN111782290B (zh) * | 2020-06-02 | 2023-10-27 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及设备 |
CN111782290A (zh) * | 2020-06-02 | 2020-10-16 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及设备 |
CN112905235B (zh) * | 2021-03-12 | 2023-08-01 | 北京集睿致远科技有限公司 | 一种mcu程序执行方法和芯片 |
CN112905235A (zh) * | 2021-03-12 | 2021-06-04 | 北京集睿致远科技有限公司 | 一种mcu程序执行方法和芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN104679547B (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679547A (zh) | 一种mcu中的***配置信息的读取方法和*** | |
US20190354285A1 (en) | Method and apparatus for memory management | |
CN1905070B (zh) | 能够存储多比特数据和单比特数据的闪存设备 | |
US20100250875A1 (en) | Eeprom emulation using flash memory | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、***和方法 | |
CN103930878A (zh) | 用于存储器验证的方法、装置及*** | |
US8417902B2 (en) | One-time-programmable memory emulation | |
CN107408090A (zh) | 输入/输出控制器访问通道的动态配置 | |
US9448926B2 (en) | Bidirectional counter in a flash memory | |
CN103093831A (zh) | 非易失性存储器的基准电流的内置自微调 | |
CN105785967A (zh) | 一种mcu的校准方法和*** | |
CN109493910A (zh) | 微控制器及其操作方法以及具有该微控制器的存储*** | |
US8621643B2 (en) | Semiconductor device | |
CN107153510A (zh) | 存储器控制器及用于管理存储器的方法 | |
CN108763148B (zh) | 一种支持上注的容错存储器控制器 | |
CN113590209B (zh) | 芯片启动控制方法、芯片及电子设备 | |
US10181356B2 (en) | Flash memory counter | |
CN115827347A (zh) | 一种嵌入式设备的控制方法及嵌入式设备 | |
JPS63106996A (ja) | 半導体集積回路装置 | |
CN106909341A (zh) | 基于寄存器的功能模块的使能方法、装置及移动终端 | |
CN107402887B (zh) | 闪速存储器中的计数器 | |
CN106886495B (zh) | 一种嵌入式***及其控制方法 | |
CN111159123A (zh) | 一种嵌入式可靠参数储存文件***及方法 | |
CN104778053A (zh) | 一种智能卡初始化控制方法及装置 | |
CN109977049B (zh) | 一种控制器及方法、*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
CP03 | Change of name, title or address |