CN114047952B - 用于单片机的处理器、方法、单片机和存储介质 - Google Patents
用于单片机的处理器、方法、单片机和存储介质 Download PDFInfo
- Publication number
- CN114047952B CN114047952B CN202210026161.2A CN202210026161A CN114047952B CN 114047952 B CN114047952 B CN 114047952B CN 202210026161 A CN202210026161 A CN 202210026161A CN 114047952 B CN114047952 B CN 114047952B
- Authority
- CN
- China
- Prior art keywords
- address
- program
- rom
- processor
- instruction
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种用于单片机的处理器、方法、单片机和存储介质。所述处理器包括:程序计数器,其用于存储程序执行时的地址信息;地址跳转表,其用于存储ROM中需要被替换的原始程序块的多个源地址和RAM中用于替换的目标程序块的多个目标地址,其中所述源地址和目标地址形成一一对应关系;以及地址匹配与控制电路,其配置用于:通过判断程序计数器中的地址信息是否与所述源地址匹配,进而将程序计数器中的地址信息修改为所述源地址对应的目标地址,以便所述处理器从所述目标程序块中读取并执行程序指令。本发明的处理器通过设置地址跳转表,进而利用少量RAM加EEPROM来替换ROM,从而实现了在减小单片机体积的同时,还可以实现对程序的灵活更改。
Description
技术领域
本发明一般地涉及单片机领域。更具体地,本发明涉及一种用于单片机的处理器、方法、单片机和计算机可读存储介质。
背景技术
单片机(Single-Chip Microcomputer)是一种目前应用极其广泛的集成电路芯片,其通过采用超大规模集成电路技术把具有数据处理能力的中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、多种I/O接口和中断系统、定时器/计数器等功能集成到一块硅片上,从而构成一个小而完善的微型计算机系统。单片机在运行时,由CPU从RAM或ROM中读取程序指令和数据,并执行一系列运算操作。进一步地,由于单片机的应用领域广泛,因此在不同的应用场景需要设计性能和结构不同的单片机。基于此,对于单片机的设计,目前现有技术中通常包括以下三种方案,下面分别对其进行介绍并分析其优缺点。
第一种设计方案是将程序指令和数据全部存储在MASKROM(掩模式只读存储器)中。具体地,在制作单片机的过程中,通过掩模工艺一次性地将开发好的程序全部保存在ROM中。这种设计方案的优点是成本低、制作工艺相对简单并且集成度较高。但是通过这种方案设计的单片机在出厂时由于程序已经固化,因此导致其不能进行修改。在这种情况下,如果在开发单片机时没有进行充分的调试验证,则很容易造成大量的失效产品。基于此,该种单片机仅适用于程序容量不大且使用需求固定不变的场景。
第二种设计方案是在制作单片机时只使用少量MASKROM来固化小部分初始化程序,而对于大部分功能性程序则存储在可以进行多次擦除和写入操作的外置电子可擦除可编程只读存储器(EEPROM)中。当通过这种方式制作的单片机上电后,首先由CPU执行ROM中的程序,以便将EEPROM中的数据加载到RAM中,之后CPU再跳转到RAM中的相应地址来读取并运行程序。这种方案的优势在于,其可以通过修改EEPROM中的内容从而实现灵活修改程序的功能。但是由于RAM的存储单元的电路结构非常复杂,并且其占用体积较大,因此导致单片机成本较高并且不利于系统集成。另外,由于外置EEPROM占用体积较大,因此导致其重编程时间也比较长。
第三种设计方案是将程序指令存储于FLASH(闪存)中。FLASH结合了ROM和RAM的优点,其不仅具备EEPROM的性能,例如可以对其进行反复擦写,还可以实现快速读取数据(NVRAM的优势)的功能,从而使数据不会因为断电等原因而丢失。但是,由于FLASH价格较高且工艺复杂,因此不适合对价格敏感的应用场合。综上所述,基于现有技术,不能设计出一款同时具有性能较高、体积和功耗较小、成本较低且容易集成的单片机。
发明内容
为解决上述背景技术中的一个或多个问题,本发明提供了一种用于单片机的处理器。当程序计数器的内容改变时,该处理器通过地址匹配与控制电路判断程序计数器中的地址信息是否与地址转移表中的源地址匹配,进而可以根据匹配结果从RAM的目标程序块中读取并执行程序指令,从而实现了在单片机运行过程中,处理器从运行ROM中的原始程序块替换为运行RAM中的目标程序块的功能。
具体地,一方面,本发明公开了一种用于单片机的处理器,其中所述单片机包括ROM和RAM。所述处理器包括:程序计数器,其用于存储程序执行时的地址信息;地址跳转表,其用于存储所述ROM中需要被替换的原始程序块的多个源地址和所述RAM中用于替换的目标程序块的多个目标地址,其中所述源地址和目标地址形成一一对应关系;以及地址匹配与控制电路,其配置用于:判断所述程序计数器中的地址信息是否与所述源地址匹配;以及响应于所述匹配,将所述程序计数器中的地址信息修改为所述源地址对应的目标地址,以便所述处理器从所述目标地址的目标程序块中读取并执行程序指令。
在一个实施例中,当所述处理器执行从ROM的当前源地址读取指令操作时,所述程序计数器用于响应于所述读取指令操作,修改其地址信息以指向ROM中的下一源地址。
在另一个实施例中,所述地址跳转表的所述多个源地址包括用于需求变更、功能升级和/或解决程序中bug的程序块的起始地址。
在又一个实施例中,所述地址匹配与控制电路还配置用于:响应于所述程序计数器中地址信息发生变化,确定执行判断所述程序计数器中的地址信息是否与所述源地址匹配。
另一方面,本发明还公开了一种用于单片机的方法,其中所述单片机包括前述实施例中所述的处理器。所述方法包括:根据程序计数器中的地址信息,从所述ROM的当前源地址对应的原始程序块中读取程序指令;响应于所述读取操作,修改所述程序计数器中的地址信息;响应于所述修改,使用所述地址匹配与控制电路来判断所述程序计数器中的地址信息是否与地址跳转表中的所述源地址匹配;以及响应于匹配,使用所述地址匹配与控制电路将所述程序计数器中的地址信息修改为所述源地址对应的目标地址,以便从所述目标地址的目标程序块中读取并执行程序指令;或者响应于不匹配,保持所述程序计数器中的地址信息不变,以便从所述ROM中继续读取并执行程序指令。
在一个实施例中,在判断所述程序计数器中的地址信息是否与所述源地址匹配之前,所述方法还包括:响应于所述处理器从所述ROM中读取程序指令,令所述程序计数器的地址加1;以及响应于所述程序计数器的地址加1,触发所述地址匹配与控制电路判断所述程序计数器中的地址信息是否与所述源地址匹配。
在另一个实施例中,在从所述目标地址的目标程序块中读取并执行程序指令的过程中,所述方法还包括:读取并执行作为所述目标程序块中最后一条指令的跳转指令,以便跳转至从所述ROM的下一个源地址对应的原始程序块中读取并执行程序指令。
又一方面,本发明还公开了一种单片机。所述单片机包括:ROM,其用于固定存储原始程序块;RAM,其用于存储替换所述ROM的原始程序块的目标程序块;以及前述实施例中所述的处理器。
在一个实施例中,所述RAM中的目标程序块中的最后一条程序指令为指向所述ROM的源地址的跳转指令,以便所述处理器在执行完所述目标程序块后跳转读取并执行所述源地址对应的原始程序块中的程序指令。
另一方面,本发明还公开了一种计算机可读存储介质,其存储有用于单片机的计算机程序指令,当所述计算机程序指令由处理器执行时,以实现根据前述实施例中所述的方法。
基于上述的实施例可以看出,本发明的单片机根据实际需求调整其存储器的结构和使用方式,从而使得本发明的设计方案较好地克服了现有技术中ROM和RAM各自的缺点。进一步地,对于同等的存储容量,由于采用RAM加EEPROM存储方式比采用ROM存储方式的单片机的体积大、功耗高并且制作成本高,因此本发明的方案通过优化减小RAM的使用,从而使得本发明的单片机具有体积小、功耗低并且制作成本低。另外,本发明的单片机通过在处理器中设置地址跳转表,从而使得在单片机上电运行时将本应执行ROM中的原始程序块跳转替换为执行RAM中的目标程序块。本发明的这种用少量RAM替换ROM中的程序指令的方案既可以节省成本,又可以解决程序更新升级的问题。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的用于单片机的处理器的结构框图;
图2是示出根据本发明实施例的地址跳转表、ROM和RAM结构示意图;
图3是示出根据本发明实施例的单片机的结构和工作原理示意图;以及
图4是示出根据本发明实施例的用于单片机的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是示出根据本发明实施例的用于单片机的处理器100的结构框图。为了更好地说明本发明的处理器100的结构和工作原理,图1中还绘出了ROM104和RAM105。
一方面,本发明公开了一种用于单片机的处理器100,其中所述单片机可以包括ROM104和RAM105,其用于存储单片机在运行时所需要的程序指令和数据。进一步地,所述处理器可以包括程序计数器101、地址跳转表102和地址匹配与控制电路103,其中所述程序计数器可以是一个寄存器,其用于存储程序执行时的地址信息。在一个实施例中,当处理器执行从ROM的当前源地址读取指令操作时,所述程序计数器用于响应于所述读取指令操作,修改其地址信息以指向ROM中的下一源地址。下面简要介绍一下程序计数器的工作原理。
具体地,程序计数器是用于存放下一条程序指令所在ROM单元的地址的寄存器。当处理器执行一条指令时,首先需要根据程序计数器中存放的指令地址,将指令由内存(例如ROM)取到指令寄存器中,此过程称为“取指令”。与此同时,程序计数器中的地址自动加1或者由转移指令赋予其下一条指令的地址。此后,处理器经过分析和执行指令,从而完成第一条指令的执行。接着,处理器根据程序计数器中的下一条地址信息取出并执行第二条指令,如此循环,从而完成执行程序块中的每一条指令。
在一个实施例中,本发明的处理器的地址跳转表可以存放于寄存器中,其用于存储所述ROM中需要被替换的原始程序块的多个源地址和所述RAM中用于替换的目标程序块的多个目标地址,其中所述源地址和目标地址形成一一对应关系。在一些应用场景中,所述地址跳转表可以在生产单片机时将源地址和目标地址烧录在寄存器中。进一步地,在单片机生产完成后,所述地址跳转表的内容还可以根据实际需求通过一次性编程(OTP)的方式进行修改,从而增大单片机的适用范围。所谓OTP是一种数据存储动作,其将每一颗模组计算所得的数据“编程”到指定的硬件位置,此过程称为OTP烧录,而对应的数据称为OTP数据。
在另一个实施例中,本发明的处理器的地址匹配与控制电路可以包括具有分析判断能力的芯片,其配置用于首先判断前述的程序计数器中的地址信息是否与所述源地址匹配。接着,响应于所述匹配,将所述程序计数器中的地址信息修改为前述的地址跳转表中的源地址所对应的目标地址,以便所述处理器从该目标地址的目标程序块中读取并执行程序指令。可以理解的是,上述的判断程序计数器中的地址信息是否与所述源地址匹配的过程例如可以是将程序计数器中的地址与地址跳转表中的源地址进行比较,如果两者相同,则判断为匹配;相反地,如果两者不同,则判断为不匹配。
图2是示出根据本发明实施例的地址跳转表、ROM和RAM结构200示意图。需要说明的是,由于地址跳转表的组成与ROM、RAM的关系较为紧密,因此为了更好地描述三者之间的关系,将其放在同一幅图中进行展示,其中图2中的(A)图示出的是地址跳转表的结构,而图2中的(B)图示出的是ROM和RAM的结构。
如图2中的(A)图所示,本发明的地址跳转表可以包括第一列的ROM地址和第二列的RAM地址。具体地,所述ROM地址可以包括多个源地址,这些源地址分别是图2中的(B)图的ROM中原始程序块的起始地址。例如图2中的(A)图中的源地址1~源地址N分别是图2中的(B)图的ROM中对应的原始程序块1~原始程序块N的起始地址。进一步地,所述RAM地址可以包括多个目标地址,这些目标地址分别是图2中的(B)图中的RAM的目标程序块的起始地址。例如图2中的(A)图中的目标地址1~目标地址N分别是图2中的(B)图的RAM中对应的目标程序块1~目标程序块N的起始地址。
如图2中的(B)图所示,所述ROM存储有用于实现单片机特定功能的原始程序块1~N,这些原始程序块1~N的起始地址分别是源地址1~N,其中所述特定功能例如可以包括需求变更、功能升级和/或解决程序中bug等。与之对应地,所述多个源地址可以包括用于需求变更、功能升级和/或解决程序中bug的程序块的起始地址。此外,ROM中还可以存储有用于单片机初始化的初始化程序块和用于保留已备开发的保留程序块。在一个实施例中,所述初始化程序块的起始地址可以定义为0x0000。进一步地,RAM存储有用于替换ROM中的原始程序块1~N的目标程序块1~N,其中目标程序块1~N的起始地址分别是目标地址1~N。
在单片机运行时,所述单片机根据实际需求并基于图2中的(A)图的地址跳转表来实现处理器跳过读取ROM相应初始化程序块的程序指令,转而读取并执行RAM的与该初始化程序块对应的目标程序块中程序指令,从而实现单片机程序替换的功能。由图2中的(B)图可以看出,RAM的目标程序块的最后一条指令为跳转指令,其可以指向ROM的下一个原始程序块,以用于当处理器执行完该目标程序块后返回ROM以便继续读取和执行ROM的原始程序块中的程序指令。
进一步地,通过图2中的(B)图还可以看出,所述RAM中的目标程序块的大小与对应的ROM中的原始程序块的大小并不一定相等。具体地,RAM中的目标程序块的指令数目与ROM中的对应的原始程序块的指令数目相比较而言,可以有如下三种情况:其一,RAM中的目标程序块的指令数目大于ROM中原始程序块的指令数目,以便增加程序中的一个或多个功能;或者其二,RAM中的目标程序块的指令数目等于ROM中原始程序块的指令数目,以便修改程序中的一个或多个操作;或者其三,RAM中的目标程序块的指令数目小于ROM中的原始程序块的指令数目,以便删除程序中的一个或多个功能。
图3是示出根据本发明实施例的单片机的结构300和工作原理示意图。可以理解的是,图3中的部分图与图1、图2中的部分图相同或相类似,因此前述图1和图2中关于处理器、ROM、RAM和地址跳转表的描述同样也适用于图3中相关结构的描述,并且重复的部分不再赘述。
如图3所示,本发明还公开了一种单片机。该单片机可以包括ROM310、RAM320和前述实施例所述的处理器330。具体地,所述ROM可以用于固定存储原始程序块,这些原始程序块是在单片机量产时使用掩模工艺将指令和数据固化于ROM中,并且即使在单片机掉电后所述原始程序块也不会丢失。
进一步地,ROM中存储了完整的应用程序,其中一部分为经过开发人员调试后固定不变的程序,例如存储在ROM起始段的系统基础配置程序指令、BootLoader以及将EEPROM内的二进制数据加载到RAM中的程序指令等。另一部分应用程序为实现多个功能的原始程序块,这些程序块存储在ROM中由源地址指定的位置,并且在单片机量产后这些程序块可以被替换,以便根据实际需要实现更多的功能。
在一个实施例中,所述RAM320用于存储替换ROM310的原始程序块的目标程序块,其与ROM统一编址。在单片机上电时,处理器运行ROM中的程序指令以便将数据从EEPROM加载到RAM中。与此相反地,当单片机掉电时,RAM中的数据将丢失。下面结合图3简要描述本发明的单片机的工作原理。需要说明的是,基于本发明的方案,下面关于本发明的单片机的工作原理的描述仅限于对单片机实现程序块替换功能的描述。对于单片机的通用工作原理,由于本领域技术人员已熟知,此处不再赘述。
首先,单片机上电后,程序计数器331中的地址预置为0x0000,于是处理器331根据程序计数器中的地址从ROM中读取指令,例如处理器从ROM的初始化程序区中读取并执行指令,以便对单片机进行初始化操作。接着,程序计数器的地址加1,此时地址匹配与控制电路333检测到程序计数器的内容发生变化,随之触发其比较程序计数器中的地址与地址跳转表332中的源地址是否相同。如图3所示,经过分析判断,如果程序计数器中的地址与地址跳转表中的ROM源地址1相同,则地址匹配与控制电路立即将程序计数器的内容修改为地址跳转表中与ROM源地址1相对应的RAM目标地址1。
进一步地,当处理器执行完初始化程序后,其根据程序计数器的地址开始读取并执行RAM目标地址1的目标程序块1中的程序指令。当处理器执行到目标程序块1的最后一条指令时,由于该指令为跳转指令,其指向ROM原始程序块1尾地址的下一个地址,因此处理器将跳回ROM继续执行原始程序块1后面的指令。执行完跳转指令后,程序计数器的内容将自动更新为ROM地址,从而使得处理器继续从ROM中读取并执行指令。由此可见,经过上述过程,单片机实现了将ROM中的原始程序块1替换为RAM中的目标程序块1的功能。
接下来,与上述过程相类似地,当程序计数器的内容变为源地址2、源地址3…源地址N时,地址匹配与控制电路将检测到程序计数器的内容与地址跳转表的ROM源地址2、源地址3…源地址N相匹配(相同)。基于此,地址匹配与控制电路立即将程序计数器内容修改为RAM目标地址2、目标地址3…目标地址N。随后,处理器读取并执行RAM目标程序块2、目标程序块3…目标程序块N中的程序指令,并在此过程中通过跳转指令分别跳回到相应的ROM地址,以便继续读取和执行ROM中的程序指令。综上所述,经过上述过程,单片机实现了将ROM中的原始程序块1、2、3…N替换为RAM中的目标程序块1、2、3…N的功能。
图4是示出根据本发明实施例的用于单片机的方法400的流程图。
如图4所示,本发明的用于单片机的方法400开始于步骤S401,在该步骤处,根据程序计数器中的地址信息,从ROM的当前源地址对应的原始程序块中读取程序指令。在执行完步骤S401后,方法400的流程前进到步骤S402。在此步骤处,响应于所述读取操作,修改所述程序计数器中的地址信息。具体地,当单片机上电后,单片机的处理器根据程序计数器的地址内容开始读取并执行程序计数器的地址所指向的ROM中的程序指令。与此同时,每当处理器取指后,程序计数器的地址数值就会自动增加或者由转移指针赋予其下一条指令的地址。
接下来,方法400执行步骤S403。在该步骤处,响应于步骤S402所述的修改,使用所述地址匹配与控制电路来判断所述程序计数器中的地址信息是否与地址跳转表中的所述源地址匹配。具体地,在这个过程中,首先响应于处理器从ROM中读取程序指令,令程序计数器的地址加1。接着,响应于程序计数器的地址加1,触发地址匹配与控制电路判断程序计数器中的地址信息是否与所述源地址匹配,其中判断所述地址是否匹配例如可以是判断地址是否相同。
随后,基于步骤S403的匹配结果,方法400的流程可以流向S404或者S405两个分支。进一步地,在步骤S404处,响应于匹配,使用所述地址匹配与控制电路将所述程序计数器中的地址信息修改为所述源地址对应的目标地址,以便从所述目标地址的目标程序块中读取并执行程序指令。在上述过程中,当读取并执行作为所述目标程序块中最后一条指令的跳转指令时,由于该跳转指令指向ROM的下一个源地址,因此处理器将跳转至从所述ROM的下一个源地址对应的原始程序块中读取并执行程序指令。
具体地,随着程序指令的继续运行,ROM中一些程序块可能需要被替换,根据实际情况这些程序块例如可以是用于需求变更、功能升级或者解决程序中的bug等程序。在这种情况下,地址跳转表的ROM源地址列将包含这些需要被替换的程序块的起始地址。此时,如果检测到地址匹配,即程序计数器中的内容与地址跳转表中的ROM源地址相同,则地址匹配与控制电路将程序计数器中的内容更改为ROM源地址对应的RAM目标地址。这样处理器将不再从ROM中读取指令,而是跳过ROM中被替换的程序块,转为执行RAM中的程序指令,从而实现了程序指令的替换操作。
与步骤S404并行地,当单片机不需要替换程序指令时,所述方法400执行步骤S405。在该步骤处,响应于不匹配,保持所述程序计数器中的地址信息不变,以便从所述ROM中继续读取并执行程序指令。具体地,对于初始化部分的程序或者不需要功能升级的程序来说,地址跳转表的ROM源地址列不会包含这些程序块的起始地址。在这种情况下,地址匹配与控制电路检测不到程序计数器地址与源地址匹配,即程序计数器中的内容与源地址不相同。此时,程序计数器的内容将保持不变,从而使得处理器按顺序一条一条地执行ROM中的程序指令。
在另一方面,本发明还公开了一种计算机可读存储介质,其存储有用于单片机的计算机程序指令,当所述计算机程序指令由一个或多个处理器来执行时,使得其实现前述的用于单片机的方法。
进一步地,上述的计算机可读存储介质可以是任何适当的磁存储介质或者磁光存储介质,例如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random AccessMemory)、高带宽内存HBM(High-Bandwidth Memory)和混合存储立方HMC(Hybrid MemoryCube)等,或者可以用于存储所需信息并且可以由应用程序、模块或两者访问的任何其他介质。基于此,本发明描述的任何数据和指令可以由上述的计算机可读介质进行存储,并且在需要时,处理器可以将这些数据和指令进行调用和执行,从而实现本发明的用于单片机的方法。
基于上文的描述,可以理解的是本发明的用于单片机的处理器和方法通过使用地址匹配与控制电路判断程序计数器的内容与地址跳转表中的地址是否匹配,进而根据匹配结果自动更改程序计数器内容,从而实现了用少量RAM替换ROM中的程序指令,以便灵活地进行程序更新替换的功能。另外,本发明的单片机由于巧妙地设计了处理器和存储器的结构和使用方式,因此使得该单片机较好地克服了现有技术中由于大量使用RAM而导致单片机体积较大、功耗和成本较高的问题。
应当理解,当本发明的权利要求、说明书及附图使用术语“第一”、“第二”、“第三”和“第四”等时,其仅是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
虽然本发明的实施方式如上,但所述内容只是为便于理解本发明而采用的实施例,并非用以限定本发明的范围和应用场景。任何本发明所述技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (9)
1.一种用于单片机的处理器,其中所述单片机包括ROM和RAM,所述处理器包括:
程序计数器,其用于存储程序执行时的地址信息;
地址跳转表,其用于存储所述ROM中需要被替换的原始程序块的多个源地址和所述RAM中用于替换的目标程序块的多个目标地址,其中所述源地址和目标地址形成一一对应关系;以及
地址匹配与控制电路,其配置用于:
判断所述程序计数器中的地址信息是否与所述源地址匹配;
响应于所述匹配,将所述程序计数器中的地址信息修改为所述源地址对应的目标地址,以便所述处理器从所述目标地址的目标程序块中读取并执行程序指令;以及
读取并执行作为所述目标程序块中最后一条指令的跳转指令,以便跳转至从所述ROM的下一个源地址对应的原始程序块中读取并执行程序指令。
2.根据权利要求1所述的处理器,其中当所述处理器执行从ROM的当前源地址读取指令操作时,所述程序计数器用于响应于所述读取指令操作,修改其地址信息以指向ROM中的下一源地址。
3.根据权利要求1所述的处理器,其中所述地址跳转表的所述多个源地址包括用于需求变更、功能升级和/或解决程序中bug的程序块的起始地址。
4.根据权利要求2所述的处理器,其中所述地址匹配与控制电路还配置用于:
响应于所述程序计数器中地址信息发生变化,确定执行判断所述程序计数器中的地址信息是否与所述源地址匹配。
5.一种用于单片机的方法,其中所述单片机包括根据权利要求1-4任意一项所述的处理器,所述方法包括:
根据程序计数器中的地址信息,从所述ROM的当前源地址对应的原始程序块中读取程序指令;
响应于所述读取程序指令的操作,修改所述程序计数器中的地址信息;
响应于所述修改,使用所述地址匹配与控制电路来判断所述程序计数器中的地址信息是否与地址跳转表中的所述源地址匹配;以及
响应于匹配,使用所述地址匹配与控制电路将所述程序计数器中的地址信息修改为所述源地址对应的目标地址,以便从所述目标地址的目标程序块中读取并执行程序指令;读取并执行作为所述目标程序块中最后一条指令的跳转指令,以便跳转至从所述ROM的下一个源地址对应的原始程序块中读取并执行程序指令;或者
响应于不匹配,保持所述程序计数器中的地址信息不变,以便从所述ROM中继续读取并执行程序指令。
6.根据权利要求5所述的方法,其中在判断所述程序计数器中的地址信息是否与所述源地址匹配之前,所述方法还包括:
响应于所述处理器从所述ROM中读取程序指令,令所述程序计数器的地址加1;以及
响应于所述程序计数器的地址加1,触发所述地址匹配与控制电路判断所述程序计数器中的地址信息是否与所述源地址匹配。
7.一种单片机,包括:
ROM,其用于固定存储原始程序块;
RAM,其用于存储替换所述ROM的原始程序块的目标程序块;以及
根据权利要求1-4的任意一项所述的处理器。
8.根据权利要求7所述的单片机,其中所述RAM中的目标程序块中的最后一条程序指令为指向所述ROM的源地址的跳转指令,以便所述处理器在执行完所述目标程序块后跳转读取并执行所述源地址对应的原始程序块中的程序指令。
9.一种计算机可读存储介质,其存储有用于单片机的计算机程序指令,当所述计算机程序指令由处理器执行时,以实现根据权利要求5-6的任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210026161.2A CN114047952B (zh) | 2022-01-11 | 2022-01-11 | 用于单片机的处理器、方法、单片机和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210026161.2A CN114047952B (zh) | 2022-01-11 | 2022-01-11 | 用于单片机的处理器、方法、单片机和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114047952A CN114047952A (zh) | 2022-02-15 |
CN114047952B true CN114047952B (zh) | 2022-05-20 |
Family
ID=80196183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210026161.2A Active CN114047952B (zh) | 2022-01-11 | 2022-01-11 | 用于单片机的处理器、方法、单片机和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114047952B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721712B (zh) * | 2022-06-09 | 2022-09-02 | 北京精雕科技集团有限公司 | 任务执行方法、装置、电子设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421283B1 (en) * | 2000-09-27 | 2002-07-16 | Conexant Systems, Inc. | Trap and patch system for virtual replacement of defective volatile memory cells |
CN101075213A (zh) * | 2006-02-21 | 2007-11-21 | 三星电子株式会社 | 只读存储器数据修补电路和方法、及其嵌入式系统 |
CN101299184A (zh) * | 2007-07-24 | 2008-11-05 | 威盛电子股份有限公司 | 修补装置及方法 |
CN112882753A (zh) * | 2019-11-29 | 2021-06-01 | 中科寒武纪科技股份有限公司 | 程序运行方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090031110A1 (en) * | 2007-07-24 | 2009-01-29 | Via Technologies | Microcode patch expansion mechanism |
-
2022
- 2022-01-11 CN CN202210026161.2A patent/CN114047952B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421283B1 (en) * | 2000-09-27 | 2002-07-16 | Conexant Systems, Inc. | Trap and patch system for virtual replacement of defective volatile memory cells |
CN101075213A (zh) * | 2006-02-21 | 2007-11-21 | 三星电子株式会社 | 只读存储器数据修补电路和方法、及其嵌入式系统 |
CN101299184A (zh) * | 2007-07-24 | 2008-11-05 | 威盛电子股份有限公司 | 修补装置及方法 |
CN112882753A (zh) * | 2019-11-29 | 2021-06-01 | 中科寒武纪科技股份有限公司 | 程序运行方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114047952A (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102084816B1 (ko) | Bpram을 사용한 소프트웨어 애플리케이션들의 레이아웃 및 실행 | |
US9733950B2 (en) | Boot sequencing for multi boot devices | |
EP0092646A1 (en) | Method and apparatus of program patching in a data processing system | |
US8555050B2 (en) | Apparatus and method thereof for reliable booting from NAND flash memory | |
KR100272937B1 (ko) | 마이크로프로세서및멀티프로세서시스템 | |
US20100169546A1 (en) | Flash memory access circuit | |
JPH04346127A (ja) | 電子装置 | |
US7546596B2 (en) | Non-disruptive method, system and program product for overlaying a first software module with a second software module | |
CN114047952B (zh) | 用于单片机的处理器、方法、单片机和存储介质 | |
US7003656B2 (en) | Automatic selection of firmware for a computer that allows a plurality of process types | |
CN112130926A (zh) | 应用程序运行的方法、装置、终端设备及存储介质 | |
CN112445540B (zh) | 程序运行方法、系统、终端及存储介质 | |
CN101697132A (zh) | 一种操作系统快速重启的方法、装置和网络设备 | |
US7640421B1 (en) | Method and system for determining context switch state | |
JP2004046453A (ja) | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 | |
US6925522B2 (en) | Device and method capable of changing codes of micro-controller | |
KR19980079596A (ko) | 멀티 프로세서 시스템의 프로세서 정지 상태 구현 방법 및 장치 | |
CN117193872A (zh) | 一种基于符号表动态执行的芯片启动固件装置和方法 | |
CN111666102A (zh) | 文件格式转换方法、芯片验证方法、相关装置及网络芯片 | |
US7340561B2 (en) | Computer memory initialization | |
GB2292470A (en) | Rom patching | |
CN105204896A (zh) | 一种数字存储示波器的BootLoader设计方法 | |
CN114942779A (zh) | 一种补丁实现方法、装置、嵌入式系统及存储介质 | |
US20100146332A1 (en) | Data correction circuit and semiconductor integrated circuit | |
CN114416637A (zh) | 一种soc芯片复位处理方法、装置、soc芯片及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |