CN109960520A - 程序加载方法、装置及电子设备 - Google Patents
程序加载方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109960520A CN109960520A CN201711426222.XA CN201711426222A CN109960520A CN 109960520 A CN109960520 A CN 109960520A CN 201711426222 A CN201711426222 A CN 201711426222A CN 109960520 A CN109960520 A CN 109960520A
- Authority
- CN
- China
- Prior art keywords
- chip
- program
- data packet
- bootloader
- initialization
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
-
- 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
-
- 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
Abstract
本发明实施例涉及互联网技术领域,具体而言,涉及一种程序加载方法、装置及电子设备。该方法应用于linux系统中的主芯片,所述主芯片能够与所述linux系统中的至少一个从芯片进行数据交互,该方法包括:获得更新之后的程序数据包,将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化,将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动,将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。采用该方法、装置及电子设备,能改善分布式系统在产生坏块时不易修复和更新的问题。
Description
技术领域
本发明实施例涉及互联网技术领域,具体而言,涉及一种程序加载方法、装置及电子设备。
背景技术
随着物联网技术和网络技术的发展,基于linux系统的嵌入式设备越来越普及,很多使用场景也对嵌入式设备提出了更高的需求,为了满足这些需求,目前采用分布式架构设计出了更高性能的设备,使用多个CPU同时工作,这种分布式系统在启动时需要加载u-boot程序。
目前对u-boot程序进行加载的方法大多采用存储芯片(NAND Flash)烧录u-boot后贴片,在存储芯片产生坏块时会导致u-boot程序的数据丢失,不易进行修复和更新。
发明内容
有鉴于此,本发明提供了一种程序加载方法、装置及电子设备,以改善现有技术中分布式系统在产生坏块时不易修复和更新的问题。
为实现上述目的,本发明实施例提供了一种程序加载方法,应用于linux系统中的主芯片,所述主芯片能够与所述linux系统中的至少一个从芯片进行数据交互,所述方法包括:
获得更新之后的程序数据包;
将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化;
将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动;
将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。
可选地,所述从芯片为海思芯片,将bootloader加载至所述至少一个从芯片的步骤,包括:
通过海思Fastboot协议将所述bootloader加载至所述至少一个海思芯片。
可选地,将启动数据发送至完成初始化的所述至少一个从芯片的步骤,包括:
获得完成初始化的所述至少一个海思芯片的从秘钥和芯片信息;
根据所述芯片信息计算得到主秘钥;
判断所述主秘钥与所述从秘钥是否匹配,若匹配,采用所述主秘钥对所述启动数据进行加密,并将加密后的启动数据发送至完成初始化的所述至少一个海思芯片。
可选地,所述方法还包括:
若根据所述芯片信息计算主秘钥失败,重新获得完成初始化的所述至少一个海思芯片的芯片信息,根据重新获得的芯片信息重新计算主秘钥。
可选地,所述芯片信息包括位置信息和芯片条码;根据所述芯片信息计算得到主秘钥的步骤,包括:
根据所述位置信息和所述芯片条码计算得到所述主秘钥。
可选地,将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片的步骤,包括:
将起始数据包发送至完成初始化并启动的所述至少一个从芯片,判断是否接收到完成初始化并启动的所述至少一个从芯片回应的起始序列号,若接收到完成初始化并启动的所述至少一个从芯片回应的起始序列号,将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片,判断是否接收到完成初始化并启动的所述至少一个从芯片回应的程序序列号,若没有接收到完成初始化并启动的所述至少一个从芯片回应的程序序列号,继续向完成初始化并启动的所述至少一个从芯片发送该程序数据包,若接收到完成初始化并启动的所述至少一个从芯片回应的程序序列号,判定完成所述程序数据包的发送;若没有接收到完成初始化并启动的所述至少一个从芯片回应的起始序列号,继续向完成初始化并启动的所述至少一个从芯片发送所述起始数据包。
可选地,通过海思Fastboot协议将所述bootloader加载至所述至少一个海思芯片的步骤,包括:
通过私有协议将bootloader发送至所述至少一个海思芯片,并判断所述至少一个海思芯片是否启动所述bootloader,若所述至少一个海思芯片启动所述bootloader成功,判定完成所述bootloader的加载,若所述至少一个海思芯片启动所述bootloader失败,继续向所述至少一个海思芯片发送所述bootloader。
本发明实施例还提供了一种程序加载装置,应用于linux系统中的主芯片,所述主芯片能够与所述linux系统中的至少一个从芯片进行数据交互所述程序加载装置包括:
获取模块,用于获得更新之后的程序数据包;
初始化模块,用于将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化;
启动数据发送模块,用于将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动;
程序数据包发送模块,用于将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。
本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的程序加载方法。
本发明实施例还提供了一种计算机可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行上述的程序加载方法。
本发明实施例提供的程序加载方法、装置及电子设备,主芯片将更新之后的程序数据包发送给至少一个从芯片,能保证从芯片的程序都是最新的版本,便于进行维护和更新,无需考虑从芯片的程序版本更新是否有问题,能改善分布式系统在产生坏块时不易修复和更新的问题。
进一步地,本发明实施例采用海思芯片进行程序加载,避免了采用存储芯片产生坏块时导致的启动失败。
进一步地,本发明实施例采用加密和重传的方法增加了系统程序的稳定性和安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的一种电子设备10的方框示意图。
图2为本发明实施例所提供的一种程序加载方法的流程图。
图3为一实施方式中图2所示的步骤S22包括的子步骤的示意图。
图4为一实施方式中图2所示的步骤S23包括的子步骤的示意图。
图5为一实施方式中图2所示的步骤S24包括的子步骤的示意图。
图6为本发明实施例所提供的一种程序加载装置20的模块框图。
图标:10-电子设备;11-存储器;12-处理器;13-网络模块;20-程序加载装置;21-获取模块;22-初始化模块;23-启动数据发送模块;24-程序数据包发送模块。
具体实施方式
经调查发现,现有的分布式系统的设备大多采用存储芯片(NAND Flash),相应地,分布式系统在启动时,芯片需要加载u-boot程序,现有的存储芯片(NAND Flash)加载u-boot程序的方法大多采用烧录贴片的方式。当分布式系统启动或升级维护时,存储芯片(NAND Flash)内的u-boot程序需要更新,但现有的方式大多通过存储芯片(NAND Flash)对加载之后的u-boot程序进行更新,当存储芯片(NAND Flash)产生坏块时可能会导致u-boot程序数据的丢失,进而导致无法更新,这使得修复、维护或更新变得比较困难。
以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。
基于上述研究,本发明实施例提供了一种程序加载方法、装置及电子设备,能保证分布式系统中的芯片的u-boot程序都是最新的版本,便于进行维护和更新,无需考虑芯片的程序版本更新是否有问题,能改善分布式系统在产生坏块时不易修复和更新的问题。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1示出了本发明实施例所提供的一种电子设备10的方框示意图。本发明实施例中的电子设备10可以为具有数据存储、传输、处理功能的服务端,如图1所示,电子设备10包括:存储器11、处理器12、网络模块13和程序加载装置20。
存储器11、处理器12和网络模块13之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件互相之间可以通过一条或多条通讯总线或信号线实现电性连接。存储器11中存储有程序加载装置20,所述程序加载装置20包括至少一个可以软件或固件(firmware)的形式储存于所述存储器11中的软件功能模块,所述处理器12通过运行存储在存储器11内的软件程序以及模块,例如本发明实施例中的程序加载装置20,从而执行各种功能应用以及数据处理,即实现本发明实施例中的程序加载方法。
其中,所述存储器11可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器11用于存储程序,所述处理器12在接收到执行指令后,执行所述程序。
所述处理器12可能是一种集成电路芯片,具有数据的处理能力。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
网络模块13用于通过网络建立电子设备10与其他通信终端设备之间的通信连接,实现网络信号及数据的收发操作。上述网络信号可包括无线信号或者有线信号。
可以理解,图1所示的结构仅为示意,电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供一种计算机可读存储介质,所述可读存储介质包括计算机程序。所述计算机程序运行时控制所述可读存储介质所在电子设备10执行下面的程序加载方法。
在本实施例中,该程序加载方法应用于linux系统中的主芯片,其中,主芯片能与linux系统中的至少一个从芯片进行数据交互。
图2示出了本发明实施例所提供的一种程序加载方法的流程图。所述方法有关的流程所定义的方法步骤应用于电子设备10,可以由所述处理器12实现。下面将对图2所示的具体流程进行详细阐述:
步骤S21,获得更新之后的程序数据包。
在本实施例中,主芯片通过网络获取更新之后的u-boot程序数据包。
其中,u-boot是遵循GPL(General Public License)条款的开放源代码项目,它的主要功能是完成硬件设备初始化、操作系统代码搬运,并提供一个控制台及一个指令集在操作系统运行前操控硬件设备。u-boot具有以下特点:开放源代码、支持多种嵌入式操作系统内核、支持多种处理器系列、较高的稳定性、高度灵活的功能设置、丰富的设备驱动源码以及较为丰富的开发调试文档与强大的网络技术支持,丰富了分布式系统的启动。
步骤S22,将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化。
其中,bootloader是系统上电后最初加载运行的代码,它提供了处理器上电复位后最开始需要执行的初始化代码。可以理解,主芯片通过将bootloader加载至至少一个从芯片,用以实现从芯片的初始化,进而实现系统启动时的初始化。
在本实施例中,主芯片和从芯片可以选用海思芯片,可选地,从芯片可以选择为以下三个:从芯片A、从芯片B和从芯片C。
请结合参阅图3,本实施例中通过步骤S221和步骤S222列举了步骤S22的其中一种实现方式。
步骤S221,通过海思Fastboot协议将所述bootloader发送至所述至少一个海思芯片。
其中,海思Fastboot协议是海思芯片通过串口加载或者升级u-boot使用的通信协议。
例如,主芯片通过海思Fastboot协议将所述bootloader发送至从芯片A、从芯片B和从芯片C。
步骤S222,判断所述至少一个海思芯片是否启动所述bootloader。
主芯片将bootloader发送至从芯片A、从芯片B和从芯片C之后,分别判断从芯片A、从芯片B和从芯片C是否启动bootloader,若启动bootloader成功,判定完成bootloader的加载,若启动bootloader失败,继续发送bootloader。
例如,若从芯片A和从芯片B启动bootloader成功,则判定从芯片A和从芯片B完成bootloader的加载;若从芯片C启动bootloader失败,主芯片继续向从芯片C发送bootloader,然后再判定从芯片C是否启动bootloader。
在本实施例中,主芯片通过海思Fastboot协议将bootloader加载至从芯片A、从芯片B和从芯片C,能实现从芯片A、从芯片B和从芯片C的初始化,并为之后的加密协议做准备。
可选地,通过判断各个从芯片是否启动bootloader并根据判断结果进行重传的方法增加了系统的稳定性。
步骤S23,将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动。
请结合参阅图4,本实施例中通过步骤S231、步骤S232、步骤S233、步骤S234和步骤S235列举了步骤S23的其中一种实现方式。
步骤S231,获得完成初始化的所述至少一个海思芯片的芯片信息和从秘钥。
例如,从芯片A、从芯片B和从芯片C完成初始化之后,主芯片获得从芯片A、从芯片B和从芯片C各自对应的芯片信息和从秘钥。
其中,从芯片经过算法可以计算得到自身的从秘钥,芯片信息包括位置信息和芯片条码。可选地,主芯片根据从芯片固定的管脚读取从芯片的位置信息,bootloader里面保存了各个从芯片的芯片条码,主芯片可以从bootloader里面获得芯片条码。
步骤S232,根据所述从芯片信息计算主秘钥,并判断是否计算成功。
主芯片在获得了位置信息和芯片条码之后,根据位置信息和芯片条码计算获得主秘钥,若计算主秘钥失败,重新获取位置信息和芯片条码并再次进行计算,若计算主秘钥成功,进入步骤S233。
例如,主芯片根据从芯片A、从芯片B和从芯片C各自的位置信息和芯片条码计算获得了分别与从芯片A和从芯片C的主秘钥、没有计算出与从芯片B对应的主秘钥,主芯片重新获取从芯片B的位置信息和芯片条码,并重新计算与从芯片B对应的主秘钥。
主秘钥和从秘钥的作用是用于对u-boot程序数据包进行加密,增加了系统的稳定性和抗干扰能力。
步骤S233,判断所述主秘钥和所述从秘钥是否匹配。
在本实施例中,主芯片计算获得三个主秘钥,将各个主秘钥与相对应的从秘钥进行匹配。例如,主芯片将通过从芯片A、从芯片B和从芯片C各自的芯片信息计算获得的主秘钥A、主秘钥B和主秘钥C,将主秘钥A、主秘钥B和主秘钥C分别与从秘钥A、从秘钥B和从秘钥C进行匹配。
进行主从秘钥的匹配是为了后续的加密工作,如果不匹配,主芯片将加密之后的程序数据包发送给从芯片,从芯片也无法解密,为了提高系统运行的效率,将匹配过程前置。
步骤S234,若所述主秘钥和所述从秘钥匹配,采用所述主秘钥对所述启动数据进行加密,并将加密后的启动数据发送至完成初始化的所述至少一个海思芯片。
例如,若主秘钥A与从秘钥A匹配,采用主秘钥A对启动数据进行加密,并将加密之后的启动数据发送至从芯片A。从芯片A在获得了加密的启动数据之后,采用从秘钥A进行解密,进而完成启动。
步骤S235,若所述主秘钥和所述从秘钥不匹配,退出系统。
又例如,若主秘钥A与从秘钥A不匹配,则退出系统。其中,退出系统可以理解为系统启动失败。当系统启动失败时,可以根据主从秘钥不匹配的情况对系统进行相应的修复,又例如,更换从芯片A。
可以理解,相比于存储芯片(NAND Flash),海思芯片省去了烧录贴片、兼容测试等环节,更利于系统的维护、修复和更新。
步骤S24,将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。
请结合参阅图4,本实施例中通过步骤S231、步骤S232、步骤S233、步骤S234和步骤S235列举了步骤S23的其中一种实现方式。
步骤S241,将起始数据包发送至完成初始化并启动的所述至少一个从芯片。
例如,从芯片A、从芯片B和从芯片C启动成功之后,主芯片向这些从芯片发送起始数据包。可以理解,起始数据包也通过相应的主秘钥加密。
其中,起始数据包包括起始序列号,总长度、包长度和校验值。根据总长度和包长度可以确定每次发送的数据包的大小。例如,起始数据包的总长度为3000,包长度为300,则主芯片每次发送包长度为300的起始数据包。
步骤S242,判断是否接收到回应的起始序列号。
从芯片接收到主芯片发送的起始数据包之后,采用从秘钥进行解密,然后进行数据解析,并向主芯片发送回应的起始序列号。
例如,从芯片A获得第一个包长度为300的起始数据包并进行数据解析之后,将回应的起始序列号发送给主芯片。又例如,针对主芯片,第一个包长度为300的起始数据包的起始序列号为0,若接收到从芯片A回应的起始序列号为0,则向从芯片A发送第二个包长度为300的起始数据包,若接收从芯片A回应的起始序列号不为0或接收超时,继续向从芯片A发送第一个包长度为300的起始数据包。
步骤S243,将程序数据包发送至完成初始化并启动的所述至少一个从芯片。
主芯片将起始数据包发送给从芯片之后,将程序数据包进行发送。
其中,程序数据包包括程序序列号,总长度、包长度和校验值。根据总长度和包长度可以确定每次发送的数据包的大小。例如,程序数据包的总长度为3000,包长度为600,则主芯片每次发送包长度为600的程序数据包。
步骤S244,判断是否接收到回应的程序序列号。
例如,从芯片A获得第一个包长度为600的程序数据包并进行数据解析之后,将回应的程序序列号发送给主芯片。又例如,针对主芯片,第一个包长度为600的程序数据包的程序序列号为0,若接收到从芯片A回应的程序序列号为0,则向从芯片A发送第二个包长度为600的程序数据包,若接收从芯片A回应的程序序列号不为0或接收超时,继续向从芯片A发送第一个包长度为600的程序数据包。
相应地,主芯片向从芯片A发送了第二个包长度为600的程序数据包之后,等待接收从芯片A回应程序序列号1,若等待接收超时或接收到的程序序列号不为1,继续向从芯片A发送第二个包长度为600的程序数据包。
当所有程序数据包发送完成之后,便完成了程序的加载。可以理解,步骤S23和步骤S24中的起始数据包和程序数据包为u-boot程序。可以理解,通过上述判定并重发的方式能增加系统启动的稳定性。
在本实施例中,在基于linux环境下的多芯片分布式系统中,主芯片建立多个线程,并通过每个线程,使用串口将u-boot程序加载至每个从芯片。其中,线程的数量根据主芯片中的串口数量而定。其中,串口可以为I2C(Inter-Integrated Circuit)或者SPI(Serial Peripheral Interface)。
应当理解,本实施例提供的从芯片A、从芯片B和从芯片C仅用于举例说明程序加载方法,并不是对从芯片数量和名称的限定。
在上述基础上,如图6所示,本发明实施例提供了一种程序加载装置20,所述程序加载装置20包括:获取模块21、初始化模块22、启动数据发送模块23和程序数据包发送模块24。
获取模块21,用于获得更新之后的程序数据包。
由于获取模块21和图2中步骤S21的实现原理类似,因此在此不作更多说明。
初始化模块22,用于将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化。
由于初始化模块22和图2中步骤S22的实现原理类似,因此在此不作更多说明。
启动数据发送模块23,用于将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动。
由于启动数据发送模块23和图2中步骤S23的实现原理类似,因此在此不作更多说明。
程序数据包发送模块24,用于将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。
由于程序数据包发送模块24和图2中步骤S24的实现原理类似,因此在此不作更多说明。
综上,本发明实施例所提供的程序加载方法、装置及电子设备,能保证多芯片的分布式操作系统中从芯片的u-boot程序都是最新的版本,在系统维护或者软件更新的时候会很方便,无需考虑从芯片的程序版本更新是否有问题,能改善分布式系统在产生坏块时不易修复和更新的问题
进一步地,本发明实施例采用海思芯片而非存储芯片,减少了加工工序,避免了因人为操作引起的错误的风险,避免了采用存储芯片的维护及存储芯片更换时的兼容测试。
进一步地,本发明实施例采用加密和重传方法增加了系统程序的稳定性,保证了程序数据的安全。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备10,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种程序加载方法,其特征在于,应用于linux系统中的主芯片,所述主芯片能够与所述linux系统中的至少一个从芯片进行数据交互,所述方法包括:
获得更新之后的程序数据包;
将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化;
将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动;
将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。
2.根据权利要求1所述的程序加载方法,其特征在于,所述从芯片为海思芯片,将bootloader加载至所述至少一个从芯片的步骤,包括:
通过海思Fastboot协议将所述bootloader加载至所述至少一个海思芯片。
3.根据权利要求2所述的程序加载方法,其特征在于,将启动数据发送至完成初始化的所述至少一个从芯片的步骤,包括:
获得完成初始化的所述至少一个海思芯片的从秘钥和芯片信息;
根据所述芯片信息计算得到主秘钥;
判断所述主秘钥与所述从秘钥是否匹配,若匹配,采用所述主秘钥对所述启动数据进行加密,并将加密后的启动数据发送至完成初始化的所述至少一个海思芯片。
4.根据权利要求3所述的程序加载方法,其特征在于,所述方法还包括:
若根据所述芯片信息计算主秘钥失败,重新获得完成初始化的所述至少一个海思芯片的芯片信息,根据重新获得的芯片信息重新计算主秘钥。
5.根据权利要求3所述的程序加载方法,其特征在于,所述芯片信息包括位置信息和芯片条码;根据所述芯片信息计算得到主秘钥的步骤,包括:
根据所述位置信息和所述芯片条码计算得到所述主秘钥。
6.根据权利要求1所述的程序加载方法,其特征在于,将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片的步骤,包括:
将起始数据包发送至完成初始化并启动的所述至少一个从芯片,判断是否接收到完成初始化并启动的所述至少一个从芯片回应的起始序列号,若接收到完成初始化并启动的所述至少一个从芯片回应的起始序列号,将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片,判断是否接收到完成初始化并启动的所述至少一个从芯片回应的程序序列号,若没有接收到完成初始化并启动的所述至少一个从芯片回应的程序序列号,继续向完成初始化并启动的所述至少一个从芯片发送该程序数据包,若接收到完成初始化并启动的所述至少一个从芯片回应的程序序列号,判定完成所述程序数据包的发送;若没有接收到完成初始化并启动的所述至少一个从芯片回应的起始序列号,继续向完成初始化并启动的所述至少一个从芯片发送所述起始数据包。
7.根据权利要求2所述的程序加载方法,其特征在于,通过海思Fastboot协议将所述bootloader加载至所述至少一个海思芯片的步骤,包括:
通过私有协议将bootloader发送至所述至少一个海思芯片,并判断所述至少一个海思芯片是否启动所述bootloader,若所述至少一个海思芯片启动所述bootloader成功,判定完成所述bootloader的加载,若所述至少一个海思芯片启动所述bootloader失败,继续向所述至少一个海思芯片发送所述bootloader。
8.一种程序加载装置,其特征在于,应用于linux系统中的主芯片,所述主芯片能够与所述linux系统中的至少一个从芯片进行数据交互所述程序加载装置包括:
获取模块,用于获得更新之后的程序数据包;
初始化模块,用于将bootloader加载至所述至少一个从芯片,以实现所述至少一个从芯片的初始化;
启动数据发送模块,用于将启动数据发送至完成初始化的所述至少一个从芯片,以实现完成初始化的所述至少一个从芯片的启动;
程序数据包发送模块,用于将所述程序数据包发送至完成初始化并启动的所述至少一个从芯片。
9.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~7任一项所述的程序加载方法。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行权利要求1~7任一项所述的程序加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711426222.XA CN109960520B (zh) | 2017-12-25 | 2017-12-25 | 程序加载方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711426222.XA CN109960520B (zh) | 2017-12-25 | 2017-12-25 | 程序加载方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960520A true CN109960520A (zh) | 2019-07-02 |
CN109960520B CN109960520B (zh) | 2022-07-19 |
Family
ID=67021553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711426222.XA Active CN109960520B (zh) | 2017-12-25 | 2017-12-25 | 程序加载方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960520B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110405759A (zh) * | 2019-07-16 | 2019-11-05 | 大唐微电子技术有限公司 | 一种芯片控制系统 |
CN111782227A (zh) * | 2020-06-30 | 2020-10-16 | 普联技术有限公司 | 一种组件的数据处理方法、装置、设备及存储介质 |
CN114489826A (zh) * | 2020-11-09 | 2022-05-13 | 哲库科技(上海)有限公司 | 芯片运行方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802243B1 (en) * | 2006-04-20 | 2010-09-21 | Open Invention Network Llc | System and method for server customization |
CN102841994A (zh) * | 2002-03-29 | 2012-12-26 | 英特尔公司 | 用于执行安全环境初始化指令的系统和方法 |
CN103365689A (zh) * | 2013-07-04 | 2013-10-23 | 青岛海信宽带多媒体技术有限公司 | 一种单片机并行烧录方法 |
CN104200153A (zh) * | 2014-09-12 | 2014-12-10 | 北京赛科世纪数码科技有限公司 | 一种启动验证方法和系统 |
CN106708771A (zh) * | 2015-11-17 | 2017-05-24 | 研祥智能科技股份有限公司 | 一种网络旁路装置及其处理方法 |
-
2017
- 2017-12-25 CN CN201711426222.XA patent/CN109960520B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841994A (zh) * | 2002-03-29 | 2012-12-26 | 英特尔公司 | 用于执行安全环境初始化指令的系统和方法 |
US7802243B1 (en) * | 2006-04-20 | 2010-09-21 | Open Invention Network Llc | System and method for server customization |
CN103365689A (zh) * | 2013-07-04 | 2013-10-23 | 青岛海信宽带多媒体技术有限公司 | 一种单片机并行烧录方法 |
CN104200153A (zh) * | 2014-09-12 | 2014-12-10 | 北京赛科世纪数码科技有限公司 | 一种启动验证方法和系统 |
CN106708771A (zh) * | 2015-11-17 | 2017-05-24 | 研祥智能科技股份有限公司 | 一种网络旁路装置及其处理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110405759A (zh) * | 2019-07-16 | 2019-11-05 | 大唐微电子技术有限公司 | 一种芯片控制系统 |
CN111782227A (zh) * | 2020-06-30 | 2020-10-16 | 普联技术有限公司 | 一种组件的数据处理方法、装置、设备及存储介质 |
CN114489826A (zh) * | 2020-11-09 | 2022-05-13 | 哲库科技(上海)有限公司 | 芯片运行方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109960520B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960520A (zh) | 程序加载方法、装置及电子设备 | |
US7577776B2 (en) | Multiple virtual USB devices with virtual HUB implemented using one USB device controller | |
DE112017002070T5 (de) | Technologien für die Vorrichtungsinbetriebnahme | |
DE112017003705T5 (de) | Techniken zum Verifizieren und Authentifizieren von Ressourcen in einer Datenzentrumcomputerumgebung | |
CN107528829B (zh) | Bmc芯片、服务器端及其远程监控管理方法 | |
US20110179211A1 (en) | Bios architecture | |
US8589672B2 (en) | Method for securely merging multiple nodes having trusted platform modules | |
US20160224806A1 (en) | Rewrite detection system, rewrite detection device and information processing device | |
CN109002310A (zh) | 固件升级方法 | |
CN107797822A (zh) | 用于认证固件的设备和相关联的方法 | |
US20170279622A1 (en) | Data determination apparatus, data determination method, and computer readable medium | |
US9002694B2 (en) | Verification of design derived from power intent | |
US9606950B2 (en) | Verifying runtime switch-over between multiple I/O protocols on shared I/O connection | |
CN103138988A (zh) | 网络故障的定位处理方法及装置 | |
CN104932918A (zh) | 移动终端及其lcd驱动程序的加载方法 | |
CN103838591A (zh) | 一种基于串行总线的多单片机升级方法及装置 | |
CN113406991B (zh) | 一种时钟管理方法、装置及电子设备和存储介质 | |
CN108600257A (zh) | 加解密方法及装置、计算机存储介质以及电子设备 | |
CN110392096A (zh) | 一种文件分发的方法、装置、主控制器及存储介质 | |
CN105468123A (zh) | 机架管理控制器、电源管理程序更新系统及方法 | |
CN112954770A (zh) | 设备绑定方法和装置、存储介质及电子设备 | |
CN111984287A (zh) | 设备升级方法及系统 | |
CN110032385A (zh) | 组件更新方法、装置及电子设备 | |
CN109039765A (zh) | 网络配置方法及装置 | |
CN105007277A (zh) | 一种生成用户证书的方法及一种web应用 |
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 |