CN114138333B - 程序加载的方法及相关装置 - Google Patents
程序加载的方法及相关装置 Download PDFInfo
- Publication number
- CN114138333B CN114138333B CN202111426759.2A CN202111426759A CN114138333B CN 114138333 B CN114138333 B CN 114138333B CN 202111426759 A CN202111426759 A CN 202111426759A CN 114138333 B CN114138333 B CN 114138333B
- Authority
- CN
- China
- Prior art keywords
- cpu
- external memory
- program
- loading
- code
- 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例中提供了一种应用于微控制单元MCU芯片的程序加载的方法及相关装置,其中,MCU芯片与外部存储器连接,外部存储器中存储有程序代码,程序代码包括一级代码和二级代码;CPU获取外部存储器的身份标识ID值;CPU在ID检索表中检索ID值;若ID值存在,则CPU可从外部存储器读取将一级代码并加载到RAM中,一级代码中包含了二级代码加载程序;CPU加载完一级代码后,执行加载程序,将二级代码加载到RAM中。本申请实施例采用控制程序加载的方法加载外部存储器中的代码及数据,并借助一级代码中的中断处理函数来使能MIPI的读中断,再加载二级代码和相关数据的方法来提升开机响应速度。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种程序加载的方法及相关装置。
背景技术
程序以二进制代码的形式存储在存储器中,设备通电后,需要通过控制器将待运行的程序从存储器中读入内存,然后由内存执行,完成整个程序加载流程。但由于其片内部存储器容量通常较小,在有大容量存储需求的应用场景,通常使用外接大容量外部存储芯片以满足需求。
在该应用场景下,如果外部存储芯片中的程序加载速度过慢,导致上电时间太长,则设备无法及时响应上位机读取数据的请求。
发明内容
本申请提供一种程序加载的方法及相关装置,以期采用二级加载外部存储器中的代码及数据,通过先加载必要一级代码,并借助代码中的中断处理函数并使能MIPI的读中断,再加载二级代码和相关数据来提升开机响应速度。
第一方面,本申请实施例提供一种程序加载方法,其特征在于,应用于微控制单元MCU芯片,所述MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM,所述MCU芯片与外部存储器连接,所述外部存储器中存储有程序代码,所述程序代码包括一级代码和二级代码;所述方法包括:
所述CPU获取所述外部存储器的身份标识ID值;
所述CPU在ID检索表中检索所述ID值,所述ID检索表存储在所述MCU芯片中,所述ID检索表包括所述外部存储器的厂商ID和设备ID;
若检索结果为所述ID值存在,则所述CPU将所述外部存储器中的所述一级代码加载到所述RAM中,所述检索结果用于指示所述外部存储器为有效存储器,所述一级代码中包含了二级代码加载程序;
所述CPU加载完所述一级代码后,所述CPU执行所述二级代码加载程序,将所述二级代码加载到所述RAM中。
第二方面,本申请实施例提供一种程序加载的装置,其特征在于,包括:
读取单元,所述读取单元用于中央处理器CPU获取外部存储器的身份标识ID值;
检索单元,所述检索单元用于所述CPU在ID检索表中检索所述ID值,所述ID检索表存储在所述MCU芯片中,所述ID检索表包括所述外部存储器的厂商ID和设备ID;
加载单元,所述加载单元用于所述CPU将所述一级代码加载到所述RAM中,所述一级代码中包含了二级代码加载程序;
执行单元,所述执行单元用于所述一级代码加载结束后,所述CPU执行所述二级代码加载程序,将所述二级代码加载到所述RAM中。
第三方面,本申请实施例提供了一种芯片设备,其特征在于,包括:
一个或多个处理器;
一个或多个通信接口,所述通信接口用于进行无线通信,
一个或多个存储器,用于存储程序,
所述存储器和所述通信接口相互连接,并且完成相互间的通信工作;
所述一个或多个存储器和所述程序被配置为,由所述一个或多个处理器控制所述设备执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有用于电子数据交换的计算机程序,计算机程序包括执行指令,执行指令用于执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,计算机程序产品包括计算机程序,计算机程序可操作来使计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,本申请实施例中提供了一种应用于微控制单元MCU芯片的程序加载的方法及相关装置,该MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM。其中,MCU芯片与外部存储器连接,外部存储器中存储有程序代码,程序代码包括一级代码和二级代码;CPU获取外部存储器的身份标识ID值;CPU在ID检索表中检索ID值;若ID值存在,则CPU可从外部存储器将一级代码加载到RAM中,一级代码中包含了二级代码加载程序;CPU加载完一级代码后,执行二级代码加载程序,将二级代码加载到RAM中。本申请实施例采用控制程序加载的方法加载外部存储器中的代码及数据,通过先加载一级代码,并借助一级代码中的中断处理函数来使能MIPI的读中断,再加载二级代码和相关数据来提升开机响应速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种程序加载方法的流程示意图;
图2是本申请实施例提供的一种程序加载装置的场景示意图;
图3是本申请实施例提供的一种程序加载装置的结构示意图;
图4是本申请实施例提供的另一种程序加载装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤的过程、方法、系统、产品或设备没有限定于已列出的步骤,而是可选地还包括没有列出的步骤,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
相关设计中,程序以二进制代码的形式存储在存储器中,芯片设备通电后,需要通过控制器将待运行的程序从存储器中读入内存,然后由内存执行,完成整个程序加载流程。但是,如果存储器中的程序加载速度过慢,导致上电时间太长,则设备无法及时响应上位机读取数据的请求。
针对上述问题,本申请实施例中提供了一种应用于微控制单元MCU芯片的程序加载方法,该MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM。其中,MCU芯片与外部存储器连接,外部存储器中存储有程序代码,程序代码包括一级代码和二级代码;CPU获取外部存储器的身份标识ID值;CPU在ID检索表中检索ID值;若ID值存在,则CPU可从外部存储器读取程序代码,则CPU将一级代码加载到RAM中,一级代码中包含了二级代码加载程序;CPU加载完一级代码后,执行二级代码加载程序,将二级代码加载到RAM中。本申请实施例采用控制程序加载的方法加载外部存储器中的代码及数据,通过先加载一级代码,并借助一级代码中的中断处理函数来使能MIPI的读中断,再加载二级代码和相关数据来提升开机响应速度。
为了更好理解本发明实施例公开的一种程序加载的方法及相关装置,下面对本发明实施例进行详细介绍。
下面先对本发明实施例适用的流程示意图进行描述。请参阅图1,图1是本申请实施例提供的一种程序加载方法,其特征在于,应用于微控制单元MCU芯片,所述MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM,所述MCU芯片与外部存储器连接,所述外部存储器中存储有程序代码,所述程序代码包括一级代码和二级代码。如图1所示,本程序加载方法包括以下操作流程:
具体地,在本方案中,随机存取存储器(random access memory,RAM)可以划分为内部随机存取存储器(internal random access memory,I-RAM)和数据随机存取存储器(data random access memory,D-RAM)。其中,I-RAM为CPU的程序执行的存储空间,其存贮容量为64KB;D-RAM为CPU的数据存放空间,存储容量为32KB。
具体地,外部存储器类型可以有多种,包括但不限于:NorFlash:总线式访问,接到SROM bank,优点是可以直接总线访问,一般用来启动。NandFlash:分为SLC和MLC;本申请实施例中串行外设接口SPI(Serial Peripheral Interface,SPI)作为MCU和外部存储器Nor-flash之间的通信接口,SPI-Nor-Flash是目前市场上基于SPI接口主要的非易失性存储介质。SPI-Nor-Flash作为一种小容量,高性价比的外部存储介质被广泛地应用到物联网设备上。
步骤101,CPU获取外部存储器的身份标识ID值。
实际应用中,终端启动后,由设备来实现少量指令和数据的输入,然后由它们再输入其他程序,这种过程称为引导,执行该操作的程序称之为引导程序。
具体地,将经过地址解码后的CPU的地址线与外部存储器相连,是外部存储器和CPU访问的地址空间产生不同的地址映射,从而建立通信连接。在设备上电后,ROM中的引导程序引导CPU启动。然后,CPU通过控制器向外部存储器发送获取身份标识ID值的指令,以获取外部存储器的ID标识。每一个外部存储器都有唯一的身份标识ID值与之对应,其中该ID值包含了该外部存储器的生产厂商ID和该外部存储器的设备ID。同一生产商的ID对应一致,但是设备ID唯一。
步骤102,CPU在ID检索表中检索该ID值。
具体地,ID检索表存储在MCU芯片中,并且,该ID检索表包括外部存储器的厂商ID和设备ID。MCU芯片会提前封装一个ID检索表,该ID检索表中会有各个厂商ID生产的外部存储器,同时每一个厂商会生产多个外部存储器,每个存储器都有其对应的设备ID作为区分标识。
进一步地,在步骤101中,通过CPU通过控制器获取到的外部存储器的ID值,在检索表中检索当前ID是否存在,以判断当前外部存储器是否为有效存储器。
步骤103,若检索结果为所述ID值存在,则CPU将外部存储器中的一级代码加载到RAM中。
具体地,上述检索结果用于指示该外部存储器为有效存储器,该外部存储器中的一级代码中还包含了二级代码加载程序,则CPU可从当前存储器中获取相应的数据或代码内容。
具体地,外部存储器中存有芯片所需要的程序代码和数据。本方案中将存储器中的代码分为一级代码和二级代码,其中一级代码中包含了二级代码加载程序,二级代码加载程序用于引导加载二级代码至随机存取存储器。
具体地,CPU通过控制器将一级代码加载到RAM中作为CPU的程序执行的存储空间的I-RAM区域。
步骤104,CPU加载完一级代码后,执行二级代码加载程序,将二级代码加载到所述RAM中。
示例性地,CPU将一级代码加载至I-RAM区域后,跳转至该区域。然后执行一级代码中的二级代码加载程序,通过该加载程序将外部存储器中剩余的二级代码和剩余数据加载至内存中。
可以看出,本申请实施例中提供了一种应用于微控制单元MCU芯片的程序加载方法,该MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM。其中,MCU芯片与外部存储器连接,外部存储器中存储有程序代码,程序代码包括一级代码和二级代码;CPU获取外部存储器的身份标识ID值;CPU在ID检索表中检索ID值;若ID值存在,则CPU可从外部存储器读取程序代码,则CPU将一级代码加载到RAM中,一级代码中包含了二级代码加载程序;CPU加载完一级代码后,执行二级代码加载程序,将二级代码加载到RAM中。本申请实施例采用控制程序加载的方法加载外部存储器中的代码及数据,通过先加载一级代码,并借助一级代码中的中断处理函数来使能MIPI的读中断,再加载二级代码和相关数据来提升开机响应速度。
在一个可能的示例中,CPU获取所述外部存储器的身份标识ID值,所述方法包括:系统上电后,所述ROM引导所述CPU启动,所述ROM中包含了所述CPU在上电时需要执行的引导程序;所述CPU向所述外部存储器发送读取所述ID值的指令,以获取所述ID值。
具体地,MCU芯片的ROM中会有一个引导程序BootLoader,BootLoader用于初始化CPU之后,开始执行操作。初始化CPU本身的代码通常称为start-up。
示例性地,在芯片完成正常上电后,需要通过内置的启动引导程序bootloader来加载电子设备的应用程序,以实现用户的正常使用。其中,bootloader是一段固化在放在存储介质中的程序加载代码,连接底层硬件与应用程序。其主要功能是完成处理器与周边电路正常运行的初始化工作,建立内存空间的映射,将系统的软硬件环境带到一个合适的状态,加载闪存中的系统程序,每次上电复位后,都会运行bootloader。
示例性地,CPU在向SPI-Nor-Flash发送读取ID值的指令。具体地,可以通过SPI控制器向SPI-Nor-Flash发送命令,从而避免了无效数据的发送,提高了读ID命令的兼容性。在所读取的ID标识中包含有厂商ID、内存类型和介质容量,当然,也可以通过上述方式以外的方式读取更多的设备ID信息,在此不作限定。
可以看出,本申请实施例中,在正常完成上电后,通过芯片加载启动引导程序启动CPU,完成处理器与周边电路正常运行的初始化工作,建立内存空间的映射,通过向外部存储器发送读取ID值得指令来获取外部存储器的信息,以保证能够根据相关信息来确定外部存储器是否存在,将系统的软硬件环境带到一个合适的状态,能够保证用户可以正常使用电子设备。
在一种可能的示例中,若检索结果为所述ID值不存在,则所述CPU无可读的所述外部存储器,所述引导程序将进入死循环。
具体地,若当前未检索到上述ID值,则表明当前外部存储器为非原装存储器,即外部存储器无效或者为空片,则ROM中的CPU启动引导程序将进入死循环状态。
在另一个可能的示例中,若当前存储器为空片,即识别出当前外部存储器为空,不存在可利用的数据和代码。当前的MCU芯片允许重复读取一定的次数,判断当前flash是否存在,以防止因为一次检索存在误差导致误判。
示例性地,在实际应用中,芯片在电子设备初次上电过程中会读取存储介质中的电压字段数据,送到芯片外部的电源管理器,电源管理器在芯片初始上电前会提供一个标准的电压,在接收到存储介质中的电压字段数据后会调节电压大小。因此,在芯片上电前,引导程序判断存储介质是否为空片状态位,即判断存储介质中是否有电压字段数值。
进一步地该ID检索表中存储有常见的SPI-Nor-Flash的设备ID信息,该ID检索表中设备ID信息至少包括SPI-Nor-Flash的厂商ID和设备ID,判断读取到的该ID值是否存在于预设的ID检索表中。当该厂商ID信息不存在于该ID检索表中时,通过控制器向SPI-Nor-Flash发送写使能命令,可以向该SPI-Nor-Flash写入trim值。
可以看出,本申请实施例中,通过获取到的ID值检验当前存储器是否为有效存储器且不为空,来保证上电后程序加载正确,从而保证数据和代码加载的安全性和稳定性。
在一个可能的示例中,所述外部存储器中还存储有参数配置数据,所述CPU将所述一级代码加载到所述RAM中之前,所述方法还包括:所述CPU从所述外部存储器中读取所述参数配置数据。
具体地,MCU针对外部存储器SPI-NOR Flash会不同的操作,包括但不限于:读操作、写操作和擦除操作等等,MCU与SPI-NOR Flash之间的通信在信号线数量和SPI-NORFlash可寻址的范围大小等方面都会存在差异。
示例性地,不同种类的SPI-NOR Flash之间,往往会因为生产商的不同,存储器的配置参数也会存在一定的差异,SPI-NOR Flash上会有一个区域负责存储各自的参数配置数据。CPU在将一级代码加载到RAM中的I-RAM区域之前,可以先从SPI-NOR Flash中读取这些参数配置信息,该参数配置信息中包括但不限于预设参数、多线模式等,然后根据这些配置信息对SPI-NOR Flash进行相关操作线程安排。
可以看出,本申请实施例中,在建立与外部存储器之间的联系后,可通过控制器获取其中的参数配置信息,进而根据不同的配置信息实现有针对性地对外部存储器的工作进程进行安排。
在一个可能的示例中,所述CPU从所述外部存储器中读取所述参数配置数据之后,所述方法还包括:所述CPU根据所述配置参数配置所述外部存储器的时序,所述时序是指所述外部存储器的读操作、写操作和擦除操作的时序,所述时序相互独立。
示例性地,CPU通过一系列的指令来控制对外部存储器的读、写、擦除等操作。CPU从SPI-NOR Flash中获取到参数配置信息,根据这些配置信息为当前flash型号与多线模式、预设参数;将flash配置为多线命令和多线状态,生效最优配置的多线设置与命令。
进一步地,在一个可能的实施例中,MCU芯片还支持直接内存访问(Direct MemoryAccess,DMA)模式,DMA模式是一种不经过CPU而直接从存储器中存取数据的数据交换模式。在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA模式又可以分为单字节DMA(Single-Word DMA)和多字节DMA(Multi-Word DMA)两种。
示例性地,在DMA模式读写操作之前,根据配置信息预设多线相关的设置,以保证多线读写命令切换。配置完成后,使能DMA加载flash中的程序代码和数据到I-RAM中。
进一步地,对加载进I-RAM的数据进行循环冗余校验(Cyclic Redundancy Check,CRC),验证当前的数据是否正确。CRC校验是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误,是利用除法及余数的原理来做错误侦测的。
可以看出,本申请实施例中,通过获取flash上的配置信息,根据配置信息设置最优配置的多线设置与多线命令,同时还可以通过DMA模式来加载程序代码和数据,利用CRC校验加载后的数据,实现了加载方式的灵活性和安全性。
在一个可能的示例中,所述一级代码还包括移动产业处理器接口MIPI接收端RX的中断处理函数,所述RX用于接收所述MCU芯片发送的数据,并解析出真实数据。
示例性地,如图2所示的一种程序加载装置的场景应用示意图。如图2所示:微控制单元MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM,该MCU芯片与外部存储器连接。其中,外部存储器中存储有程序代码和数据;芯片与上位机显示屏之间通过MIPI RX相连接,上位机通过RX从MCU芯片中读取数据。
进一步地,RX将读取的数据,根据MIPI协议解析出真实数据;将解析后的数据传输至上位机显示屏显示输出。实践应用中,MIPI Rx的主要功能是接收终端设备传输的视频数据,支持MIPI D-PHY、sub-LVDS(Low-Voltage Differential Signal)、HiSPi(High-SpeedSerial Pixel Interface)等不同的串行视频信号输入,并将其处理转化成为内部视频时序,传递给下一个模块处理。MIPI Rx中可以细分为PHY和controller两部分,其中PHY继承了模拟和数字两个部分,主要功能是将串行信号转换为并行信号,而controller则负责解码不同格式的视频数据,然后传输给上位机处理。
可以看出,在本申请实施例中,一级代码中包含有MIPI RX的中断函数,可以通过该中断函数来控制是否响应当前上位机的数据请求,以保证CPU加载外部存储器中的数据的稳定性和效率。
在一个可能的示例中,所述CPU执行所述二级代码加载程序之前,所述方法还包括:所述CPU通过执行所述中断处理函数,中断所述RX从所述MCU芯片读数据的操作,以提高所述二级代码和所述参数配置数据的加载速度。
具体地,外部存储器的程序代码中封装有一些常用场景的功能函数,通过执行程序函数调用相关的功能函数已实现相关操作,例如:MIPI RX的中断处理函数、flash读、写、擦除等操作函数;
进一步地,在CPU正在从外部存储器加载数据过程中,可以通过执行一级代码中的中断函数暂时停止MIPI RX的获取数据请求,即暂时停止响应上位机对于数据的请求,以提高CPU从外部存储器中加载数据和程序代码的效率。
进一步地,数据加载完毕后,还可以利用CRC校验的方式验证当前数据是否正确。若正确,则关闭中断向量请求,重新指定SP和PC指针,跳转到I-RAM中执行程序,完成开机程序的启动,响应上位机请求。
可以看出,本申请实施例中,通过中断函数暂时中断对上位机读取数据的请求,以提高对外部存储器中程序和数据的加载效率,进而保证更快速的开机响应。
与上述图1所示的实施例一致的,请参阅图3,图3是本申请实施例提供的一种程序加载装置结构示意图,如图3所示:
一种程序加载装置,上述装置包括:
301:读取单元,所述读取单元用于中央处理器CPU获取外部存储器的身份标识ID值。
302:检索单元,所述检索单元用于所述CPU在ID检索表中检索所述ID值,所述ID检索表存储在所述MCU芯片中,所述ID检索表包括所述外部存储器的厂商ID和设备ID。
303:加载单元,所述加载单元用于所述CPU将所述一级代码加载到所述RAM中,所述一级代码中包含了二级代码加载程序。
304:执行单元,所述执行单元用于所述一级代码加载结束后,所述CPU执行所述二级代码加载程序,将所述二级代码加载到所述RAM中。
可以看出,本申请实施例中提供了一种应用于微控制单元MCU芯片的程序加载的方法及相关装置,该MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM。其中,MCU芯片与外部存储器连接,外部存储器中存储有程序代码,程序代码包括一级代码和二级代码;CPU获取外部存储器的身份标识ID值;CPU在ID检索表中检索ID值;若ID值存在,则CPU可从外部存储器将一级代码加载到RAM中,一级代码中包含了二级代码加载程序;CPU加载完一级代码后,执行二级代码加载程序,将二级代码加载到RAM中。本申请实施例采用控制程序加载的方法加载外部存储器中的代码及数据,通过先加载一级代码,并借助一级代码中的中断处理函数来使能MIPI的读中断,再加载二级代码和相关数据来提升开机响应速度。
具体地,本申请实施例可以根据上述方法示例对程序加载的装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述图1所示的实施例一致的,请参阅图4,图4是本申请实施例提供的另一种程序加载设备的结构示意图,如图4所示:
一种芯片设备,其特征在于,包括:
一个或多个处理器;
一个或多个通信接口,所述通信接口用于进行无线通信,
一个或多个存储器,用于存储程序,
所述存储器和所述通信接口相互连接,并且完成相互间的通信工作;
所述设备执行如本申请实施例第一方面的任一方法中所描述的部分或全部步骤。
在一个可能的实施例中,在实际应用场景中,上述芯片还可以用于手机换屏场景。
示例性地,上述芯片能够搭载在手机屏幕,通过上述步骤所实现的功能,能够保证换屏后的手机在上电之后,在较短的时间内加载外部存储器中的引导程序和数据,并且提高换屏后的手机程序加载的稳定性和效率。
其中,上述芯片设备作为转码芯片,接收AP端发送的MIPI视频数据,并响应AP的命令。经过降帧率、降分辨率的处理,将数据转换成适配触控与显示驱动器集成(Touch andDisplay Driver Integration,TDDI)显示屏的HD@60Hz的高清视频,再通过MIPI发送视频给屏端。
进一步地,上述芯片设备同时支持触控反馈协议的转换以及屏幕背光调节的协议转换。从触控与显示驱动器集成(Touch and Display Driver Integration,TDDI)反馈回来的触控数据,以及背光调节数据经过码片转换成主芯片支持的格式。上述芯片设备进行的是协议转换,具体的TDDI显示驱动,触控计算等功能都使用单独的芯片完成。
需要说明的是,本实施例中的芯片设备的具体应用场景包括但不限于上述所提及的手机换屏应用场景中。其他场景的应用方式在此不做赘述。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有用于电子数据交换的计算机程序,计算机程序包括执行指令,执行指令用于执行如上述程序加载的方法实施例中记载的任何一种程序加载的方法的部分或全部步骤,上述计算机包括电子终端设备。
本申请实施例提供了一种计算机程序产品,其中,计算机程序产品包括计算机程序,计算机程序可操作来使计算机如上述方法实施例中记载的任何一种程序加载的方法的部分或全部步骤,该计算机程序产品可以是一个软件安装包。
需要说明的是,对于前述的任一种程序加载的方法的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请一种程序加载的方法及相关装置的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请一种程序加载的方法及相关装置的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本申请是参照本申请实施例的方法、硬件产品和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存储器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现所公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域普通技术人员可以理解上述任一种程序加载的方法实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存储器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
可以理解的是,凡是被控制或者被配置以用于执行本申请一种程序加载的方法实施例所描述的流程图的处理方法的产品,如上述流程图的装置以及计算机程序产品,均属于本申请所描述的相关产品的范畴。
显然,本领域的技术人员可以对本申请提供的一种程序加载的方法及装置进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种程序加载方法,其特征在于,应用于微控制单元MCU芯片,所述MCU芯片包括中央处理器CPU、只读存储器ROM和随机存取存储器RAM,所述MCU芯片与外部存储器连接,所述外部存储器中存储有程序代码,所述程序代码包括一级代码和二级代码;所述方法包括:
所述CPU获取所述外部存储器的身份标识ID值;
所述CPU在ID检索表中检索所述ID值,所述ID检索表存储在所述MCU芯片中,所述ID检索表包括所述外部存储器的厂商ID和设备ID;
若检索结果为所述ID值存在,则所述CPU将所述外部存储器中的所述一级代码加载到所述RAM中,所述检索结果用于指示所述外部存储器为有效存储器,所述一级代码中包含了二级代码加载程序;
所述CPU加载完所述一级代码后,所述CPU执行所述二级代码加载程序,将所述二级代码加载到所述RAM中。
2.根据权利要求1所述的方法,其特征在于,所述CPU获取所述外部存储器的身份标识ID值,所述方法包括:
系统上电后,所述ROM引导所述CPU启动,所述ROM中包含了所述CPU在上电时需要执行的引导程序;
所述CPU向所述外部存储器发送读取所述ID值的指令,以获取所述ID值。
3.根据权利要求2所述的方法,其特征在于,所述方法包括:
若检索结果为所述ID值不存在,则所述CPU无可读的所述外部存储器,所述引导程序将进入死循环。
4.根据权利要求1所述的方法,其特征在于,所述外部存储器中还存储有参数配置数据,所述CPU将所述一级代码加载到所述RAM中之前,所述方法还包括:
所述CPU从所述外部存储器中读取所述参数配置数据。
5.根据权利要求4所述的方法,其特征在于,所述CPU从所述外部存储器中读取所述参数配置数据之后,所述方法还包括:
所述CPU根据所述配置参数配置所述外部存储器的时序,所述时序是指所述外部存储器的读操作、写操作和擦除操作的时序,所述时序相互独立。
6.根据权利要求1所述的方法,其特征在于,所述一级代码还包括移动产业处理器接口MIPI接收端RX的中断处理函数,所述RX用于接收所述MCU芯片发送的数据,并解析出真实数据。
7.根据权利要求6所述的方法,其特征在于,所述CPU执行所述二级代码加载程序之前,所述方法还包括:
所述CPU通过执行所述中断处理函数,中断所述RX从所述MCU芯片读数据的操作,以提高所述二级代码和参数配置数据的加载速度,其中,所述参数配置数据存储于所述外部存储器中。
8.一种程序加载的装置,其特征在于,包括:
读取单元,所述读取单元用于中央处理器CPU获取外部存储器的身份标识ID值;
检索单元,所述检索单元用于所述CPU在ID检索表中检索所述ID值,所述ID检索表存储在微控制单元MCU芯片中,所述ID检索表包括所述外部存储器的厂商ID和设备ID,所述MCU芯片包括所述中央处理器CPU、只读存储器ROM和随机存取存储器RAM,所述MCU芯片与外部存储器连接,所述外部存储器中存储有程序代码,所述程序代码包括一级代码和二级代码;
加载单元,所述加载单元用于所述CPU将所述一级代码加载到所述RAM中,所述一级代码中包含了二级代码加载程序;
执行单元,所述执行单元用于所述一级代码加载结束后,所述CPU执行所述二级代码加载程序,将所述二级代码加载到所述RAM中。
9.一种芯片设备,其特征在于,包括:
一个或多个处理器;
一个或多个通信接口,所述通信接口用于进行无线通信,
一个或多个存储器,用于存储程序,
所述存储器和所述通信接口相互连接,并且完成相互间的通信工作;
所述一个或多个存储器和所述程序被配置为,由所述一个或多个处理器控制所述设备执行如权利要求1-7任一项所述的方法中的步骤。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310648598.4A CN116820586A (zh) | 2021-11-27 | 2021-11-27 | 一种程序加载的方法及相关装置和存储介质和程序 |
CN202111426759.2A CN114138333B (zh) | 2021-11-27 | 2021-11-27 | 程序加载的方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111426759.2A CN114138333B (zh) | 2021-11-27 | 2021-11-27 | 程序加载的方法及相关装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310648598.4A Division CN116820586A (zh) | 2021-11-27 | 2021-11-27 | 一种程序加载的方法及相关装置和存储介质和程序 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138333A CN114138333A (zh) | 2022-03-04 |
CN114138333B true CN114138333B (zh) | 2023-04-18 |
Family
ID=80388359
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310648598.4A Pending CN116820586A (zh) | 2021-11-27 | 2021-11-27 | 一种程序加载的方法及相关装置和存储介质和程序 |
CN202111426759.2A Active CN114138333B (zh) | 2021-11-27 | 2021-11-27 | 程序加载的方法及相关装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310648598.4A Pending CN116820586A (zh) | 2021-11-27 | 2021-11-27 | 一种程序加载的方法及相关装置和存储介质和程序 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116820586A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495392B (zh) * | 2022-11-17 | 2023-03-24 | 深圳市楠菲微电子有限公司 | 多级启动中内存复用方法、装置、存储介质和处理器 |
CN116955048B (zh) * | 2023-06-16 | 2024-03-22 | 上海水木蓝鲸半导体技术有限公司 | 芯片校准和调试信息管理的方法、装置及计算机存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062622A (zh) * | 2018-08-21 | 2018-12-21 | 北京无线电测量研究所 | 一种基于远程fpga加载系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095778A1 (en) * | 2012-09-28 | 2014-04-03 | Jaewoong Chung | Methods, systems and apparatus to cache code in non-volatile memory |
CN103064806B (zh) * | 2012-12-31 | 2016-01-06 | 西安奇维科技股份有限公司 | 一种利用cpld控制dsp实现二次启动的方法 |
CN108279935A (zh) * | 2016-12-30 | 2018-07-13 | 北京中科晶上科技股份有限公司 | 一种针对片上系统的操作系统启动引导方法 |
-
2021
- 2021-11-27 CN CN202310648598.4A patent/CN116820586A/zh active Pending
- 2021-11-27 CN CN202111426759.2A patent/CN114138333B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062622A (zh) * | 2018-08-21 | 2018-12-21 | 北京无线电测量研究所 | 一种基于远程fpga加载系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116820586A (zh) | 2023-09-29 |
CN114138333A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102200923B (zh) | 从mmc/sd设备引导主机设备的方法及相关设备 | |
CN114138333B (zh) | 程序加载的方法及相关装置 | |
US5628027A (en) | Method of determining the configuration of devices installed on a computer bus | |
US9411990B2 (en) | Working method of a multi-slot card reader based on the standard CCID protocol | |
KR100988157B1 (ko) | 메모리 디바이스 구성을 검출하기 위한 방법 및 장치와, 메모리 디바이스 구성을 검출하기 위한 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 판독 가능 매체 | |
CN106293832B (zh) | 一种soc芯片引导启动方法及系统 | |
CN110780909A (zh) | 分布式嵌入式系统升级方法及装置 | |
US6954815B2 (en) | Microcomputer with universal serial bus interface circuit and method of controlling the same | |
CN110413331B (zh) | 基于rom的spi nor flash识别方法、装置、系统及存储介质 | |
TWI467579B (zh) | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 | |
US20080235428A1 (en) | Method and system for dynamic switching between multiplexed interfaces | |
CN103440334A (zh) | 移动终端的驱动匹配方法和装置 | |
US8341334B2 (en) | Flash memory apparatus and method for operating the same and data storage system | |
JP5010065B2 (ja) | マイクロコンピュータ | |
CN110362526B (zh) | Spi从机设备、存储和适配方法及计算机存储介质 | |
JP4793798B2 (ja) | マイクロコンピュータ | |
CN101562007A (zh) | 可自动更新韧件的显示控制装置及其更新方法 | |
US8656063B1 (en) | Method of detecting addressing mode and electronic system thereof | |
CN110888689A (zh) | 一种触摸屏驱动的加载方法、存储介质及终端设备 | |
CN114968864B (zh) | 验证环境的搭建方法、芯片的验证方法及系统 | |
CN114579198B (zh) | 内存芯片的启动方法、装置、计算机设备及存储介质 | |
CN112346664B (zh) | 一种数据存储方法、装置、设备及介质 | |
CN112084073B (zh) | 执行写保护指令的检测控制的方法、控制芯片和电子装置 | |
CN116679946A (zh) | 一种固件升级方法及终端 | |
CN115827032A (zh) | 存储器的烧录方法、装置、电子设备及存储介质 |
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 |