CN115098176A - 一种芯片启动引导和程序升级的方法及芯片架构 - Google Patents

一种芯片启动引导和程序升级的方法及芯片架构 Download PDF

Info

Publication number
CN115098176A
CN115098176A CN202210874905.6A CN202210874905A CN115098176A CN 115098176 A CN115098176 A CN 115098176A CN 202210874905 A CN202210874905 A CN 202210874905A CN 115098176 A CN115098176 A CN 115098176A
Authority
CN
China
Prior art keywords
chip
program
module
memory
upgrade
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
Application number
CN202210874905.6A
Other languages
English (en)
Other versions
CN115098176B (zh
Inventor
张琪
刘俭
涂龙
徐超
李正平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Spacetouch Ltd
Original Assignee
Zhuhai Spacetouch Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Spacetouch Ltd filed Critical Zhuhai Spacetouch Ltd
Priority to CN202210874905.6A priority Critical patent/CN115098176B/zh
Publication of CN115098176A publication Critical patent/CN115098176A/zh
Application granted granted Critical
Publication of CN115098176B publication Critical patent/CN115098176B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种芯片启动引导和程序升级的方法及芯片架构,该方法根据芯片的升级请求管脚与升级比特位确定此次芯片启动是否需要进行固件烧录,若需要进行固件烧录,则进入固件烧录的流程。若无需进行固件烧录,则对非易失性存储器上的用户程序进行有效性和完整性检测。若有效性和完整性检测通过,则跳转到用户程序。若有效性和完整性检测不通过,则进入固件烧录的流程。本发明还提供实现上述芯片启动引导和程序升级的方法的芯片架构。本发明的芯片启动引导和程序升级的方法覆盖芯片的启动引导和程序烧录两个核心场景,适配的使用场景多样且控制手段丰富。本发明的芯片架构模块化程度高,复杂度低。

Description

一种芯片启动引导和程序升级的方法及芯片架构
技术领域
本发明涉及信息技术领域,具体是涉及一种芯片启动引导和程序升级的方法及芯片架构。
背景技术
由于RISC-V指令集具有开源、低成本、模块化、面积小、速度快和功耗低等优点和潜质,基于32位RISC-V指令集处理器内核的芯片非常契合物联网市场多元化和碎片化的应用场景,有望在包含物联网在内的新兴边缘领域取得可观的竞争优势。
目前,32位RISC-V指令集处理器内核的芯片处于快速发展期,指令集以外的芯片应用流程缺少统一的标准,同时由于32位RISC-V指令集处理器内核的芯片主要面向功耗和成本敏感的物联网市场,有限的算力往往不支持操作系统和对应文件系统的运行,因此在硬件规格和软件规模受限的前提下,由于缺少符合其定位且具有标准化潜力的软件流程,导致32位RISC-V指令集处理器内核的芯片的推广应用受到限制。
发明内容
本发明的第一目的是提供一种适配场景全且控制手段丰富的芯片启动引导和软件升级方法。
本发明的第二目的是提供一种实现上述芯片启动引导和软件升级方法的芯片架构。
为了实现上述的第一目的,本发明提供的一种芯片启动引导和程序升级的方法,其中,包括:S1:读取升级请求管脚的第一数字逻辑电平;S2:根据第一数字逻辑电平判断是否需要进入固件烧录流程,如是,进入固件烧录流程;如否,执行步骤S3;S3:读取数据寄存器的升级比特位的第二数字逻辑电平;S4:根据第二数字逻辑电平判断是否需要进入固件烧录流程,如是,复位第二数字逻辑电平,进入固件烧录流程;如否,继续执行步骤S5;S5:读取非易失性存储器中的用户程序的标签信息;S6:根据标签信息中的数据有效标识判断非易失性存储器是否有效,如否,进入固件烧录流程;如是,继续执行步骤S7;S7:根据标签信息中的数据段信息标注判断非易失性存储器中的用户程序是否完整,如否,进入固件烧录流程;如是,执行步骤S8;S8:跳转到非易失性存储器的用户程序开始执行。
由上述方案可见,本发明根据升级请求管脚、数据寄存器、用户程序的标签信息理解用户本次执行引导程序的请求意图,在启动引导和程序升级之间做出判断,并相应地进入启动引导或程序升级的步骤,覆盖了芯片出厂后的首次程序烧录、已烧录用户程序的芯片的常规引导启动、已烧录用户程序意外损毁下的处置、用户通过控制升级请求管脚的逻辑电平发起的程序烧录请求、用户程序发起的程序升级请求各个场景,且能够通过硬件触发或软件配置的方式,灵活设置执行场景功能的时机,适配场景全面,控制手段丰富。
进一步的方案是,在芯片上电冷启动或芯片复位后,开始执行步骤S1。
进一步的方案是,进入固件烧录流程后,判断存储卡管理模块是否与可识别的存储卡处于连接状态,如是,获取存储卡内的第一程序文件,将第一程序文件写入到非易失性存储器,复位芯片。
进一步的方案是,进入固件烧录流程后,初始化USB模块和/或串口模块,等待与上位机连接;在USB模块与上位机连接后,从上位机获取第二程序文件,将第二程序文件写入到非易失性存储器,复位芯片;或者在串口模块与上位机连接后,从上位机获取第二程序文件,将第二程序文件写入到非易失性存储器,复位芯片。
进一步的方案是,在USB模块与上位机连接后,关闭串口模块;或者在串口模块与上位机连接后,关闭USB模块。
进一步的方案是,执行步骤S8时,跳转到非易失性存储器的基地址开始执行。
进一步的方案是,在执行步骤S1前,读取数据寄存器中的快速启动比特位的第三数字逻辑电平;根据第三数字逻辑电平判断是否需要快速启动,如否,执行步骤S1;如是,复位第三数字逻辑电平,跳转到非易失性存储器的用户程序开始执行。
为了实现上述的第二目的,本发明提供的一种实现上述芯片启动引导和程序升级的方法的芯片架构,其中,包括:处理器内核、存储器模块、数据通信模块、全局寄存器模块、复位管理模块以及通用输入输出模块;处理器内核分别连接存储器模块、数据通信模块、全局寄存器模块、复位管理模块以及通用输入输出模块;复位管理模块连接通用输入输出模块;存储器模块包括非易失性存储器、只读存储器以及随机存取存储器;全局寄存器模块包括数据寄存器;通用输入输出模块包括升级请求管脚;只读存储器存储引导程序,处理器内核执行引导程序时实现步骤S1至步骤S8的方法。
由上述方案可见,本发明的模块化程度高且复杂性低。
进一步的方案是,处理器内核为32位RISC-V处理器内核。
附图说明
图1是本发明的芯片架构实施例的结构示意图。
图2是本发明的芯片启动引导和软件升级方法第一实施例的流程图。
图3是本发明的芯片启动引导和软件升级方法第一实施例的引导程序实现的流程图。
图4是本发明的芯片启动引导和软件升级方法第一实施例的引导程序中的固件烧录的流程图。
图5是本发明的芯片启动引导和软件升级方法第一实施例中用户程序、第一程序文件及第二程序文件的格式示意图。
图6是本发明的芯片启动引导和软件升级方法第二实施例的引导程序实现的流程图。
图7是本发明的芯片启动引导和软件升级方法第三实施例的引导程序实现的流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明的“第一”、“第二”、“第三”仅用于区分同类事物,不具有先后次序的含义。
芯片架构实施例:
参见图1,本实施例的芯片架构1包括处理器内核11、存储器模块12、数据通信模块13、全局寄存器模块14、复位管理模块15以及通用输入输出模块16;处理器内核11分别连接存储器模块12、数据通信模块13、全局寄存器模块14、复位管理模块15以及通用输入输出模块16。复位管理模块15还连接通用输入输出模块16。
处理器内核11为32位RISC-V处理器内核,能够从存储器模块12中获取RISC-V指令集所定义的指令内容并顺序执行。处理器内核11具体执行的内容见下方芯片启动引导和程序升级的方法实施例。可以理解,在其他实施例中,可以是其他指令集的处理器内核。
存储器模块12包括只读存储器(ROM)121、随机存取存储器(RAM)122与非易失性存储器123,其中非易失性存储器123为闪存(Flash)。只读存储器121从其首地址开始,记录着一段二进制机器码格式的可执行RISC-V引导程序,其内容在芯片的设计阶段确定,在芯片的生产阶段被烧录,具有非易失性和不可修改性。闪存用于存储芯片在正常使用中所执行的RISC-V用户程序以及其他相关数据,可以接受读写操作,具有非易失性。随机存取存储器用于放置只读存储器的引导程序与闪存中的用户程序运行时所需要的数据,具有易失性。
数据通信模块13包括存储卡管理模块131、串口(UART)模块132、USB模块133,其中存储卡管理模块131为SD卡(SecureDigital Card)管理模块。SD卡管理模块可以对SD卡数据进行读操作。串口模块132与USB模块133均可与上位机连接,上位机为PC主机,从PC主机接收程序文件。
全局寄存器模块14包括一个32位可供处理器内核11通过引导程序和/或用户程序进行读写的数据寄存器(Global Register),且全局寄存器模块14本身需置于常开电源域(Always-On Domain)下,使其数据只有在芯片断电的条件下才能够重置。
复位管理模块15为芯片内部能够复位芯片的功能模块,在芯片需要复位时,该功能模块能够输出一个全局复位信号至处理器内核以及其他可能的外设模块使得芯片复位。全局复位信号由多个其他复位信号决定,复位管理模块15可以是根据复位请求管脚的输入以及其自身的寄存器上的控制位的状态输出全局复位信号。处理器内核11可以通过运行引导程序或用户程序时,根据引导程序或用户程序控制复位管理模块15输出全局复位信号,也可以是复位管理模块15在读取到通用输入输出模块16上的复位请求管脚上的低电平信号时输出全局复位信号。芯片复位的效果除全局寄存器14仍保持既有数据外,应与芯片冷启动上电的效果相同。
通用输入输出模块16包括两组具备数字输入功能的管脚,分别为复位请求管脚和升级请求管脚,复位请求管脚与升级请求管脚通过芯片内部上拉电阻在静态时处于高电平的输入状态,将复位请求管脚设置为低电平可以独立触发芯片的复位动作,复位的效果同样是除全局寄存器14仍保持既有数据,其他效果与芯片冷启动上电的效果相同。升级请求管脚的具体作用见下方芯片引导和程序升级的方法第一实施例,在此不再赘述。
芯片启动引导和程序升级的方法第一实施例:
本实施例的芯片启动引导和程序升级的方法基于上述芯片架构实施例的芯片架构实现。参见图2,芯片启动引导和程序升级的方法首先执行步骤S21,芯片上电或复位后开始工作。具体的是,当芯片通过上电的方式冷启动,或者通过输入输出模块的复位请求管脚进行复位操作,或者通过引导程序控制复位管理模块进行复位操作,或者通过用户程序控制复位管理模块进行复位操作,芯片将指针(PC)初始化为只读存储器的首地址。
接着执行步骤S22,执行引导程序。引导程序存储在只读存储器的首地址,当执行完步骤S21后,引导程序开始工作,进行功能请求判断,即引导程序会根据固有逻辑对本次芯片进入引导程序的目的进行辨识,若为启动引导,则控制指针跳转到闪存的基地址,执行步骤S23。若为程序升级,则需要进行固件烧录,通过存储卡管理模块或数据通讯模块获取二进制格式的第一程序文件或第二程序文件,并将第一程序文件或第二程序文件写入到闪存的基地址起始的空间,随后执行复位操作,再重新执行步骤S22。
具体的是,参照图3,首先执行步骤S221,读取升级请求管脚的第一数字逻辑电平。升级请求管脚的第一数字逻辑电平默认处于高电平。
继续执行步骤S222,根据第一数字逻辑电平判断是否需要进入固件烧录流程,即判断第一数字逻辑电平是否处于低电平。如是,则说明此时芯片需要进入固件烧录流程从而使得用户程序可被写入到闪存中,即执行步骤S31。否则,继续执行步骤S223。
该步骤使得芯片可以被其他主控芯片通过控制其特定输入输出模块的升级请求管脚的方式,在该主控芯片确定的时机被动执行用户程序的更新升级。
固件烧录流程:
执行步骤S31时,参照图4,首先执行步骤S311,判断是否读取到SD卡的第一程序文件。具体的是,判断存储卡管理模块是否与可识别的SD卡处于连接状态,若SD卡存在,则按照对FAT32文件系统的访问方式,查询约定名称的第一程序文件(例如flash_image.V40),并获取其文件长度信息。若存在第一程序文件,则执行步骤S319,将第一程序文件写入到闪存中,具体的是,从闪存的基地址原样写入第一程序文件。否则,则确定此时无法通过SD卡获取第一程序文件,执行步骤S312。
接着执行步骤S312,等待上位机的通信。具体的是,初始化USB模块与串口模块,等待与上位机的连接。上位机为PC主机。
然后执行步骤S313,判断USB模块是否与上位机握手成功。如是,则执行步骤S320,关闭串口模块,避免后续USB模块从上位机获取第二程序文件时受到串口模块的影响。如否,则继续执行步骤S314。
然后执行步骤314,判断串口模块与上位机是否握手成功。如是,继续执行步骤S315。如否,则回到步骤S311。
然后执行步骤S315,关闭USB模块。避免后续USB模块影响串口模块与上位机的通信。
然后执行步骤316,接收上位机传输的第二程序文件。具体的是,通过约定的数据流格式从上位机接收第二程序文件。
然后执行步骤S317,将第二程序文件写入到闪存中。将第二程序文件原样写入到闪存中,具体的是,从闪存的基地址开始写入。
最后执行步骤S318,复位芯片。具体的是,通过上位机操作系统提供的功能(如文件系统API),准确获得第二程序文件在PC机上的存储位置和实际长度,因此上位机可以在完成指定长度的第二程序文件数据发送后,判定写入完成,然后通知引导程序执行通过复位管理模块复位芯片。可以理解,芯片复位后,处理器内核的指针回到只读存储器的首地址,即步骤S21。
若无需固件烧录,则继续执行步骤S223,读取数据寄存器的升级比特位的第二数字逻辑电平。升级比特位的第二数字逻辑电平默认处于低电平。
然后执行步骤S224,根据第二数字逻辑电平判断是否需要进入固件烧录流程,即判断升级比特位的第二数字逻辑电平是否为高电平。如是,则说明此时芯片需要进入固件烧录流程,将第二数字逻辑电平设置为低电平后,进入固件烧录流程,即执行步骤S31。否则,执行步骤S225。
该步骤的设计使得用户程序可以自行发起程序升级的请求,适合(1)通用输入输出模块的管脚中的升级请求和(或)复位请求不便使用的场景,如管脚缺乏有效的控制手段:无开关、无主控等场景;(2)要求芯片具有OTA能力的场景。
然后执行步骤S225,读取闪存的用户程序的标签信息。具体的是,参照图5,用户程序按照标签、用户程序段、自定义数据段的先后顺序组成,用户程序的标签信息即标签的各个数据标签。标签由若干32比特宽度的数据标签依次排列构成,对用户程序段以及自定义数据段的相关信息进行记录。用户程序段为二进制格式的RICS-V指令机器码,通过RISC-V工具链对用户程序源代码进行编译链接和格式转换后生成,是芯片完成启动引导后执行的完整用户程序内容。自定义数据段用于放置特定芯片方案应用场景所需的用户数据,如音频回放数据集、神经网络参数集等。需要说明的是,用户程序必须包括标签段与用户程序段。第一程序文件与第二程序文件的格式均与用户程序的格式相等,在烧录的过程中,第一程序文件或第二程序文件直接不改动地写入到闪存中。
标签的各个数据标签定义如下:
跳转码(jump code):此标签内容为RISC-V基础整数指令集(RV32I)中定义的jal指令“jalrd, offset”,其中rd寄存器指定为x0寄存器,offset数值为从当前地址跳转到用户程序段中用户程序入口地址所需的偏移量。由于jal指令的定义,offset最多提供1MB的地址前进偏移量。当用户程序写入闪存后,标签段的跳转码位于闪存的基地址,当RISC-V处理器内核的指针跳转到闪存的基地址执行,将读取到跳转码中预定义的jal指令,从而再次跳转,进入用户程序段开始执行预期中的用户程序。
通过这种机制,此方法定义的用户程序自身具备了良好的可执行性,极大简化了程序升级流程,升级的动作固定为将此格式的第一程序文件或第二程序文件烧录至芯片的闪存的基地址起始的连续区域,用户程序将在每次指针跳转至闪存的基地址时开始执行。
数据有效标识(validation tag):此标签内容为约定的4字节固定数据,例如0x40565053,即字符S、P、V的ascii码值和十六进制数0x40的组合。芯片的启动引导程序通过读取闪存的基地址偏移4字节位置的4字节数据,并将其与数据有效标识所约定的固定数据进行比对,初步判断当前闪存的基地址是否存在有效的用户程序内容:因为对于完成了程序升级的芯片,其闪存的存储内容与用户程序相对应,其Flash基地址偏移4字节的位置将与用户程序的结构相同,为约定的数据有效标识。反之,例如出厂状态的芯片,其闪存区域为默认值(例如0xFF),引导程序读取数据有效标识将返回0xFFFFFFFF,与预定的标识不符,引导程序将进入固件烧录步骤,准备用户程序的首次烧录。
标签段长度(tag size):此标签用于记录标签段的整体长度,以字节为单位。
用户标志位(user flag):此32比特长度数据可用于面向用户程序的功能请求交互,其中比特位或位域可以被约定为特定含义,用户程序在通过读取该用户标志位,从而决定自定的特定逻辑分支。
固件版本号(version):此标签用于记录用户程序的版本号。
烧录目标标识(target ID):此标签用于记录用户程序适配的目标芯片的标识。
数据加密类型(encryption type):此标签用于标识用户程序是否预加密,以及加密算法的类型。
段落数目(section counts):此标签用于记录包含用户程序段和自定义数据段在内的全部数据段的数目。
数据段信息标注(information block of section x):对于包含用户程序段和自定义数据段在内的每个数据段,都存在一个针对其的信息标注,即用户程序段信息标注和自定义数据段信息标注,每个段的信息标注由4个4字节数据构成,分别为该数据段的(A)段名称,(B)段起始地址,为绝对地址形式,(C)段长度,以字节为单位,和(D)校验和(CheckSum)。对于完成过程序文件烧录的芯片,通过(B)(C),引导程序可以从指定地址起始获取该数据段的全部有效数据,并自行计算该数据段的校验和,通过将当前校验和的计算结果与(D)中的原始记录值进行比较,引导程序可以判断当前闪存中存储的数据段有效数据是否存在改动,从而决定后续的逻辑分支。结合段落数目(section counts)标签的记录值N,程序可以通过下式:闪存的基地址 + 4*8 + 4*4*n (n = 0至N-1)访问到每个数据段的信息标注。具体计算校验和的方式可以是将该数据段的每个字节视为一个无符号整数,对其进行累加求和操作,并将保留计算结果的低32位作为该数据段的校验和。
然后执行步骤S226,根据标签信息中的数据有效标识判断非易失性存储器中的程序是否有效,即判断数据有效标识是否为预设固定数据。由于数据有效标识为预设固定数据,每一用户程序中的数据有效标识中的预设固定数据均相同,引导程序记录了该预设固定数据,若此时读取到的预设固定数据中的内容与引导程序记录的预设固定数据不同,则说明芯片中的闪存上不存在有效的用户程序。例如出厂状态的芯片,其闪存中数据有效标识中的内容为默认值(例如0xFF)。则此时执行步骤S31,进入固件烧录流程,完成芯片出厂后的首次烧录。否则说明此时芯片的闪存上存在有效的用户程序,继续执行步骤S227。
然后执行步骤S227,根据标签信息中的数据段信息标注判断非易失性存储器中的用户程序是否完整,即根据数据段信息标注计算校验和,并判断根据数据段信息标注计算得到的校验和与用户程序的数据段信息标注上记录的校验和是否相等,用户程序的数据段信息标注上记录的校验和在源程序编译后被PC主机根据起始地址与长度计算后写入到数据段信息标注。若根据数据段信息标注计算得到的校验和与用户程序的数据段信息标注上记录的校验和相等,则表明用户程序是完整的,可以继续执行步骤S228。若不相等,则说明用户程序的数据不完整,无法保证安全执行,此时执行步骤S31,进行固件烧录。
最后执行步骤S228,跳转到非易失性存储器的用户程序开始执行。具体的是,控制指针跳转到闪存的基地址。
控制指针跳转到闪存的基地址后,执行步骤S23,执行用户程序。
综上,上述芯片启动引导和软件升级的方法展示了对芯片出厂后的首次程序烧录、已烧录用户程序的芯片的常规引导启动、已烧录用户程序意外损毁下的处置、用户通过控制升级请求管脚的逻辑电平发起的程序烧录请求、用户程序发起的程序升级请求多个场景下的自动处置逻辑,充分考虑了芯片不同的工作状态和场景需求,可以从外部硬件控制和内部用户程序软件控制的角度,自由发起对芯片执行流程的控制和调整,具有优秀的功能完备性和通用性。
芯片启动引导和程序升级的方法第二实施例:
参照图6,本实施例与第一实施例的区别点在于,在执行步骤S221前,还执行步骤S411与步骤S412。具体的是,执行步骤S411时,读取数据寄存器中的快速启动比特位的第三数字逻辑电平。第三数字逻辑电平默认为低电平。然后执行步骤412,判断第三数字逻辑电平是否处于高电平。当第三数字逻辑电平为高电平时,表示此时需要快速进入用户程序,此时引导程序将该第三数字逻辑电平设置为低电平,然后控制指针跳转到闪存的基地址,即跳转到步骤S228。
快速启动比特位的设置使得闪存上的用户程序在执行的过程中,可以根据实际的场景需求和时间,通过控制芯片复位管理模块,触发芯片的复位操作。在触发芯片的复位操作前,用户程序将数据寄存器中的快速启动比特位设置为高电平,由于数据寄存器处于常开电源域,此时的芯片复位操作不会影响快速启动比特位的数字逻辑电平,使得本次进行复位操作后可以快速启动,迅速回到用户程序,节省第一实施例中对闪存的用户程序的校验和比对所消耗的时间。同时,在将指针跳转到闪存的用户程序前将快速启动比特位置0,从而关闭快速启动请求的声明。用户程序可以自行根据场景要求主动开启和请求快速启动的功能。
应用本实施例的芯片可以根据自身的运行状态分析,由用户程序主动请求快速复位并尽快进入既有用户程序执行,使芯片能够从不利的工作状态中快速恢复。
芯片启动引导和程序升级的方法第三实施例:
参照图7,本实施例与第二实施例的区别点在于,在执行步骤S412后,若第三数字逻辑电平处于高电平,不执行步骤S228,而是执行步骤S223,读取数据寄存器的升级比特位的第二数字逻辑电平,以及执行步骤S224,判断第二数字逻辑电平是否处于高电平,若为低电平,则执行步骤S228,若为高电平,则执行步骤S31,进行固件烧录。

Claims (9)

1.一种芯片启动引导和程序升级的方法,其特征在于,包括:
S1:读取升级请求管脚的第一数字逻辑电平;
S2:根据第一数字逻辑电平判断是否需要进入固件烧录流程,如是,进入所述固件烧录流程;如否,执行步骤S3;
S3:读取数据寄存器的升级比特位的第二数字逻辑电平;
S4:根据所述第二数字逻辑电平判断是否需要进入所述固件烧录流程,如是,复位所述第二数字逻辑电平,进入所述固件烧录流程;如否,执行步骤S5;
S5:读取非易失性存储器中的用户程序的标签信息;
S6:根据所述标签信息中的数据有效标识判断所述非易失性存储器是否有效,如否,进入所述固件烧录流程;如是,执行步骤S7;
S7:根据所述标签信息中的数据段信息标注判断所述非易失性存储器中的用户程序是否完整,如否,进入所述固件烧录流程;如是,执行步骤S8;
S8:跳转到所述非易失性存储器的用户程序开始执行。
2.如权利要求1所述的芯片启动引导和程序升级的方法,其特征在于:
在芯片上电冷启动或所述芯片复位后,开始执行步骤S1。
3.如权利要求2所述的芯片启动引导和程序升级的方法,其特征在于:
进入所述固件烧录流程后,判断存储卡管理模块是否与可识别的存储卡处于连接状态,如是,获取所述存储卡内的第一程序文件,将所述第一程序文件写入到所述非易失性存储器,复位所述芯片。
4.如权利要求2所述的芯片启动引导和程序升级的方法,其特征在于:
进入所述固件烧录流程后,初始化USB模块和/或串口模块,等待与上位机连接;
在所述USB模块与所述上位机连接后,从所述上位机获取第二程序文件,将所述第二程序文件写入到所述非易失性存储器,复位所述芯片;或者在所述串口模块与所述上位机连接后,从所述上位机获取所述第二程序文件,将所述第二程序文件写入到所述非易失性存储器,复位所述芯片。
5.如权利要求4所述的芯片启动引导和程序升级的方法,其特征在于:
在所述USB模块与所述上位机连接后,关闭所述串口模块;或者
在所述串口模块与所述上位机连接后,关闭所述USB模块。
6.如权利要求1所述的芯片启动引导和程序升级的方法,其特征在于:
执行步骤S8时,跳转到所述非易失性存储器的基地址开始执行。
7.如权利要求1至6任一项所述的芯片启动引导和程序升级的方法,其特征在于:
在执行步骤S1前,读取所述数据寄存器中的快速启动比特位的第三数字逻辑电平;
根据所述第三数字逻辑电平判断是否需要快速启动,如否,执行所述步骤S1;如是,复位所述第三数字逻辑电平,跳转到所述非易失性存储器的用户程序开始执行。
8.一种实现上述权利要求1至7任一项所述的芯片启动引导和程序升级的方法的芯片架构,其特征在于,包括:
处理器内核、存储器模块、数据通信模块、全局寄存器模块、复位管理模块以及通用输入输出模块;所述处理器内核分别连接所述存储器模块、所述数据通信模块、所述全局寄存器模块、所述复位管理模块以及所述通用输入输出模块;所述复位管理模块连接所述通用输入输出模块;
所述存储器模块包括所述非易失性存储器、只读存储器以及随机存取存储器;
所述全局寄存器模块包括所述数据寄存器;
所述通用输入输出模块包括所述升级请求管脚;
所述只读存储器存储有引导程序,所述处理器内核执行所述引导程序时实现步骤S1至所述步骤S8的方法。
9.如权利要求8所述的芯片架构,其特征在于:
所述处理器内核为32位RISC-V处理器内核。
CN202210874905.6A 2022-07-25 2022-07-25 一种芯片启动引导和程序升级的方法及芯片架构 Active CN115098176B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210874905.6A CN115098176B (zh) 2022-07-25 2022-07-25 一种芯片启动引导和程序升级的方法及芯片架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210874905.6A CN115098176B (zh) 2022-07-25 2022-07-25 一种芯片启动引导和程序升级的方法及芯片架构

Publications (2)

Publication Number Publication Date
CN115098176A true CN115098176A (zh) 2022-09-23
CN115098176B CN115098176B (zh) 2023-02-21

Family

ID=83297818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210874905.6A Active CN115098176B (zh) 2022-07-25 2022-07-25 一种芯片启动引导和程序升级的方法及芯片架构

Country Status (1)

Country Link
CN (1) CN115098176B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503857A (zh) * 2014-12-30 2015-04-08 宁波江东波莫纳电子科技有限公司 一种计算机开机启动管理控制系统
CN106293832A (zh) * 2016-08-09 2017-01-04 上海盈方微电子有限公司 一种soc芯片引导启动方法及系统
US20170154009A1 (en) * 2015-12-01 2017-06-01 Intel Corporation Method for interface initialization using bus turn-around
CN111008033A (zh) * 2019-10-30 2020-04-14 中国航空工业集团公司洛阳电光设备研究所 一种基于串口的通用dsp在线升级系统及升级方法
CN112286590A (zh) * 2020-10-20 2021-01-29 苏州中科全象智能科技有限公司 一种基于rtc芯片的fpga重新加载固件系统及方法
CN112379901A (zh) * 2020-11-04 2021-02-19 深圳市科信通信技术股份有限公司 单片机固件升级方法、装置、计算机设备及存储介质
CN112527341A (zh) * 2019-09-19 2021-03-19 合肥杰发科技有限公司 一种车机系统升级方法、车机系统及计算机存储介质
CN114064132A (zh) * 2021-09-30 2022-02-18 中科创达软件股份有限公司 一种系统宕机恢复方法、装置、设备和系统
CN114138295A (zh) * 2021-10-13 2022-03-04 深圳市鸿合创新信息技术有限责任公司 一种电子设备的应用程序固件升级方法、装置及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503857A (zh) * 2014-12-30 2015-04-08 宁波江东波莫纳电子科技有限公司 一种计算机开机启动管理控制系统
US20170154009A1 (en) * 2015-12-01 2017-06-01 Intel Corporation Method for interface initialization using bus turn-around
CN106293832A (zh) * 2016-08-09 2017-01-04 上海盈方微电子有限公司 一种soc芯片引导启动方法及系统
CN112527341A (zh) * 2019-09-19 2021-03-19 合肥杰发科技有限公司 一种车机系统升级方法、车机系统及计算机存储介质
CN111008033A (zh) * 2019-10-30 2020-04-14 中国航空工业集团公司洛阳电光设备研究所 一种基于串口的通用dsp在线升级系统及升级方法
CN112286590A (zh) * 2020-10-20 2021-01-29 苏州中科全象智能科技有限公司 一种基于rtc芯片的fpga重新加载固件系统及方法
CN112379901A (zh) * 2020-11-04 2021-02-19 深圳市科信通信技术股份有限公司 单片机固件升级方法、装置、计算机设备及存储介质
CN114064132A (zh) * 2021-09-30 2022-02-18 中科创达软件股份有限公司 一种系统宕机恢复方法、装置、设备和系统
CN114138295A (zh) * 2021-10-13 2022-03-04 深圳市鸿合创新信息技术有限责任公司 一种电子设备的应用程序固件升级方法、装置及系统

Also Published As

Publication number Publication date
CN115098176B (zh) 2023-02-21

Similar Documents

Publication Publication Date Title
KR100671153B1 (ko) 디바이스 드라이버 설치방법
US7421573B2 (en) Apparatus and method for updating firmware
US20080126584A1 (en) System and Method for Receiving Control Commands at a Peripheral Device
CN114003538B (zh) 一种智能网卡的识别方法及智能网卡
US20190286817A1 (en) Method and Apparatus For Vetting Universal Serial Bus Device Firmware
CN111857776A (zh) Dsp板卡类的应用程序的在线升级方法
EP1347373A2 (en) Apparatus for processing instructions of different instruction set architectures
CN110780908A (zh) 屏幕显示程序升级方法、系统及终端设备
US20230315213A1 (en) Program download method for intelligent terminal and intelligent terminal
CN104035757A (zh) 基于MIPS处理器的u-boot移植的实现方法
US20040225874A1 (en) Method for reduced BIOS boot time
CN115098176B (zh) 一种芯片启动引导和程序升级的方法及芯片架构
CN108694052B (zh) 一种固件升级方法、固件升级装置及固件升级系统
EP1220149B1 (en) Entertainment device, data processing device and portable storage device
JP3385844B2 (ja) 自動販売機
WO2022017242A1 (zh) 在第一系统运行第二系统应用的方法、装置、设备及介质
CN111857785B (zh) 一种mcu的启动方法、装置及终端设备
KR100385184B1 (ko) 컴퓨터 및 컴퓨터의 운영체계 정보 자동 설정 방법
KR100223844B1 (ko) 옵션 자동 설정 회로
CN102184115B (zh) 升级系统软件的方法及终端设备
CN115033182A (zh) 一种处理方法及装置
US6754726B1 (en) Versatile memory chip programming device and method
KR100837742B1 (ko) 데이터 통신 케이블을 이용한 모바일 데이터 복구 장치 및그 방법
KR100505700B1 (ko) 엠시유를 이용하여 다양한 목표 시스템을 검증하는 재탑재에뮬레이션 장치, 이를 구비한 마이크로 컴퓨터 개발시스템, 및 그 방법
CN111641419B (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