CN113641393A - 一种在单片机运行期间在线更新闪存数据的装置及方法 - Google Patents
一种在单片机运行期间在线更新闪存数据的装置及方法 Download PDFInfo
- Publication number
- CN113641393A CN113641393A CN202111208179.6A CN202111208179A CN113641393A CN 113641393 A CN113641393 A CN 113641393A CN 202111208179 A CN202111208179 A CN 202111208179A CN 113641393 A CN113641393 A CN 113641393A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- program codes
- peripheral module
- busy signal
- flash
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000002093 peripheral effect Effects 0.000 claims abstract description 78
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 6
- 238000012827 research and development Methods 0.000 abstract description 12
- 230000007547 defect Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开一种在单片机运行期间在线更新闪存数据的装置及方法,涉及单片机技术领域。所述装置包括:单片机;单片机包括:闪存,用于存储程序代码,中央处理器,用于从闪存中读取程序代码并执行;外设模块,分别与中央处理器和闪存连接,用于进行闪存操作,在闪存操作时,在时序上生成一条忙信号,使中央处理器暂停从闪存读取程序代码;在闪存操作完成后,释放忙信号,使中央处理器恢复继续从闪存读取程序代码并执行;以及在闪存操作期间,输出闪存所需要的各种组合信号,完成闪存操作。通过本发明实施例,可使中央处理器能够方便地在线控制闪存的读写和修改,以解决程序更新需要通过烧录器来进行烧录的弊端,提高研发效率。
Description
技术领域
本发明涉及单片机技术领域,尤其涉及一种在单片机运行期间在线更新闪存数据的装置及方法。
背景技术
单片机的CPU(Central Processing Unit,中央处理器)在执行的时候,需要从ROM(Read-Only Memory,只读存储器ROM)中读取程序代码。ROM的代码,用编译器编译好后,预先在流片的时候,或者通过烧录器烧写到单片机的ROM中。程序代码一旦设定好,就不能再修改。
闪存(FLASH)因具有可以反复擦写的特点,广泛用作各种单片机的ROM,使单片机的程序可以反复修改。传统的做法是使用烧录器,通过烧录器实现上述程序在闪存的反复擦写更新。
但在实际应用中,存在有这样一种研发需求,需要完全摆脱烧录器来实现程序更新的需求,单片机的CPU需要一边在线执行闪存上的程序代码,一边在线修改闪存上的存储的代码数据。由于闪存在读取数据操作和擦写数据操作在时序上不能同时进行,这意味着,内部只使用一片闪存的单片机,CPU在执行在线修改闪存数据时,会有一段时间无法从闪存中读取到程序代码,造成CPU没有代码导致执行出错,降低研发效率,影响用户体验。此时,无法使用烧录器满足上述需求,需要提出一种新的方法来实现上述需求。
发明内容
本发明实施例旨在提供一种在单片机运行期间在线更新闪存数据的装置及方法,可以使单片机内部的中央处理器能够方便地在线控制闪存的读写和修改,以解决程序更新需要通过烧录器来进行烧录更新的弊端,提高研发效率,提升用户体验。
为解决上述技术问题,本发明实施例提供以下技术方案:一种在单片机运行期间在线更新闪存数据的装置,所述装置包括:单片机,其中:所述单片机包括中央处理器、闪存和外设模块;
所述闪存与所述中央处理器连接,用于存储程序代码;
所述中央处理器用于从所述闪存中读取程序代码并执行;
所述外设模块,分别与所述中央处理器和所述闪存连接,用于进行闪存操作,在闪存操作时,在时序上生成一条忙信号,所述忙信号可使所述中央处理器暂停从所述闪存读取程序代码;并在闪存操作完成后,释放所述忙信号,使所述中央处理器恢复继续从所述闪存读取程序代码并执行;以及用于在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作。
可选地,所述闪存操作包括以下之一的闪存操作:参数设置、时序设置、数据读取、闪存擦写、扇区擦除、字节编程。
可选地,所述外设模块包括至少一个寄存器,所述寄存器用于提供给所述中央处理器设置闪存的时序参数。
可选地,所述时序参数包括以下之一:擦除时间的长短、烧录时间的长短、恢复时间的长短。
可选地,所述外设模块用于进行闪存操作,在闪存操作时,在时序上产生一条忙信号;包括:
所述外设模块使用所述寄存器的启动位产生启动状态标记,启动闪存擦写操作,所述外设模块在时序上生成一条忙信号,所述忙信号可使所述中央处理器暂停从所述闪存读取程序代码,也不再执行程序代码。
可选地,在所述忙信号启动后,所述中央处理器不再从所述闪存读取程序代码,也不再执行程序代码;在这期间遇到触发的中断请求,也不再响应所述中断请求。
可选地,所述外设模块用于在闪存操作完成后,释放所述忙信号;包括:
当闪存擦写操作完成后的时钟周期内,所述外设模块改变闪存控制信号,使闪存恢复到读数据状态;
在闪存擦写操作完成后的下一个周期,所述外设模块使用所述寄存器的结束状态位产生结束状态标记,同时释放所述忙信号。
可选地,在所述忙信号被释放后,所述中央处理器开始恢复继续从所述闪存读取程序代码并继续执行;在这期间遇到触发的中断请求,则所述中央处理器响应所述中断请求。
可选地,所述外设模块还包括信号产生器,所述信号产生器用于在闪存操作期间,输出所述闪存所需要的各种组合信号。
为解决上述技术问题,本发明实施例还提供以下技术方案:一种在单片机运行期间在线更新闪存数据的方法,其特征在于,应用于本发明任一实施例所述的一种在单片机运行期间在线更新闪存数据的装置,所述装置包括:单片机和外设模块;所述单片机包括中央处理器和闪存;所述闪存分别与所述中央处理器和所述外设模块连接;其中,所述方法包括:
外设模块在闪存操作时,在时序上生成一条忙信号;
中央处理器在所述忙信号启动后,暂停从所述闪存读取程序代码;
外设模块在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作;
外设模块闪存操作完成后,释放所述忙信号;
中央处理器在所述忙信号被释放后,恢复继续从所述闪存读取程序代码并执行。
与现有技术相比较,本发明实施例提供的一种在单片机运行期间在线更新闪存数据的装置及方法,通过单片机包括CPU、闪存和外设模块,所述闪存与所述CPU连接,存储程序代码;所述CPU从所述闪存中读取程序代码并执行;所述外设模块分别与所述CPU和所述闪存连接,用于进行闪存操作,在闪存操作时,在时序上生成一条忙信号,所述忙信号可使所述CPU暂停从所述闪存读取程序代码;并在闪存操作完成后,释放所述忙信号,使所述CPU恢复继续从所述闪存读取程序代码并往下执行;以及用于在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作。从而可以在单片机运行期间无需借助烧录器即可对所述闪存中存储的程序代码数据进行在线修改,需要完全摆脱烧录器,满足单片机的CPU一边在线执行闪存上的程序代码,一边在线修改闪存上的存储的程序代码数据的研发需求,使得内部只使用一片闪存的单片机,CPU在执行在线修改闪存数据时,并不会出现有一段时间无法从闪存中读取到程序代码而导致执行出错,使单片机内部的CPU能够方便地在线控制闪存的读写和修改,以解决ROM程序更新需要通过烧录器来进行烧录更新的弊端,提高研发效率,提升用户体验。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明提供的一种在单片机运行期间在线更新闪存数据的装置的结构示意图。
图2是本发明提供的一种在单片机运行期间在线更新闪存数据的装置在闪存擦写操作的时序示意图。
图3是本发明提供的一种在单片机运行期间在线更新闪存数据的方法的流程示意图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。本说明书所使用的术语“上”、“下”、“内”、“外”、“底部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
此外,下面所描述的本发明不同实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
闪存(FLASH)因具有可以反复擦写的特点,广泛用作各种单片机的ROM,使单片机的程序可以反复修改。
闪存的结构主要包括MAIN区、NVR区和SFR。其中,所述MAIN区主要用来存储主程序,CPU正常执行的时候,就从所述MAIN区读取程序代码;所述NVR区用来存储一些固定的应用参数,应用程序可以从所述NVR区读取数据,但不能改写数据;所述SFR为闪存的配置寄存器,闪存的配置寄存器主要是用于设置擦除电压和烧写电压。这些电压设置,在测试模式下就能被测量出来并被保存在所述NVR区中。应用程序在上电的过程中将这些电压测量值读取出来,然后写到闪存的配置寄存器SFR中。
单片机的闪存操作,主要包括读取数据、烧写数据、擦除数据这三个操作。
闪存的存储单元,只能够将“1”烧写成“0”,因此,烧写数据时,需要先擦除数据,通常的闪存都是设计成整页(整块、整片)擦除的。数据擦除干净后,才可以在其中某个字节地址烧写数据。闪存的读取数据、烧写数据和整页(整块、整片)擦除的操作,在时序上是不能同时进行的。不但读取数据时不能擦写数据,擦写数据时不能读取数据,而且读取NVR数据时,CPU也不能读取MAIN区中程序代码。这意味着,内部只使用一片闪存的单片机,CPU在执行在线修改闪存数据时,会有一段时间无法从闪存中读取到程序代码,造成CPU没有代码导致执行出错,降低研发效率。
基于上述问题,本发明提出了一种在单片机运行期间在线更新闪存数据的装置和方法,为单片机增加一个外设模块,在CPU的控制下,所述外设模块可以完成参数设置、时序设置、数据读、扇区擦除、字节编程等闪存操作,这些闪存操作可以灵活地进行组合,实现闪存的各种复杂功能。同时,所述外设模块在闪存操作时,会在时序上生成一条很精准的忙信号,所述忙信号可使所述CPU暂停从所述闪存读取程序代码,直到闪存操作完毕,CPU才继续从所述闪存读取程序代码并往下执行,从而在设计单片机芯片时,预先将闪存在系统编程的功能,集成在系统中,使单片机内部的CPU能够方便地在线控制闪存的读写和修改,以解决ROM程序更新需要通过烧录器来进行烧录更新的弊端,提高研发效率。
在一个实施例中,如图1所示,本发明提供一种在单片机运行期间在线更新闪存数据的装置,所述装置包括:单片机1,其中:所述单片机1包括中央处理器(CPU)11、闪存12和外设模块13;所述闪存12与所述CPU 11连接,用于存储程序代码;所述CPU 11用于从所述闪存中读取程序代码并执行。
所述外设模块13,分别与所述CPU 11和所述闪存12连接,用于进行闪存操作,在闪存操作时,在时序上生成一条忙信号,所述忙信号可使所述CPU 11暂停从所述闪存读取程序代码;并在闪存操作完成后,释放所述忙信号,使所述CPU 11恢复继续从所述闪存读取程序代码并往下执行;以及用于在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作。
在本实施例中,通过单片机包括CPU、闪存和外设模块,所述闪存与所述CPU连接,存储程序代码;所述CPU从所述闪存中读取程序代码并执行;所述外设模块分别与所述CPU和所述闪存连接,用于进行闪存操作,在闪存操作时,在时序上生成一条忙信号,所述忙信号可使所述CPU暂停从所述闪存读取程序代码;并在闪存操作完成后,释放所述忙信号,使所述CPU恢复继续从所述闪存读取程序代码并往下执行;以及用于在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作。从而可以在单片机运行期间无需借助烧录器即可对所述闪存中存储的程序代码数据进行在线修改,需要完全摆脱烧录器,满足单片机的CPU一边在线执行闪存上的程序代码,一边在线修改闪存上的存储的程序代码数据的研发需求,使得内部只使用一片闪存的单片机,CPU在执行在线修改闪存数据时,并不会出现有一段时间无法从闪存中读取到程序代码而导致执行出错,使单片机内部的CPU能够方便地在线控制闪存的读写和修改,以解决ROM程序更新需要通过烧录器来进行烧录更新的弊端,提高研发效率,提升用户体验。
在一个实施例中,所述闪存操作包括以下之一的闪存操作:参数设置、时序设置、数据读取、闪存擦写、扇区擦除、字节编程。
所述外设模块13在所述CPU 11的控制下,可以完成参数设置、时序设置、数据读、扇区擦除、字节编程等闪存操作,这些闪存操作可以灵活地进行组合,实现闪存的各种复杂功能。
在一个实施例中,所述外设模块13用于在闪存操作期间,输出所述闪存12所需要的各种组合信号,完成闪存操作。
所述外设模块13支持闪存12的读取数据、烧写数据和整块(整页)擦除等功能。所述外设模块13可以输出闪存12所需要的各种组合信号,比如各种地址值、数据值和各种控制信号,完成闪存12的各种功能的操作。
由于在更新闪存数据时,不能更新到正在执行程序所在的扇区,否则,程序很容易跑飞,导致不可以预期的结果。因此,所述外设模块可以不需要支持闪存的全片擦除功能。
在一个实施例中,如图1所示,所述外设模块13包括至少一个寄存器131,所述寄存器131用于提供给所述CPU 11设置闪存操作的参数,所述闪存操作的参数包括:时序参数、地址参数和闪存数据。其中,所述时序参数包括以下之一:擦除时间的长短、烧录时间的长短、恢复时间的长短。
在所述外设模块13中设置修改闪存程序数据所需要的寄存器131。闪存运行时需要的各种时序中,有些时序是需要在运行时进行调整的,比如擦除时间的长短、烧录时间的长短、恢复时间的长短等这些时序参数,这些时序参数的设定,是由所述CPU 11使用所述寄存器131来进行设置。读取回来的NVR数据,也通过所述寄存器131被所述CPU 11读取。所述寄存器131包括启动位和结束状态位,所述启动位和结束状态位可由所述CPU 11来进行设置。所述CPU 11可以通过所述寄存器131控制的方式,选择合适的操作灵活地对闪存12进行地控制操作。
在一个实施例中,所述外设模块13用于进行闪存操作,在闪存操作时,在时序上产生一条忙信号,所述忙信号可使所述CPU暂停从所述闪存读取程序代码;包括:
所述外设模块13使用所述寄存器131的启动位产生启动状态标记,启动闪存擦写操作,所述外设模块13在时序上生成一条忙信号busy,所述忙信号busy可使所述CPU 11暂停从所述闪存读取程序代码,也不再执行程序代码。
在一个实施例中,在所述忙信号busy启动后,所述CPU 11不再从所述闪存读取程序代码,也不再执行程序代码;在这期间遇到触发的中断请求,也不再响应所述中断请求。
在一个实施例中,所述外设模块13用于在闪存操作完成后,释放所述忙信号,使所述CPU 11恢复继续从所述闪存读取程序代码并往下执行;包括:
当闪存擦写操作完成后的时钟周期内,所述外设模块改变闪存控制信号,使闪存恢复到读数据状态。
在闪存擦写操作完成后的下一个周期,所述外设模块使用所述寄存器的结束状态位产生结束状态标记,同时释放所述忙信号,使所述CPU恢复继续从所述闪存读取程序代码并往下执行。
在一个实施例中,在闪存擦写操作结束,所述忙信号被释放后,所述CPU开始恢复继续从所述闪存读取程序代码并继续执行;在这期间遇到触发的中断请求,则所述CPU响应所述中断请求。
在一个实施例中,如图1所示,所述外设模块13还包括信号产生器132,所述信号产生器132用于在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作。
如图2所示,是本发明提供的一种在单片机运行期间在线更新闪存数据的装置在闪存擦写操作的时序示意图。
在启动闪存擦写时(如图2中PC=B的指令位置),由所述外设生成一条忙信号busy,这条忙信号能使所述CPU暂停从所述闪存读取程序代码(如图2中PC=D’的位置),不执行代码。当闪存的擦写操作完成后的时钟周期内,所述外设模块改变闪存控制信号,使闪存恢复到读数据状态。下一个周期,所述外设模块产生结束状态标记,同时把所述忙信号释放。所述忙信号释放后,所述CPU开始恢复继续从所述闪存读取程序代码,并往下执行程序(如图2中PC=D、PC=E的指令位置)。
基于同一构思,在一个实施例中,如图3所示,本发明提供一种在单片机运行期间在线更新闪存数据的方法,应用于一种在单片机运行期间在线更新闪存数据的装置,所述装置包括:单片机和外设模块;所述单片机包括CPU和闪存;所述闪存分别与所述CPU和所述外设模块连接;其中,所述方法包括:
S1、外设模块在闪存操作时,在时序上生成一条忙信号;
S2、CPU在所述忙信号启动后,暂停从所述闪存读取程序代码;
S3、外设模块在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作;
S4、外设模块闪存操作完成后,释放所述忙信号;
S5、CPU在所述忙信号被释放后,恢复继续从所述闪存读取程序代码并往下执行。
在本实施例中,通过单片机包括CPU、闪存和外设模块,所述闪存分别与所述CPU和所述外设模块连接;外设模块在闪存操作时,在时序上生成一条忙信号;CPU在所述忙信号启动后,暂停从所述闪存读取程序代码;外设模块在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作;外设模块闪存操作完成后,释放所述忙信号;CPU在所述忙信号被释放后,恢复继续从所述闪存读取程序代码并往下执行。从而可以在单片机运行期间无需借助烧录器即可对所述闪存中存储的程序代码数据进行在线修改,需要完全摆脱烧录器,满足单片机的CPU一边在线执行闪存上的程序代码,一边在线修改闪存上的存储的程序代码数据的研发需求,使得内部只使用一片闪存的单片机,CPU在执行在线修改闪存数据时,并不会出现有一段时间无法从闪存中读取到程序代码而导致执行出错,使单片机内部的CPU能够方便地在线控制闪存的读写和修改,以解决ROM程序更新需要通过烧录器来进行烧录更新的弊端,提高研发效率,提升用户体验。
在一个实施例中,所述闪存操作包括以下之一的闪存操作:参数设置、时序设置、数据读取、闪存擦写、扇区擦除、字节编程。
所述外设模块在所述CPU的控制下,可以完成参数设置、时序设置、数据读、扇区擦除、字节编程等闪存操作,这些闪存操作可以灵活地进行组合,实现闪存的各种复杂功能。
在一个实施例中,所述步骤S3中,所述外设模块在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作;包括:
所述外设模块支持闪存的读取数据、烧写数据和整块(整页)擦除等功能。所述外设模块可以输出闪存所需要的各种组合信号,比如各种地址值、数据值和各种控制信号,完成闪存的各种功能的操作。
由于在更新闪存数据时,不能更新到正在执行程序所在的扇区,否则,程序很容易跑飞,导致不可以预期的结果。因此,所述外设模块可以不需要支持闪存的全片擦除功能。
在一个实施例中,所述外设模块包括至少一个寄存器,所述寄存器用于提供给所述CPU设置闪存操作的参数,所述闪存操作的参数包括:时序参数、地址参数和闪存数据。其中,所述时序参数包括以下之一:擦除时间的长短、烧录时间的长短、恢复时间的长短。
在所述外设模块中设置修改闪存程序数据所需要的寄存器。闪存运行时需要的各种时序中,有些时序是需要在运行时进行调整的,比如擦除时间的长短、烧录时间的长短、恢复时间的长短等这些时序参数,这些时序参数的设定,是由所述CPU使用所述寄存器来进行设置。读取回来的NVR数据,也通过所述寄存器被所述CPU读取。所述寄存器包括启动位和结束状态位,所述启动位和结束状态位可由所述CPU来进行设置。所述CPU可以通过所述寄存器控制的方式,选择合适的操作灵活地对闪存进行地控制操作。
在一个实施例中,所述步骤S1中,所述外设模块在闪存操作时,在时序上生成一条忙信号;包括:
所述外设模块使用所述寄存器的启动位产生启动状态标记,启动闪存擦写操作,所述外设模块在时序上生成一条忙信号busy,所述忙信号busy可使所述CPU暂停从所述闪存读取程序代码,也不再执行程序代码。
在一个实施例中,所述步骤S2中,所述CPU在所述忙信号启动后,暂停从所述闪存读取程序代码;包括:
在所述忙信号busy启动后,所述CPU不再从所述闪存读取程序代码,也不再执行程序代码;在这期间遇到触发的中断请求,也不再响应所述中断请求。
在一个实施例中,所述步骤S4中,所述外设模块闪存操作完成后,释放所述忙信号;包括:
所述外设模块用于在闪存操作完成后,释放所述忙信号,使所述CPU恢复继续从所述闪存读取程序代码并往下执行;包括:
当闪存擦写操作完成后的时钟周期内,所述外设模块改变闪存控制信号,使闪存恢复到读数据状态。
在闪存擦写操作完成后的下一个周期,所述外设模块使用所述寄存器的结束状态位产生结束状态标记,同时释放所述忙信号,使所述CPU恢复继续从所述闪存读取程序代码并往下执行。
在一个实施例中,所述步骤S5中,所述CPU在所述忙信号被释放后,恢复继续从所述闪存读取程序代码并往下执行;包括:
在闪存擦写操作结束,所述忙信号被释放后,所述CPU开始恢复继续从所述闪存读取程序代码并继续执行;在这期间遇到触发的中断请求,则所述CPU响应所述中断请求。
需要说明的是,上述方法实施例与上述装置实施例属于同一构思,其具体实现过程详见上述装置实施例,且上述装置实施例中的技术特征在所述方法实施例中均对应适用,重复之处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种在单片机运行期间在线更新闪存数据的装置,其特征在于,所述装置包括:单片机,其中:所述单片机包括中央处理器、闪存和外设模块;
所述闪存与所述中央处理器连接,用于存储程序代码;
所述中央处理器用于从所述闪存中读取程序代码并执行;
所述外设模块,分别与所述中央处理器和所述闪存连接,用于进行闪存操作,在闪存操作时,在时序上生成一条忙信号,所述忙信号可使所述中央处理器暂停从所述闪存读取程序代码;并在闪存操作完成后,释放所述忙信号,使所述中央处理器恢复继续从所述闪存读取程序代码并执行;以及用于在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作。
2.根据权利要求1所述的装置,其特征在于,所述闪存操作包括以下之一的闪存操作:参数设置、时序设置、数据读取、闪存擦写、扇区擦除、字节编程。
3.根据权利要求1所述的装置,其特征在于,所述外设模块包括至少一个寄存器,所述寄存器用于提供给所述中央处理器设置闪存操作的参数,所述闪存操作的参数包括:时序参数、地址参数和闪存数据。
4.根据权利要求3所述的装置,其特征在于,所述时序参数包括以下之一:擦除时间的长短、烧录时间的长短、恢复时间的长短。
5.根据权利要求3所述的装置,其特征在于,所述外设模块用于进行闪存操作,在闪存操作时,在时序上产生一条忙信号;包括:
所述外设模块使用所述寄存器的启动位产生启动状态标记,启动闪存擦写操作,所述外设模块在时序上生成一条忙信号,所述忙信号可使所述中央处理器暂停从所述闪存读取程序代码,也不再执行程序代码。
6.根据权利要求5所述的装置,其特征在于,在所述忙信号启动后,所述中央处理器不再从所述闪存读取程序代码,也不再执行程序代码;在这期间遇到触发的中断请求,也不再响应所述中断请求。
7.根据权利要求6所述的装置,其特征在于,所述外设模块用于在闪存操作完成后,释放所述忙信号;包括:
当闪存擦写操作完成后的时钟周期内,所述外设模块改变闪存控制信号,使闪存恢复到读数据状态;
在闪存擦写操作完成后的下一个周期,所述外设模块使用所述寄存器的结束状态位产生结束状态标记,同时释放所述忙信号。
8.根据权利要求7所述的装置,其特征在于,在所述忙信号被释放后,所述中央处理器开始恢复继续从所述闪存读取程序代码并继续执行;在这期间遇到触发的中断请求,则所述中央处理器响应所述中断请求。
9.根据权利要求1所述的装置,其特征在于,所述外设模块还包括信号产生器,所述信号产生器用于在闪存操作期间,输出所述闪存所需要的各种组合信号。
10.一种在单片机运行期间在线更新闪存数据的方法,其特征在于,应用于如权利要求1至9任一项所述的一种在单片机运行期间在线更新闪存数据的装置,所述装置包括:单片机和外设模块;所述单片机包括中央处理器和闪存;所述闪存分别与所述中央处理器和所述外设模块连接;其中,所述方法包括:
外设模块在闪存操作时,在时序上生成一条忙信号;
中央处理器在所述忙信号启动后,暂停从所述闪存读取程序代码;
外设模块在闪存操作期间,输出所述闪存所需要的各种组合信号,完成闪存操作;
外设模块闪存操作完成后,释放所述忙信号;
中央处理器在所述忙信号被释放后,恢复继续从所述闪存读取程序代码并执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111208179.6A CN113641393A (zh) | 2021-10-18 | 2021-10-18 | 一种在单片机运行期间在线更新闪存数据的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111208179.6A CN113641393A (zh) | 2021-10-18 | 2021-10-18 | 一种在单片机运行期间在线更新闪存数据的装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641393A true CN113641393A (zh) | 2021-11-12 |
Family
ID=78427232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111208179.6A Pending CN113641393A (zh) | 2021-10-18 | 2021-10-18 | 一种在单片机运行期间在线更新闪存数据的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641393A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5923838A (en) * | 1996-12-17 | 1999-07-13 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer with built-in flash memory |
US6567930B1 (en) * | 1998-11-13 | 2003-05-20 | Nec Corporation | Method and apparatus for controlling writing of flash EEPROM by microcomputer |
US6636992B1 (en) * | 2000-09-08 | 2003-10-21 | Myson Century, Inc. | Method for renewing program code in an embedded micro-controller unit |
CN1564131A (zh) * | 2004-03-29 | 2005-01-12 | 中兴通讯股份有限公司 | 一种实现单片机软件版本更新的方法和装置 |
US20060077721A1 (en) * | 2004-10-08 | 2006-04-13 | Oki Electric Industry Co., Ltd. | Semiconductor integrated circuit with flash interface |
CN111290772A (zh) * | 2020-03-12 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种更新cpld的方法、系统、设备及介质 |
-
2021
- 2021-10-18 CN CN202111208179.6A patent/CN113641393A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5923838A (en) * | 1996-12-17 | 1999-07-13 | Mitsubishi Denki Kabushiki Kaisha | Microcomputer with built-in flash memory |
US6567930B1 (en) * | 1998-11-13 | 2003-05-20 | Nec Corporation | Method and apparatus for controlling writing of flash EEPROM by microcomputer |
US6636992B1 (en) * | 2000-09-08 | 2003-10-21 | Myson Century, Inc. | Method for renewing program code in an embedded micro-controller unit |
CN1564131A (zh) * | 2004-03-29 | 2005-01-12 | 中兴通讯股份有限公司 | 一种实现单片机软件版本更新的方法和装置 |
US20060077721A1 (en) * | 2004-10-08 | 2006-04-13 | Oki Electric Industry Co., Ltd. | Semiconductor integrated circuit with flash interface |
CN111290772A (zh) * | 2020-03-12 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种更新cpld的方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100549910B1 (ko) | 플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품 | |
KR100444537B1 (ko) | 데이타처리장치 | |
CN100456272C (zh) | 利用快闪存储器引导的系统和方法 | |
US5940861A (en) | Method and apparatus for preempting operations in a nonvolatile memory in order to read code from the nonvolatile memory | |
CN109800012A (zh) | 一种mcu固件升级方法 | |
CN104750531A (zh) | 一种嵌入式系统在线刷新程序的方法 | |
TWI464583B (zh) | 取得觸發功能之指令的方法 | |
CN113641393A (zh) | 一种在单片机运行期间在线更新闪存数据的装置及方法 | |
CN113311931B (zh) | 一种方便iap的双复位向量8位mcu架构及其方法 | |
CN208722090U (zh) | 带有内存参数精确配置功能的嵌入式终端 | |
JP2015162215A (ja) | 半導体装置 | |
US20030018873A1 (en) | Method and system for concurrent updating of a microcontroller's program memory | |
US12169720B2 (en) | System with dynamically selectable firmware image sequencing for production test, debug, prototyping | |
KR19980054349A (ko) | 옵션 자동 설정 회로 | |
CN101840520B (zh) | 一种智能卡及访问智能卡闪存的方法 | |
CN116185299A (zh) | 闪存控制器及相关装置和方法 | |
JP2023156549A (ja) | 半導体装置 | |
JP2007148695A (ja) | 情報処理装置およびブートプログラムの書き換え方法 | |
CN110858145B (zh) | 一种Linux操作系统下BIOS的更新方法和装置 | |
JP2006209451A (ja) | マイクロコンピュータおよびマイクロコンピュータの最適化方法 | |
CN117539558A (zh) | 单片机运行文件的制备方法、系统、装置和存储介质 | |
JP2003131951A (ja) | 不揮発性メモリの制御回路 | |
JP2003288213A (ja) | ブートプログラム記憶装置、電子機器のブートプログラム記憶方法 | |
JPS603658B2 (ja) | デイジタル保護制御装置 | |
KR20070095136A (ko) | 프로그램이 가능한 부팅 지원 장치 및 방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211112 |
|
RJ01 | Rejection of invention patent application after publication |