发明内容
基于此,有必要针对上述技术问题,提供一种多核芯片的固件部署及执行方法。
第一方面,提供了一种多核芯片的固件部署方法,应用于终端,该方法包括:
获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;
根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片;其中,板端配置文件用于指示芯片配置环境变量和烧录固件,并用于指示芯片基于配置的引导程序和环境变量引导各处理器核启动。
在其中一个实施例中,获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,包括:
展示一芯片配置界面;
响应于在芯片配置界面上对各处理器核的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系;
响应于在芯片配置界面上的总体运行参数录入操作,获取芯片的总体运行参数。
在其中一个实施例中,固件信息包括启动参数,响应于在芯片配置界面上的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系,包括:
响应于在芯片配置界面上对各处理器核的启动参数录入操作,确定每个处理器核的启动参数;
方法还包括:
基于每个处理器核的启动参数,确定引导程序并发送至芯片。
在其中一个实施例中,固件信息还包括固件大小,响应于在芯片配置界面上的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系,包括:
响应于在芯片配置界面上对各处理器核的固件文件选择操作,识别各处理器核对应的固件大小;
板端配置文件包括芯片存储器的分区信息,方法还包括:
基于各处理器核的固件大小,确定分区信息,分区信息用于指导芯片的存储器件的分区和格式化。
在其中一个实施例中,根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片,包括:
响应于在芯片配置界面上的烧录启动动作,根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片。
在其中一个实施例中,固件信息还包括固件存储地址和存储媒介;响应于在芯片配置界面上的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系,包括:
响应于在芯片配置界面上的固件存储地址录入操作和存储媒介选择操作,获取固件存储地址和存储媒介;
基于各处理器核的固件大小,确定分区信息,包括:
基于各处理器核的固件大小、固件存储地址和存储媒介,确定分区信息。
在其中一个实施例中,环境变量包括以下至少一种:每个处理器核的固件存储地址和每个处理器核的启动参数。
第二方面,提供了一种多核芯片的固件执行方法,应用于芯片,该方法包括:
获取板端配置文件;
解析板端配置文件,得到多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;
基于多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,配置环境变量并进行固件烧录;
基于配置的引导程序和环境变量引导各处理器核启动。
在其中一个实施例中,该方法还包括:
解析板端配置文件,得到分区信息;
根据分区信息,进行存储器件的分区和格式化;
基于多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,配置环境变量并进行固件烧录,包括:
根据固件信息将各固件文件烧写至对应的分区;
基于总体运行参数和固件信息配置环境变量;
基于配置的引导程序和环境变量,引导各处理器核启动。
在其中一个实施例中,该方法还包括:
在引导各处理器核启动的过程中,若接收到终端发送的新的引导程序,则基于新的引导程序和环境变量,引导各处理器核启动。
上述多核芯片的固件部署及执行方法,至少具有以下有益效果:
基于用户在界面上的信息录入或其他方式,先获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个所述处理器核所对应的固件文件和固件信息,利用上位机等终端的编译能力,根据所述多核芯片的总体运行参数、所述固件和处理器核的对应关系以及所述固件文件和固件信息,自动确定一能够指导芯片进行固件烧录和核启动控制的板端配置文件,并将该板端配置文件发送至芯片,使芯片基于对该板端配置文件的解析,进行固件的分区烧录以及处理器核启动控制。无需进行固件大小等参数的手动计算,效率高,且配置灵活。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。
在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。
在一个示例性技术中,以赛灵思((Xilinx))公司的Zynq芯片为例,它包含一个FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)和两个ARM(AdvancedRISC Machines)核心,它们都对应不同的二进制固件,用户首先需要根据各个固件的大小规划存储器件中的分区方案以及分区大小,并进行格式化和分区操作,然后使用芯片公司配套的工具将各个固件分别烧写进指定的地址,最后启动搭载芯片的板卡验证效果。
由此可见,示例性技术中进行固件处理的步骤比较多,且操作比较繁琐,调整不灵活。由于依赖人工进行固件分区方案和分区大小的决策,对于初级开发者来说容易出错,例如用户手动计算固件的大小时可能会算错,从而导致分区大小不满足需求。效率低下且容易出错。
此外,随着软件开发工作的深入,固件大小还会变化,用户需要频繁调整分区大小。再例如,如果需要把某个固件的存储媒介从Flash(Flash EEPROM Memory,闪存)改成EMMC(Embedded Multi Media Card,嵌入式多媒体卡),不仅分区和烧写方法需要改变,就连芯片引导程序也需要修改。而且进入设备产品的量产阶段后,该技术方案就不适用了,需要重新设计量产阶段的固件烧写方案。目前的方案还不支持对各个处理器核的启动参数进行修改,也不支持对某些无用处理器核的打开和关闭操作。任何调整都可能需要修改芯片引导程序,不仅加大了用户的开发难度,还加大了研发风险。
所以,目前的固件烧录和启动方案,效率低下易出错,而且不能满足设计生产过程中需求变更时对固件烧录和启动灵活性的要求。
基于以上原因,本发明提供了一种多核芯片的固件部署方法,可应用于如图1所示的环境,终端102与待烧录芯片104连接,例如,可通过以太网或者USB口连接二者。用户可在终端102侧进行每个处理器核对应的固件的选择,也可以在终端102侧指定每个处理器核的开启状态和启动顺序等启动参数,终端102即可获取固件和处理器核的对应关系,通过识别固件文件得到固件大小等信息,进一步可基于用户在终端102侧的配置得到需要配置到芯片的总体运行参数。进而根据这些与固件烧录和处理器核启动控制密切相关的信息生成一板端配置文件至芯片104,终端102通过调用芯片104的管理程序可使芯片104基于该管理程序的运行,对板端配置文件进行解析,基于解析得到的固件信息、固件文件和总体运行参数等,进行固件烧录,并在烧录后基于引导程序进行各处理器核的启动控制,整个过程,无需手动计算固件大小,效率高不易出错,且基于终端102侧的该方法,可灵活对芯片104侧进行固件修改、处理器核启动方案更改等,配置简单,且灵活性强。芯片104可搭载在板上,芯片的引脚可分布在板上,终端102和芯片104的连接,可通过板上的芯片引脚实现。当然,板上也可搭载有与芯片104用于与终端102通信的引脚连接的接口,终端102可直接与该接口连接来实现与芯片104的连接,例如,可以是串行接口等。通过串行接口这种实现方式,可实现快速插拔,方便随时对板上的芯片进行固件的重新烧录和改变处理器核的启动顺序等。当然102和104之间的通信实现,还可基于板上的快速插拔端子实现。
在一个实施例中,芯片上的Flash、EMMC和SD Card中之一可预先内置芯片引导程序。该引导程序可以是通过以太网、USB等高速接口从个人计算机等终端侧获取的。
在一个实施例中,多核芯片的固件部署方法,应用于终端,如图2所示,该方法包括:
S200,获取多核芯片的总体运行参数、固件(firmware)和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息。
固件文件是指包括需要被烧录至处理器核的软件程序的一个文件。固件信息是指指导固件烧录和处理器核启动的信息。例如固件大小、固件对应的处理器核的启动参数等信息。
S400,根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片;其中,板端配置文件用于指示芯片配置环境变量和烧录固件,并用于指示芯片基于配置的引导程序和环境变量引导各处理器核启动。
其中,板端配置文件是指能够指导芯片进行固件分区、固件烧录和处理器核启动的文件。环境变量是指芯片侧进行固件运行时所需依赖的环境参数,例如,可包括总体运行参数、每个处理器核的启动参数、固件大小等维度的数据。环境变量、板端配置文件和固件信息具有对应关系,不过在不同载体(终端和芯片等不同载体)上的数据形式不同,应当理解其内容上具有对应关系,可参照下述实施例中描述代入理解。启动参数可包括处理器核的开启状态(是否要开启)和启动顺序等。确定板端配置文件的动作可理解为终端生成该板端配置文件的过程。
具体的,可基于用户在界面上的信息录入或其他方式,先获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个所述处理器核所对应的固件文件和固件信息,利用上位机等终端的编译能力,根据所述多核芯片的总体运行参数、所述固件和处理器核的对应关系以及所述固件文件和固件信息,自动确定一能够指导芯片进行固件烧录和核启动控制的板端配置文件,并将该板端配置文件发送至芯片,芯片可基于对该板端配置文件的解析,进行环境参数配置、固件的分区烧录以及处理器核启动控制。无需进行固件大小等参数的手动计算,效率高,且配置灵活。本申请实施例提供的固件部署方法适用于在多核处理器上的软件部署。对于同构多核芯片,也可基于应用场景下的实际设计需求,利用上述固件部署方法,在各处理器核上部署不同的操作系统。
尤其是对于异构多核芯片来说,采用本申请实施例提供的上述固件部署方法,可快速在不同的处理器核部署不同的操作系统,效率高且不易出错,且基于设计需求的变化,可灵活改变在各处理器核上的部署。
在其中一个实施例中,S200,获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,如图3所示,包括:
S220,展示一芯片配置界面;芯片配置界面是指可以对固件烧录所需要配置的信息进行录入和修改的界面。录入的方式包括但不局限于通过触摸屏或键盘、鼠标等输入设备直接在相应的文本框内输入内容以及基于界面上各项信息给出的可选内容进行选择的方式。展示芯片配置界面,可以是基于用户指定的芯片和板卡类型来确定。基于芯片和板卡类型可确定其处理器核的数量和总体运行参数的数据维度,基于处理器核的数量和总体运行参数的数据维度,可确定芯片配置界面需要呈现的选项内容。例如,如图4所示的一六核类型的芯片,其主要涉及的总体运行参数为CPU主频和DDR频率,所以展示如图4所示的一芯片配置界面供用户选择。
S240,响应于在芯片配置界面上对各处理器核的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系;
S260,响应于在芯片配置界面上的总体运行参数录入操作,获取芯片的总体运行参数。
本申请中对于录入的描述,本领域技术人员可理解为包括对已有内容的修改情况。例如,芯片配置界面上的总体运行参数已经配置好,此时可响应于该芯片配置界面上的一些总体运行参数修改动作,得到新的总体运行参数。界面上各内容的录入均可参照此处举例理解,不再赘述。
为更好的说明本申请基于芯片配置界面进行固件部署所需信息的获取过程,在此以图4所示的界面进行举例说明,但本领域技术人员应当理解,上述实施例中,对于固件信息和总体运行参数的内容包括但不限于该图中给出的示例。
用户可基于该芯片配置界面上进行各个处理器核的固件选择,例如,以图示的六核芯片来说,对于处理器核CPU0~CPU5,可分别对其处理器核是否开启、存储媒介、存储地址和启动顺序、固件文件进行录入和选择。也可以对芯片的总体运行参数,例如图示的CPU(central processing unit,中央处理器)主频和DDR频率(双倍速率同步动态随机存储器频率)进行录入。
可在终端102侧建立固件库,固件库中存储多个固件文件供选择。可如图所示,对CPU0这一处理器核,点击“选择固件”图标,在固件库中选择需要的固件文件。根据芯片设计需求,可在芯片配置界面进行存储媒介的选择,如NorFlash、EMMC和SD Card等存储媒介中择一选择。还可确定存储地址。
启动顺序的录入,可基于如图所示的选择方式实现,还可以基于对各处理器核所在位置的拖动来确定,基于拖动后处理器核所在的位置,越靠近芯片配置界面顶部的启动顺序越靠前。
以上述方式,用户可通过在芯片配置界面上的一系列录入操作,使终端102可获取到多核芯片的总体运行参数、固件和处理器核的对应关系以及每个所述处理器核所对应的固件文件和固件信息。
在一个可实现方式中,该方法还包括:
响应于在芯片配置界面上的保存配置操作,保存已配置的总体运行参数和处理器核对应的固件文件和固件信息。这样,可避免界面关闭导致的数据丢失,再次打开该芯片配置界面时,可默认显示上次保存的上述信息,提高配置效率。
在一个实现方式中,当“选择固件”图标被点击时,触发显示固件库界面;
响应于用户在固件库界面的固件文件选定操作,确定处理器核对应的固件文件以及固件和处理器核的对应关系。
需要说明的是,图示的具体参数设置仅在于给出一具体示例帮助理解,同一芯片板卡,在不同应用场景下,可通过芯片配置界面配置不同的内容实现芯片在该应用场景下所需的功能。
在其中一个实施例中,芯片104侧的引导程序支持读取和写入环境变量,并按照环境变量指定的方式来进行存储器分区格式化、存储器烧写读取、芯片运行参数设置以及处理器内核引导等操作。所以终端102可基于对芯片104侧的管理程序的调用,基于管理程序改变引导程序内容,从而实现环境变量的写入和修改,以及固件烧写读取和处理器核启动等。
在其中一个实施例中,固件信息包括启动参数,S240,响应于在芯片配置界面上的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系,如图5所示,包括:
S242,响应于在芯片配置界面上对各处理器核的启动参数录入操作,确定每个处理器核的启动参数;
方法还包括:
S300,基于每个处理器核的启动参数,确定引导程序并发送至芯片。
基于引导程序可支持读取和写入环境变量,且终端102和芯片104具有该通信连接关系,可在终端102侧进行启动参数的配置,并基于用户配置的启动参数确定引导程序发送至芯片,以便芯片104侧的引导程序进行环境变量修改和引导固件烧录和芯片总体运行参数配置以及处理器核的启动控制。可以在烧录前发送该引导程序给芯片,也可以在芯片侧启动处理器核的过程中发送一新的引导程序给芯片,让其基于新的引导程序执行上述过程。即支持引导程序的灵活修改。
在其中一个实施例中,固件信息还包括固件大小,S240,响应于在芯片配置界面上的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系,如图6所示,包括:
S242,响应于在芯片配置界面上对各处理器核的固件文件选择操作,识别各处理器核对应的固件大小;
板端配置文件包括芯片存储器的分区信息,方法还包括:
S320,基于各处理器核的固件大小,确定分区信息,分区信息用于指导芯片的存储器件的分区和格式化。
板端配置文件中还可以包括指示芯片的存储器件进行分区和格式化的分区信息,存储器件的分区主要和固件大小有关系,所以,可基于固件文件选择操作,利用终端102的编译识别能力,识别处理器核对应的固件大小,并进一步得到分区信息。例如,可基于各处理器核的固件大小和设计约束规则确定分区信息,设计约束规则是指包括约定的存储媒介优先级以及固件和存储空间匹配关系的规则。例如,若芯片侧没有EMMC的时候,固件需要全部存储在NorFlash中。又例如NorFlash较小时,则需要将较大的固件存储在EMMC中。
在其中一个实施例中,S400,根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片,如7所示,包括:
S420,响应于在芯片配置界面上的烧录启动动作,根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片。
烧录启动动作可以是通过点击如图4所示界面上的“开始烧录”图标实现的,也可以是其他动作。只要识别到该烧录启动动作,即进行板端配置文件的生成和发送。通过此实现方式,可在开启烧录前,多次进行固件文件和其他估计信息的选择和修改。
在其中一个实施例中,固件信息还包括固件存储地址和存储媒介;S240,响应于在芯片配置界面上的固件文件选择操作和固件信息录入操作,获取每个处理器核所对应的固件文件和固件信息以及固件和处理器核的对应关系,如图8所示,包括:
S246,响应于在芯片配置界面上的固件存储地址录入操作和存储媒介选择操作,获取固件存储地址和存储媒介;
S320,基于各处理器核的固件大小,确定分区信息,包括:
S322,基于各处理器核的固件大小、固件存储地址和存储媒介,确定分区信息。
在其中一个实施例中,环境变量包括以下至少一种:每个处理器核的固件存储地址和每个处理器核的启动参数。
为更好的说明本申请实施例的实现过程,在此以一具体示例进行说明,但不对本申请的保护范围造成限制:
用户在终端里选择每个处理器核对应的固件,并指定各个处理器核的开启状态以及启动顺序;然后用户在终端配置芯片的总体运行参数,包括CPU频率、DDR频率以及总线频率等。
终端基于固件文件识别所有固件的大小、格式等固件信息,按照设计约束条件自动生成分区信息,即固件存储方案;然后终端根据分区信息,调用芯片的管理程序对芯片上Flash、EMMC、SD Card等存储器件进行分区和格式化。
终端根据各处理器核的开启状态和启动顺序等启动参数,调用板卡上的管理程序修改芯片端的各处理器核的开启状态和启动顺序等环境变量,并配置芯片的引导程序。
终端根据芯片的总体运行参数,调用芯片的管理程序修改环境变量,配置芯片的总体运行参数。
芯片上电后,芯片引导程序根据环境变量来顺序引导各个处于打开状态的处理器核;在启动过程中,用户还可以通过串口输入、芯片管脚输入等方式更改芯片引导程序的启动过程,使芯片引导程序进入shell命令行状态,以便用户介入。
另一方面,提供了一种多核芯片的固件执行方法,应用于芯片104,如图9所示,该方法包括:
S20,获取板端配置文件;
S40,解析板端配置文件,得到多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;
S60,基于多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,配置环境变量并进行固件烧录;
S80,基于配置的引导程序和环境变量引导各处理器核启动。
其中,关于固件信息、总体运行参数等名词释义与上述方法实施例中相同,不再赘述。具体的,可通过以太网接口、USB接口等类型的接口接收从终端102侧发送的板端配置文件,通过解析该板端配置文件,可得到芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息。这些信息是进行固件烧录和芯片启动所需的关键信息,其中,根据这些关键信息可以配置环境变量,例如,可根据固件信息中的启动参数,可以改变芯片侧各个处理器核的开启状态和启动顺序等环境变量。示例性的,可以是终端102根据固件信息,调用芯片上的引导程序以修改环境变量。当配置完环境变量,即可将固件文件烧录至各处理器核对应的存储器件中,实现固件烧录。固件烧录完成,当芯片上电时,引导程序根据环境变量引导各处理器核的启动。例如,根据环境变量按照启动顺序依次引导各个处于打开状态的处理器核,并使芯片进入shell命令运行状态,方便接收用户命令。
需要说明的是,获取板端配置文件,可以从上述实施例中的终端102侧获取。其获取还可以是还可以是通过将所有固件文件存储到Flash/EMMC/SD Card中,基于用户基于芯片相关引脚进行手动修改启动程序,来获得的板端配置文件,以实现启动顺序和芯片参数配置的目的。
在其中一个实施例中,如图10所示,该方法还包括:
S30,解析板端配置文件,得到分区信息;
S50,根据分区信息,进行存储器件的分区和格式化;
S60,基于多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,配置环境变量并进行固件烧录,包括:
S62,根据固件信息将各固件文件烧写至对应的分区;
S64,基于总体运行参数和固件信息配置环境变量。
类似上述终端侧方法实施例的描述,板端配置文件中包括分区信息,通过解析该配置文件,可得到分区信息,基于分区信息科进行存储器件的分区和格式化处理,然后根据固件信息将固件文件烧写至相应的分区,完成各处理器核的固件烧录。为保证芯片可运行,基于总体运行参数和固件信息配置环境变量,例如,配置芯片侧的CPU频率、DDR频率以及总线频率等环境变量,并基于固件信息中的启动参数,配置个处理器核的启动顺序和开启状态(是否启动),并配置引导程序。基于配置结果,引导程序根据环境变量引导各处理器核的启动。
在其中一个实施例中,该方法还包括:
在引导各处理器核启动的过程中,若接收到终端发送的新的引导程序,则基于新的引导程序和环境变量,引导各处理器核启动。在启动过程中,用户还可以根据终端102和芯片的连接实现方式,通过串口输入、芯片管脚输入等方式更改芯片引导程序的启动过程,使芯片引导程序进入shell命令行状态,以便用户介入。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请实施例提供的上述方法,可灵活实现各处理器核的差异化配置(如固件文件选择和固件信息配置)和芯片总体运行参数配置。为提高安全性,固件配置后,需要对固件进行校验。基于上述可视化实现方式,可方便进行固件升级和恢复等操作,通过固件文件的重新选择和烧录即可实现。
此外,可以让用户更便利的使用芯片中尽可能多的处理器核;还可灵活配置修改各处理器核运行的操作系统及其启动顺序;方便地进行固件升级和芯片内核运行配置。使用户不用关心由于多核异构特性带来的各类使用问题,通用性强,适用于不同场景下的芯片设计。
综上,本申请可大幅降低用户操作的难度,降低误操作的概率,提升研发效率,还可减少用户定制多核芯片启动时的代码修改量,降低开发难度。通过上位机的图形化界面以及固件大小的自动化识别,将现有方案中的人工计算固件分区大小、设置启动顺序等操作完全由图形化界面配置来完成,最终由终端通过高速接口,控制芯片的引导程序来实现对应功能。
基于终端侧的多核芯片的固件部署方法相同的构思,本申请还提供了一种多核芯片的固件部署装置,应用于终端,如图11所示,该装置包括:
信息获取模块200,用于获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;
固件烧录和启动控制模块400,用于根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片,板端配置文件用于指示芯片配置环境变量和烧录固件,并用于指示芯片基于配置的引导程序和环境变量引导各处理器核启动。
关于装置中的各名词释义与上述方法中相同,在此不做赘述。具体的,信息获取模块200获取多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;并将这些信息发送至固件烧录和启动控制模块400,然后固件烧录和启动控制模块400根据多核芯片的总体运行参数、固件和处理器核的对应关系以及固件文件和固件信息,确定板端配置文件并发送至芯片,芯片基于对板端配置文件的解析,配置环境变量并烧录固件,然后基于配置的引导程序和环境变量引导各处理器核启动。
基于芯片侧的多核芯片的固件执行方法相同的构思,本申请还提供了一种提供了一种多核芯片的固件执行装置,应用于芯片,如图12所示,该装置包括:
板端配置文件获取模块20,用于获取板端配置文件;
解析模块40,用于解析板端配置文件,得到多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;
环境变量配置和烧录模块60,用于基于多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,配置环境变量并进行固件烧录;
处理器核启动执行模块80,用于基于配置的引导程序和环境变量引导各处理器核启动。
其中,芯片104侧的装置实施例的名词释义可参照上述方法实施例中的描述,在此不做赘述。
具体的,通过板端配置文件获取模块20获取板端配置文件并发送至解析模块40;解析模块40解析板端配置文件,得到多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息;然后环境变量配置和烧录模块60基于多核芯片的总体运行参数、固件和处理器核的对应关系以及每个处理器核所对应的固件文件和固件信息,配置环境变量并进行固件烧录;最后,由处理器核启动执行模块80基于配置的引导程序和环境变量引导各处理器核启动。
关于多核芯片的固件执行装置的具体限定可以参见上文中对于多核芯片的固件执行方法的限定,在此不再赘述。上述多核芯片的固件执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。且上述多核芯片的固件执行装置中还包括其他功能模块和单元来实现上述方法实施例中的其他步骤,并实现相应的功能。
上述各模块可以硬件形式内嵌于或独立于终端中的处理器中,也可以以软件形式存储于终端中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一个实施例中,提供了一种终端,该终端可以是一种终端,其内部结构图可以如图13所示。该终端包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种多核芯片的固件部署及执行方法。该终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端的输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端,包括存储器和处理器,处理器用于与芯片通信连接,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述多核芯片的固件部署方法的部分或全部步骤,实现上述方法实施例中的全部有益效果。
在一个实施例中,提供了一种多核芯片,包括存储器和至少两个处理器核,存储器存储有计算机程序,各处理器核之间通信连接,至少一个处理器核执行计算机程序时实现上述多核芯片的固件执行方法的步骤,并实现上述方法的有益效果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述多核芯片的固件部署方法和/或固件执行方法的部分或全部步骤,并实现相应的有益效果。
在其中一个实施例中,提供了一种计算机程序产品,其上存储有计算机程序,计算机程序被处理器执行时实现上述多核芯片的固件部署方法和/或固件执行方法的部分或全部步骤,并实现相应的有益效果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。