CN116243997A - 芯片***及其启动方法、电子设备 - Google Patents
芯片***及其启动方法、电子设备 Download PDFInfo
- Publication number
- CN116243997A CN116243997A CN202211551611.6A CN202211551611A CN116243997A CN 116243997 A CN116243997 A CN 116243997A CN 202211551611 A CN202211551611 A CN 202211551611A CN 116243997 A CN116243997 A CN 116243997A
- Authority
- CN
- China
- Prior art keywords
- memory
- module
- starting
- chip system
- mode
- 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
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
Abstract
提供了一种芯片***及其启动方法、电子设备。该芯片***包括:第一存储器,第一存储器为一次性存储器;第二存储器,第二存储器为可擦除存储器;一级启动模块,位于第一存储器,一级启动模块用于在确定为休眠唤醒模式下,启动休眠唤醒模块;休眠唤醒模块,位于第二存储器,休眠唤醒模块用于使芯片***恢复至休眠模式前的运行状态。本申请实施例将快速唤醒功能放到可擦除存储器中,而不是放入一次性存储器中,后期可以根据需求修改软件功能。本申请实施例有助于减少一次性存储器固化代码的复杂性,提高芯片***的扩展性,也有助于缩短固化软件的开发时间。
Description
技术领域
本申请实施例涉及数据存储技术领域,并且更为具体地,涉及一种芯片***及其启动方法、电子设备。
背景技术
近年来,随着***级芯片的广泛应用,对***级芯片的性能要求也越来越高。芯片的启动多采用两级启动或多级启动方式。两级启动分别称之为一级boot和二级boot,一级boot通常固化在***级芯片的只读存储器(read only memory,ROM)中。***级芯片对休眠唤醒有较高的性能要求,收到唤醒事件,应尽快恢复到正常工作状态,以满足应用需求。
目前快速唤醒模块通常存储于ROM中,在芯片流片后无法修改。而快速唤醒功能通常较复杂、需要实现用户个性化的开发需求,将快速唤醒功能放到固化ROM软件中,增加了固化代码的复杂性,不便于后续扩展。
发明内容
本申请实施例提供一种芯片***及其启动方法、电子设备。下面对本申请实施例涉及的各个方面进行介绍。
第一方面,提供一种芯片***,包括:第一存储器,所述第一存储器为一次性存储器;第二存储器,所述第二存储器为可擦除存储器;一级启动模块,位于所述第一存储器,所述一级启动模块用于在确定为休眠唤醒模式下,启动休眠唤醒模块;所述休眠唤醒模块,位于所述第二存储器,所述休眠唤醒模块用于使所述芯片***恢复至休眠模式前的运行状态。
第二方面,提供一种芯片***的启动方法,所述芯片***包括:第一存储器,所述第一存储器为一次性存储器;第二存储器,所述第二存储器为可擦除存储器;一级启动模块,位于所述第一存储器;休眠唤醒模块,位于所述第二存储器;所述启动方法包括:当所述芯片***上电时,运行所述一级启动模块,以确定所述芯片***的启动模式;如果所述芯片***处于休眠唤醒模式,则运行所述休眠唤醒模块,以使所述芯片***恢复至休眠模式前的运行状态。
第三方面,提供一种电子设备,包括如第一方面所述的芯片***。
本申请实施例将快速唤醒功能放到可擦除存储器中,而不是放入一次性存储器中,后期可以根据需求修改软件功能。本申请实施例有助于减少一次性存储器固化代码的复杂性,增加固化到一次性存储器软件的稳定性,提高芯片***的扩展性,也有助于缩短固化软件的开发时间。
附图说明
图1是本申请实施例提供的芯片***的示意图。
图2是两种启动镜像文件的结构示意图。
图3是图1的芯片***的一种可能的启动方式的流程示意图。
图4是图1的芯片***的另一种可能的启动方式的流程示意图。
图5是图4步骤S3080的一种可能的实现方式的流程示意图。
图6是图4步骤S3090的一种可能的实现方式的流程示意图。
图7是图4步骤S3100的一种可能的实现方式的流程示意图。
图8是本申请实施例提供的芯片***的启动方法的流程示意图。
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
近年来,随着***级芯片的广泛应用,对***级芯片的性能要求也越来越高。芯片的启动是非常重要的一环,芯片启动包括给芯片电路上电、载入芯片启动所需要的固件等。
***级芯片又称为片上***(system on chip,SOC),指一组相互连接的电子电路,是在单个芯片上集成一个完整的***。SoC通常是一个有专用目标的集成电路,其中包含完整***并有嵌入软件的全部内容。SoC可以包括但不限于硬件内核、存储器、***电路和通信接口。硬件内核可以包括各种不同类型的处理器,例如,通用处理器、CPU、数字信号处理器(digital signal processor,DSP)、图形处理单元(graph processing unit,GPU)、加速处理单元(accelerated processing unit,APU)、辅助处理器、单核处理器和多核处理器。此外,硬件内核还可以体现为其它硬件和硬件组合,例如,专用集成电路(applicationspecific integrated circuits,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)、其它可编程逻辑器件、分离门逻辑器件、晶体管逻辑器件、性能监测硬件、看门狗硬件和时间基准等。可以对集成电路进行配置,使得集成电路的部件位于单片的半导体材料(例如硅)上。
固件(firmware)一般存储于只读存储器(read only memory,ROM)、电可擦除只读存储器(electrically erasable programmable ROM,EEPROM)、FLASH芯片中,可由用户通过特定的刷新程序进行升级的程序。通常担任着最基础、最底层工作的软件,可以指设备内部保存的设备“驱动程序”。
目前芯片的启动多采用两级启动或多级启动方式。下面以两级启动进行举例说明。一种芯片(例如VC0728)通过两级启动(boot)加载***,分别称之为一级boot和二级boot,一级boot为bootloader,其固化在SoC的只读存储器(read only memory,ROM)中,ROM的大小为128KB。ROM以非破坏性读出方式工作,只能读出无法写入信息。因此ROM所存数据通常是提前写入的。ROM所存数据稳定,断电后所存数据也不会改变,适用于存储各种固定程序和数据。因此,SoC芯片开发对固化到ROM软件的要求较高,如稳定性高、开发时间短、不能影响芯片的流片时间节点,扩展性要好。
芯片另有32KB的静态随机存取存储器(static random access memory,SRAM)用于引导加载程序(bootloader)的运行。SRAM是随机存取存储器的一种,可以随时读写,而且速度很快。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。
一级boot是芯片上电后运行的第一段代码,主要功能是在开机流程中初始化芯片,并将固态存储介质上保存的二级boot程序加载到内存中运行。固态存储介质例如可以为SPI闪存、SD卡、EMMC等。其中,闪存(Flash)通常可以分为与非闪存(Nand Flash)、与或闪存(Nor Flash),Flash可以采用串行外设接口(serial peripheral interface,SPI)。安全数字卡(secure digital memory card,SD卡)是一种基于半导体快闪存储器的高速存储设备。嵌入式多媒体卡(embedded multimedia card,EMMC)是指由闪存和集成在同一硅片上的闪存控制器组成的封装存储器。
内存可以为动态随机存取存储器(dynamic random access memory,DRAM)、DDR等。DRAM所储存的数据就需要周期性地更新,掉电数据会丢失。
二级boot可以是通用启动(universal boot,U-boot),也可以是操作***内核(如kernel),也可以把U-boot和kernel合在一起打包,形成zImage镜像文件。zImage是压缩的镜像文件。
芯片正常的开机流程为:上电,首先运行一级boot,加载二级boot到内存中;然后运行到用户预设的开机程序,整个过程大约需要10秒钟。这个时间越短,用户体验越好,尤其在一些要求快速启动的应用场景,例如执法仪、停车记录仪等带电池的低功耗产品。
电子产品尤其是带电池的电子产品对低功耗有较高的要求,包括:休眠待机功耗要低,能掉电的模块尽量掉电,不能掉电的模块,尽量少耗电。同时,SoC对休眠唤醒有较高的性能要求,唤醒时间要短,收到唤醒事件,应尽快(如2秒内)恢复到正常工作状态,以满足应用需求。
快速唤醒模块(如wkupImage.bin)具有快速恢复休眠前的场景功能,此场景实现的重要基础是PMU模块是一直带电的,在***进入休眠前对CPU的寄存器值、总线时钟、DDR寄存器值、WAKE_PC地址(恢复场景功能函数地址)等进行保存。
目前快速唤醒模块通常存储于ROM中,当***退出休眠模式时,在一级boot运行阶段,先判断唤醒源,如果是快速唤醒(wakeup),则加载ROM中的快速唤醒模块(wkupImage.bin),并跳转到wkupImage.bin的指定入口函数执行休眠唤醒流程,快速恢复到休眠前的场景。
由于芯片流片之后一次性存储器(如ROM)中的固件无法修改,若ROM存在固件问题,则无法正常启动芯片。而快速唤醒功能通常较复杂、需要实现用户个性化的开发需求,将快速唤醒功能放到固化ROM软件中,增加了固化代码的复杂性,开发难度较大,固化软件开发时间长,不便于后续扩展。
因此,如何开发一种灵活性好的快速唤醒启动方案是需要解决的问题。
基于此,本申请实施例提出一种芯片***。图1是本申请实施例提供的芯片***的示意图。下面结合图1对本申请实施例中的芯片***进行详细介绍。如图1所示,芯片***100可以包括第一存储器110和第二存储器120。
第一存储器110为一次性存储器,如只读存储器(ROM)。第一存储器110所存数据稳定,断电后所存数据也不会改变,适用于存储各种固定程序和数据。芯片流片之后一次性存储器中的程序通常无法修改。
第二存储器120为可擦除存储器。可擦除存储器可以为闪存、SD卡、EMMC、EEPROM等具有可擦除存储功能的存储设备。第二存储器120在***下电后还可以保存数据,可以用于保存镜像程序和数据。
第一存储器110中包括一级启动模块,一级启动模块具有数据读功能。在芯片上电启动时,一级启动模块可以用于在确定为休眠唤醒模式下,启动位于第二存储器120中的休眠唤醒模块。
休眠唤醒模块用于使芯片***恢复至休眠模式前的运行状态。休眠唤醒模块位于第二存储器120中。休眠模式或称为睡眠模式,指芯片***或电脑在不使用的情况下将保存一份桌面及所有打开文件和文档的映像,然后可以直接断开电源。后续启动电源时,文件和文档就会按原来使用时的状态在桌面上还原打开。休眠唤醒或称为睡眠唤醒,本申请实施例对此不作区分。休眠唤醒的唤醒源事件,包括但不限于按键唤醒、PMU通用型输入输出(PMU_GPIO)唤醒、实时时钟(RTC)报警唤醒、定时器(TIMER)定时唤醒等。
一级启动模块通常包含休眠唤醒模块的引导程序(或称为固件),该引导程序用于启动休眠唤醒模块。
第二存储器120通常还包括二级启动模块,二级启动模块用于完成芯片***的初始化。一级启动模块还包含二级启动模块的引导程序(或称为固件),一级启动模块还用于在正常启动模式下加载二级启动模块的引导程序,以运行二级启动模块。如二级启动模块的引导程序(bootloader)位于一级启动模块。
因此,在一些实现方式中,在芯片上电启动时,一级启动模块在确定为休眠唤醒模式下,可以根据休眠唤醒模块的引导程序,从第二存储器120内快速读取预先存储的休眠唤醒模块,并快速写入静态随机存储器(或内存),以启动运行休眠唤醒模块,使芯片***恢复至休眠模式前的运行状态。另外,当休眠唤醒模块更新、参数更改、运行错误时,可以基于休眠唤醒模块自身的编程能力,进行相应的参数修改,以提高芯片运行时参数配置的灵活性,减少了芯片的配置重启次数。
在一些实现方式中,在芯片上电启动时,一级启动模块在确定为正常启动模式下,可以从第二存储器120内快速读取预先存储的二级启动模块,并快速写入静态随机存储器(或内存),以供二级启动模块基于芯片的启动固件,完成芯片的初始化。另外,当芯片更新、参数更改、运行错误时,可以基于二级启动模块自身的编程能力,进行相应的参数修改或者复位启动,以提高芯片运行时参数配置的灵活性,减少了芯片的配置重启次数。
芯片***100可以包括处理器。处理器可以是通用处理器,包括中央处理器、微控制单元、网络处理器或者其它常规处理器。还可以是专用处理器,包括数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
芯片***100可以包括电源管理单元。电源管理单元(power management unit,PMU)是一种控制数字平台电源功能的微控制器。PMU可以包括固件和软件、存储器、输入/输出功能,测量时间间隔的定时器,以及用于测量主电池或电源电压的模数转换器等。即使芯片***完全关闭,由备用电池供电,PMU通常是可以保持活动状态的装置之一。
芯片***100还可以包括第三存储器,第三存储器为静态随机存储器,用于存储芯片***切换为休眠模式时的运行状态信息。如在***进入休眠前把CPU的寄存器值、总线时钟、恢复场景功能函数(WAKE_PC)地址保存到第三存储器(在休眠期间不掉电)中。第三存储器可以为独立的静态随机存储器,也可以为电源管理单元内部的静态随机存储器。
在一些实现方式中,在休眠模式下为进一步节省能耗,可以只有PMU模块带电,其它模块全部掉电,包括处理器。在休眠模式期间,电源管理单元可以使处理器处于掉电状态,同时为启动快速唤醒模式后能够快速恢复到休眠之前的运行状态,电源管理单元可以控制第三存储器处于上电状态,保持第三存储器保存数据的有效性。
芯片***100还可以包括第四存储器,第四存储器为动态随机存储器,用于存储处理器的运算数据,存储芯片运行期间的动态数据。动态随机存储器,例如可以是DRAM、同步动态随机存取存储器(synchronous dynamic random access memory,SDRAM)、双倍数据速度同步动态随机存取存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、DDR2和DDR3等。
在一些实现方式中,在启动快速唤醒模式后为了能够快速恢复到休眠之前的运行状态,电源管理单元还用于在休眠模式下控制第四存储器处于自刷新模式,以保持第四存储器内数据的有效性。
动态随机存储器通常包括自动刷新(auto refresh,AR)与自刷新(self refresh,SR)。AR也称为周期刷新,AR依靠***时钟工作。SR主要用于休眠模式低功耗状态下的数据保存,不再依靠***时钟工作,而是根据内部的时钟进行刷新操作。通常在SR期间除了时钟使能信号(CKE)之外的所有外部信号都是无效的,只有重新使CKE有效才能退出自刷新模式并进入正常操作状态。
本申请实施例将快速唤醒功能放到可擦除存储器中,而不是放入一次性存储器中,后期可以根据需求修改软件功能。本申请实施例有助于减少一次性存储器固化代码的复杂性,增加固化到一次性存储器软件的稳定性,提高芯片***的扩展性,也有助于缩短固化软件的开发时间。
图2中(b)是图1芯片***的一种启动镜像文件的结构示意图。本申请实施例针对休眠快速唤醒实现流程进行优化,将休眠唤醒功能从固化ROM软件分离出来,作为一个独立可执行镜像(wkupImage.bin),与二级boot文件zImage打包成一个启动镜像(boot.img)文件,存储于第二存储器。后期可以根据需求修改软件功能,修改boot.img文件。
图2中(a)是传统芯片***的一种启动镜像文件的结构示意图,传统的boot.img文件通常包括启动信息(如2K Info for Boot)和内核镜像(zImage)文件。如图2(b)所示,与传统的boot.img文件相比,本申请实施例boot.img文件可以包括启动信息(2K Info forBoot)、快速唤醒镜像(wkupImage.bin)和内核镜像(zImage)文件。
其中,启动信息(如2K Info for Boot)的大小可以为2K字节(byte)。2K Info forBoot的内容主要是第二存储器(如SD、NAND Flash、EMMC)驱动的初始化参数,例如时钟频率、分频比、线模式、传输模式等。2K Info for Boot还包括wkupImage.bin和zIamge镜像在存储介质(即第二存储器)的位置、大小、加载到内存的地址、执行地址等。在一些实施例中,2K Info for Boot还包括DDR的初始化参数。2K Info for Boot信息非常重要,在实际的应用过程中通常会有备份,和数据完成性的校验,以免存储数据出错,导致启动失败。
快速唤醒镜像文件为wkImage.bin。wkImage.bin具有快速恢复休眠前的场景功能,此场景实现的重要基础是PMU模块是一直带电的。在***进入休眠前将CPU的寄存器值、总线时钟、DDR寄存器值、恢复场景功能函数(如WAKE_PC)地址等保存到第三存储器,即PMU模块的静态随机存储器中。该静态随机存储器在休眠期间不掉电,使得静态随机存储器数据在休眠期间保持有效状态。在一些实施例中,PMU模块并使***内存(如DDR)进入低功耗自刷新模式,使得DDR数据在休眠期间保持有效状态。
进入休眠时,PMU模块可以控制CPU电源域掉电,实现低功耗休眠。假如在休眠期间接收到唤醒源事件,例如按键唤醒、PMU通用型输入输出(PMU_GPIO)唤醒、实时时钟(RTC)报警唤醒、定时器(TIMER)定时唤醒后,PMU可以控制CPU电源域上电,开始执行固化在ROM中的一级boot流程,读取PMU唤醒源状态寄存器。
如果唤醒源是快速唤醒(wakeup),则加载wkImage.bin到预设的内存地址,并执行wkImage.bin预设的入口地址函数,进入执行快速唤醒功能。并清除唤醒源,以免下次如启动时误判唤醒源,设置DDR物理层(PHY)为正常工作模式,从PMU的静态随机存储器(SRAM)中获取CPU的寄存器值、总线时钟信息、WAKE_PC地址、DDR寄存器值,恢复到对应模块的寄存器中。以使***恢复休眠前的运行状态,退出DDR自刷新模式,运行WAKE_PC地址。具体启动流程下文有详细介绍。
zImage为压缩内核镜像文件,可以包含通用启动(U-boot)和操作***内核(kernel)。在***上电或者开机时,如果判断唤醒源不是快速wakeup,则初始化内存(如DDR),然后从第二存储器中把zImage加载到内存(如DDR)中,并执行预设的zImage地址,完成***的初始化功能。
其中,U-boot是一个主要用于嵌入式***的引导加载程序,可以支持多种不同的计算***结构。U-boot通常可以分为一级boot和二级boot两部分。
图3是图1的芯片***的一种可能的启动方式的流程示意图。图3芯片***的启动文件的结构可以参见图2(b)。图3的启动文件中,休眠唤醒功能作为一个独立的可执行镜像,可以为快速唤醒镜像(wkupImage.bin)文件,与二级启动文件boot一起存储在第二存储器(可擦除存储器)中,后期可以根据需求修改软件功能。
图3的芯片***在休眠模式下,PMU模块可以控制DDR物理层(PHY)的电源端,使DDRPHY在芯片休眠模式期间处于低功耗状态,并控制DDR进行自刷新,保持数据的有效性。芯片退出休眠模式,PMU模块可以控制DDRPHY的电源端,使DDRPHY退出低功耗状态进入工作状态,并使DDR退出自刷新模式。
在一级boot运行阶段,加载二级boot之前,先判断唤醒源。如果是快速唤醒(wakeup),则加载快速唤醒镜像(wkupImage.bin),并跳转到wkupImage.bin的指定入口函数执行休眠唤醒流程。
图3中的快速唤醒启动流程主要可以包括步骤S310至步骤S390,下面对这些步骤进行详细描述。应理解,本申请实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在步骤S310,开始,运行一级启动模块。
在步骤S320,获取唤醒源。
在步骤S330,判断唤醒源是否为快速唤醒?在加载二级启动模块之前,先判断唤醒源。如果是快速唤醒,例如为按键唤醒、PMU_GPIO唤醒、RTC报警唤醒、TIMER定时唤醒启动,则转入步骤S340;如果不是快速唤醒,则转入步骤S390。
在步骤S340,清除唤醒源,以免下次(如启动时)误判唤醒源。
在步骤S350,设置DDR物理层(PHY)处于工作模式。
在步骤S360,从PMU的静态随机存储器(即第三存储器)获取***时钟频率,配置相应的寄存器,控制时钟频率切换。***时钟频率可以包括:处理器ARM的时钟频率、Bus总线的时钟频率、内存(如DDR)的时钟频率等。
在步骤S370,从PMU的静态随机存储器获取DDR控制器的配置寄存器,控制DDR退出自刷新。
在步骤S380,跳转到恢复场景功能函数(即WAKE_PC)地址运行。
在步骤S390,清除唤醒源,设置程序计数器(program counter,PC)为零,即PC=0,以便下次重新启动正常流程。
本申请实施例将快速唤醒功能放到可擦除存储器中,而不是放入一次性存储器中。后期可以根据需求修改软件功能,有助于减少一次性存储器固化代码的复杂性,增加固化到一次性存储器软件的稳定性,提高芯片***的扩展性,也有助于缩短固化软件的开发时间。
图4是图1的芯片***的另一种可能的启动方式的流程示意图。图4芯片***的启动文件的结构可以参见图2(b)。图4的启动文件中,休眠唤醒功能作为一个独立的可执行镜像,可以为快速唤醒镜像(wkupImage.bin),与二级启动文件boot一起存储在第二存储器(可擦除存储器)中,后期可以根据用户需求修改软件功能。
图4中的快速唤醒启动流程主要可以包括步骤S4010至步骤S4160,下面对这些步骤进行详细描述。
在步骤S4010,上电启动。
在步骤S4020,关闭中断,清理关闭缓存(Cache)及内存管理单元(memory manageunit,MMU),搬移代码,将一级启动模块加载到静态存储器(或内存)。
在步骤S4030,进入C环境启动引导函数,如VIM_Boot_Start()函数。
在步骤S4040,初始化时钟频率,如初始化Bus总线的时钟频率、通用异步收发器(universal asynchronous receiver/transmitter,UART)的时钟频率、定时器(Timer)的时钟频率。
在步骤S4050,初始化串口。串口如UART串口。
在步骤S4060,初始化定时器。
在步骤S4070,选择二级boot方式。如果是EMMC启动模式,则进入步骤S4080;如果是SPI NAND闪存启动模式,则进入步骤S4090;如果是SD启动模式,则进入步骤S4100。
在步骤S4080,为EMMC启动模式,根据启动信息(如2K Info for Boot)重新配置EMMC。
在步骤S4090,为SPI NAND闪存启动模式,则根据启动信息(如2K Info for Boot)重新配置NAND闪存。
在步骤S4100,为SD启动模式,根据启动信息(如2K Info for Boot)重新配置SD。
在步骤S4110,判断唤醒源是否为快速唤醒?如果是快速唤醒,例如为按键唤醒、PMU_GPIO唤醒、RTC报警唤醒、TIMER定时唤醒启动,则转入步骤S4120;如果不是快速唤醒,则转入步骤S4140。
在步骤S4120,从对应存储介质中加载快速唤醒镜像到SRAM。例如为SPI NAND闪存启动模式,则从NAND闪存中加载快速唤醒镜像到SRAM。
在步骤S4130,执行快速唤醒镜像(wkImage.bin)上的指定地址。运行快速唤醒模块。
在步骤S4140,初始化DDR控制器。
在步骤S4150,从对应存储介质中加载内核镜像(zImage)文件到DDRAM。例如为SD启动模式,则从SD中加载zImage到DDRAM。
在步骤S4160,执行zImage上的指定地址。运行内核镜像(zImage)文件,完成芯片***的初始化。
下面对图4中的步骤S3080、步骤S3090和步骤S3100展开进一步的详细说明。
图5是图4的步骤S3080的一种可能的实现方式的流程示意图。图5中的EMMC启动模式流程主要可以包括步骤S510至步骤S550,下面对这些步骤进行详细描述。
在步骤S510,EMMC启动。
在步骤S520,进行EMMC初始化。
在步骤S530,从EMMC中尝试启动引导信息(如2K Info for Boot)。
在步骤S540,根据启动引导信息,进行时钟频率切换。
在步骤S550,根据启动引导信息,重新配置EMMC。
图6是图4的步骤S3090的一种可能的实现方式的流程示意图。图6中的SPI NAND闪存启动模式流程主要可以包括步骤S610至步骤S650,下面对这些步骤进行详细描述。
在步骤S610,SPI NAND Flash启动。
在步骤S620,进行NAND Flash初始化。
在步骤S630,从NAND Flash中尝试启动引导信息(如2K info for boot)。
在步骤S640,根据启动引导信息,进行时钟频率切换。
在步骤S650,根据启动引导信息,重新配置NAND Flash参数。
图7是图4的步骤S3100的一种可能的实现方式的流程示意图。图7中的SD启动模式流程主要可以包括步骤S710至步骤S750,下面对这些步骤进行详细描述。
在步骤S710,SD启动。
在步骤S720,初始化SD。
在步骤S730,从SD中尝试启动引导信息(如2K info for boot)。
在步骤S740,根据启动引导信息,进行时钟频率切换。
在步骤S750,根据启动引导信息,重新配置SD参数。
图8是本申请实施例提供的电子设备的结构示意图。该电子设备800可以包括如前文任一所述的芯片***810。
需要说明的是,本申请实施例提及的电子设备可以是指向用户提供语音和/或数据连通性的设备,可以用于连接人、物和机,例如具有无线连接功能的手持式设备、车载设备等。电子设备可以被称为终端、便携式终端、移动终端、通信终端、便携式通信终端、便携式移动终端、触摸屏等。例如,电子设备可以是智能电话、便携式电话、游戏机、电视、显示单元、笔记本计算机、膝上型计算机、个人计算机(personal computer,PC)、个人媒体播放器(personal media player,PMP)、个人数字助理(personal digital assistant,PDA)、移动电源(充电宝、旅充)、无人机、电子书、智能电子设备(例如手表、手环、智能眼镜、扫地机器人等)和小型电子产品(例如无线耳机、蓝牙音响、电动牙刷、可充电无线鼠标)等。电子设备也可以为具有无线通信功能和口袋大小的便携式通信终端。电子设备可以与诸如服务器等的外部电子设备通信,或者通过与外部电子设备的互通来执行操作。
上文结合图1至图8详细描述了本申请的芯片***和设备实施例,下面结合图9详细描述本申请的方法实施例。应理解,方法实施例的描述与***实施例的描述相互对应,因此,未详细描述的部分可以参见前面***实施例。
图9是本申请实施例提供的芯片***的启动方法的流程示意图。该芯片***可以包括第一存储器和第二存储器,第一存储器为一次性存储器,第二存储器为可擦除存储器。一级启动模块位于第一存储器,休眠唤醒模块位于第二存储器。
如图9所示,该启动方法主要可以包括步骤S910至步骤S920,下面对这些步骤进行详细描述。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在步骤S910,当芯片***上电时,运行一级启动模块,以确定芯片***的启动模式。
在步骤S920,如果芯片***处于休眠唤醒模式,则运行休眠唤醒模块,以使芯片***恢复至休眠模式前的运行状态。
可选地,一级启动模块包含休眠唤醒模块的引导程序。本申请实施例的启动方法包括:运行休眠唤醒模块的引导程序,以启动休眠唤醒模块;运行休眠唤醒模块,以使芯片***恢复至休眠模式前的运行状态。
可选地,芯片***可以包括二级启动模块,二级启动模块位于第二存储器。一级启动模块还包含二级启动模块的引导程序。图9的启动方法还包括:如果启动模式为正常启动模式,则运行二级启动模块的引导程序,以启动二级启动模块;运行二级启动模块,以完成芯片***的初始化。
芯片***可以包括:处理器;第三存储器,第三存储器为静态随机存储器;电源管理器。可选地,本申请实施例的启动方法包括:在芯片***切换为休眠模式时,利用第三存储器存储芯片***的运行状态信息;在休眠模式下,控制处理器处于掉电状态,且控制第三存储器处于上电状态。
可选地,芯片***还包括第四存储器,第四存储器为动态随机存储器,用于存储处理器的运算数据。本申请实施例的启动方法还可以包括:在休眠模式下,控制第四存储器处于自刷新模式。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在机器可读存储介质中,或者从一个机器可读存储介质向另一个机器可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述机器可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
应理解,在本申请的各种实施例中,“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请所提供的几个实施例中,应理解,当称某一部分与另一部分“连接”或“相连”时,其意味着该部分不仅可以“直接连接”,而且也可以“电连接”,同时另一个元件介入其中。另外,术语“连接”也意指该部分“物理地连接”以及“无线地连接”。另外,当称某一部分“包含”某一元件时,除非另行加以陈述,否则,其意味着该某一部分可以包括另一元件,而不是排除所述另一个元件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种芯片***,其特征在于,包括:
第一存储器,所述第一存储器为一次性存储器;
第二存储器,所述第二存储器为可擦除存储器;
一级启动模块,位于所述第一存储器,所述一级启动模块用于在确定为休眠唤醒模式下,启动休眠唤醒模块;
所述休眠唤醒模块,位于所述第二存储器,所述休眠唤醒模块用于使所述芯片***恢复至休眠模式前的运行状态。
2.根据权利要求1所述的芯片***,其特征在于,所述一级启动模块包含所述休眠唤醒模块的引导程序,所述引导程序用于启动所述休眠唤醒模块。
3.根据权利要求1所述的芯片***,其特征在于,包括:
二级启动模块,位于所述第二存储器,所述二级启动模块用于完成所述芯片***的初始化;
所述一级启动模块还包含所述二级启动模块的引导程序,所述一级启动模块还用于在正常启动模式下加载所述二级启动模块的引导程序,以运行所述二级启动模块。
4.根据权利要求3所述的芯片***,其特征在于,包括:
处理器;
第三存储器,所述第三存储器为静态随机存储器,用于存储所述芯片***切换为所述休眠模式时的运行状态信息;
电源管理单元,用于在所述休眠模式下控制所述处理器处于掉电状态,且控制所述第三存储器处于上电状态。
5.根据权利要求4所述的芯片***,其特征在于,包括:
第四存储器,所述第四存储器为动态随机存储器,用于存储所述处理器的运算数据;
所述电源管理单元还用于在所述休眠模式下控制所述四存储器处于自刷新模式。
6.一种芯片***的启动方法,其特征在于,所述芯片***包括:
第一存储器,所述第一存储器为一次性存储器;
第二存储器,所述第二存储器为可擦除存储器;
一级启动模块,位于所述第一存储器;
休眠唤醒模块,位于所述第二存储器;
所述启动方法包括:
当所述芯片***上电时,运行所述一级启动模块,以确定所述芯片***的启动模式;
如果所述芯片***处于休眠唤醒模式,则运行所述休眠唤醒模块,以使所述芯片***恢复至休眠模式前的运行状态。
7.根据权利要求6所述的启动方法,其特征在于,所述一级启动模块包含所述休眠唤醒模块的引导程序,所述运行所述休眠唤醒模块,以使所述芯片***恢复至休眠模式前的运行状态,包括:
运行所述休眠唤醒模块的引导程序,以启动所述休眠唤醒模块;
运行所述休眠唤醒模块,以使所述芯片***恢复至休眠模式前的运行状态。
8.根据权利要求6所述的启动方法,其特征在于,所述芯片***包括:
二级启动模块,位于所述第二存储器;
所述一级启动模块还包含所述二级启动模块的引导程序;
所述启动方法还包括:
如果所述启动模式为正常启动模式,则运行所述二级启动模块的引导程序,以启动所述二级启动模块;
运行所述二级启动模块,以完成所述芯片***的初始化。
9.根据权利要求8所述的启动方法,其特征在于,所述芯片包括:
处理器;
第三存储器,所述第三存储器为静态随机存储器;
电源管理器;
所述启动方法还包括:
在所述芯片***切换为休眠模式时,利用所述第三存储器存储所述芯片***的运行状态信息;
在所述休眠模式下,控制所述处理器处于掉电状态,且控制所述第三存储器处于上电状态。
10.根据权利要求9所述的启动方法,其特征在于,所述芯片***包括:
第四存储器,所述第四存储器为动态随机存储器,用于存储所述处理器的运算数据;
所述启动方法还包括:
在所述休眠模式下,控制所述第四存储器处于自刷新模式。
11.一种电子设备,其特征在于,包括如权利要求1-5中任一所述的芯片***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211551611.6A CN116243997A (zh) | 2022-12-05 | 2022-12-05 | 芯片***及其启动方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211551611.6A CN116243997A (zh) | 2022-12-05 | 2022-12-05 | 芯片***及其启动方法、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116243997A true CN116243997A (zh) | 2023-06-09 |
Family
ID=86635454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211551611.6A Pending CN116243997A (zh) | 2022-12-05 | 2022-12-05 | 芯片***及其启动方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116243997A (zh) |
-
2022
- 2022-12-05 CN CN202211551611.6A patent/CN116243997A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11079261B2 (en) | System on a chip with always-on processor | |
US10915160B2 (en) | System on a chip with fast wake from sleep | |
US10261894B2 (en) | System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode | |
US20230236654A1 (en) | System on chip for reducing wake-up time, method of operating same, and computer system including same | |
EP2581826B1 (en) | Method and device for cold starting android mobile terminal | |
US8923088B2 (en) | Solid state storage device with sleep control circuit | |
CN102306048A (zh) | 用于零电压处理器休眠状态的方法和设备 | |
JP6018113B2 (ja) | 不揮発性メモリのデータ消失を防止する方法、コンピュータおよびホスト装置。 | |
JP5705999B2 (ja) | ポータブルコンピューティングデバイス内の割込みコントローラのスリープ状態を管理するための方法およびシステム | |
CN113703799B (zh) | 计算设备及其bios更新方法和介质 | |
KR101936765B1 (ko) | 전자 장치, 마이크로 컨트롤러 및 그 제어 방법 | |
JP2004192350A (ja) | コンピュータ装置、電力管理方法、およびプログラム | |
CN113253824B (zh) | 一种基于risc-v内核的mcu***、供电方法以及终端设备 | |
CN116243997A (zh) | 芯片***及其启动方法、电子设备 | |
JP5913770B2 (ja) | 回転式のディスクを備える記憶装置のパワー・ステートを制御する方法および携帯式コンピュータ | |
CN115981437A (zh) | 一种ddr5内存条上下电方法、装置、设备及介质 |
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 |