CN116775152A - 芯片启动方法及芯片 - Google Patents
芯片启动方法及芯片 Download PDFInfo
- Publication number
- CN116775152A CN116775152A CN202310736819.3A CN202310736819A CN116775152A CN 116775152 A CN116775152 A CN 116775152A CN 202310736819 A CN202310736819 A CN 202310736819A CN 116775152 A CN116775152 A CN 116775152A
- Authority
- CN
- China
- Prior art keywords
- interface
- chip
- boot loader
- data
- application program
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012795 verification Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000009191 jumping Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种芯片启动方法及芯片。该芯片启动方法由芯片内处理器执行,包括在芯片上电后运行启动程序来执行如下步骤:从多个候选接口选择一个当前轮未选择过的作为查询接口;判断是否从查询接口查询到握手数据;如查询到握手数据,从查询接口接收或启动引导加载程序/应用程序;如没查询到握手数据,跳转到从多个候选接口中选择一个当前轮未选择过的作为查询接口的步骤,其中,若多个候选接口在当前轮都被选择过则下一轮作为当前轮。本发明缩小了芯片面积,降低了芯片成本。
Description
技术领域
本发明涉及芯片技术领域,特别涉及一种芯片启动方法及芯片。
背景技术
片上系统(system on chip,简称SoC)是由多个具有特定功能的电路集成在一个芯片内形成的芯片级系统,硬件方面包括处理器和片内存储器等,软件方面包括启动程序(BOOTROM固件)、引导加载程序(Bootloader软件)及应用程序。系统上电后,启动程序首先被处理器运行,启动程序运行起来后,一种情况下是先向片内存储器加载引导加载程序且处理器运行加载的引导加载程序来向片内存储器加载应用程序,另一种情况是直接向片内存储器加载应用程序。目前,绝大多数厂商针对启动程序加载引导加载程序/应用程序,采用启动管脚指示的方式,即启动管脚指示从何处加载引导加载程序/应用程序,该种加载方式导致芯片的面积和成本都没有得到有效控制。
发明内容
鉴于上述问题,本发明的目的在于提供一种芯片启动方法及芯片,以缩小芯片面积,降低芯片成本。
根据本发明的第一方面,提供一种芯片启动方法,由芯片内处理器执行,包括在所述芯片上电后运行启动程序来执行如下步骤:
从多个候选接口选择一个当前轮未选择过的作为查询接口;
判断是否从所述查询接口查询到握手数据;
如查询到握手数据,从所述查询接口接收或启动引导加载程序/应用程序;
如没查询到握手数据,跳转到从多个候选接口中选择一个当前轮未选择过的作为查询接口的步骤,其中,若所述多个候选接口在当前轮都被选择过则下一轮作为当前轮。
可选地,所述芯片包括用于接收引导加载程序/应用程序的多个从接口和至少一个主接口;
所述多个候选接口在第一轮包括所述多个从接口和所述至少一个主接口,且在第一轮之外的各轮中只包括所述多个从接口。
可选地,在所述查询接口为从接口的情况下,判断是否从所述查询接口查询到握手数据,包括:判断在预设时长内是否接收到该从接口所连接主接口发送来的握手数据。
可选地,从所述查询接口接收或启动引导加载程序/应用程序,包括:在所述查询接口为从接口的情况下,从所述查询接口接收引导加载程序/应用程序;
从所述查询接口接收引导加载程序/应用程序,包括:响应于查询到的握手数据,向该从接口所连接主接口回复确认字符,以使该从接口所连接主接口停止握手数据的发送并发送引导加载程序/应用程序。
可选地,该从接口所连接主接口以数据包的形式发送引导加载程序/应用程序,所述数据包包括引导加载程序/应用程序以及校验信息;
从所述查询接口接收引导加载程序/应用程序,还包括:接收所述数据包并从接收到的数据包解析引导加载程序/应用程序和校验信息,以及加载解析到的引导加载程序/应用程序并通过解析到的校验信息校验加载了的引导加载程序/应用程序。
可选地,所述数据包采用预设格式,从接收到的数据包解析引导加载程序/应用程序和校验信息,包括:
根据所述预设格式指定的数据排序方式和数据长度,确定接收到的数据包中引导加载程序/应用程序和校验信息各自的位置;
基于确定的位置,从接收到的数据包解析出引导加载程序/应用程序和校验信息。
可选地,所述数据包还包括位于所述数据包起始位置的幻数。
可选地,在所述查询接口为主接口的情况下,判断是否从所述查询接口查询到握手数据,包括:判断是否在该主接口所连接设备中读取到握手数据。
可选地,运行启动程序还要执行如下步骤:
在查询到握手数据的情况下,通过预设接口输出第一提醒数据,以提醒用户将从所述查询接口接收引导加载程序/应用程序;
在没查询到握手数据的情况下,通过所述预设接口输出第二提醒数据,以提醒用户当前轮无法从所述查询接口接收引导加载程序/应用程序。
根据本发明的第二方面,提供一种芯片,包括处理器,所述处理器在芯片上电后运行启动程序来执行第一方面所述的任一种方法。
根据本发明的第三方面,提供一种电子设备,包括:
第二方面所述的芯片;
以及与所述芯片连接的以下至少一种设备:用于存储的外部设备、使得所述芯片能够与一个或多个计算设备进行通信的传输设备、使得所述芯片能够与用户交互的终端设备。
本发明带来了以下有益效果:
本发明中,芯片上电后,芯片内处理器运行启动程序来执行如下步骤:从多个候选接口选择一个当前轮未选择过的作为查询接口;判断是否从查询接口查询到握手数据;如查询到握手数据,从查询接口接收或启动引导加载程序/应用程序;如没查询到握手数据,跳转到从多个候选接口中选择一个当前轮未选择过的作为查询接口的步骤且其中若多个候选接口在当前轮都被选择过则下一轮作为当前轮。因而,引导加载程序/应用程序的加载完全不再依赖外部管脚来指示从何处加载引导加载程序/应用程序,从而缩小了芯片面积,降低了芯片成本。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1为根据本发明实施例提供的一种芯片启动方法的流程图;
图2为根据本发明实施例提供的多个候选接口的列表;
图3为根据本发明实施例提供的一种示例性的片内从接口作为查询接口和片外主接口之间通信的示意图;
图4为根据本发明实施例提供的一种预设格式的数据包;
图5A为根据本发明实施例提供的另一种芯片启动方法的一部分示意图;
图5B为根据本发明实施例提供的另一种芯片启动方法的另一部分示意图;
图5C为图5A和图5B中步骤A执行的一种流程图;
图6为根据本发明实施例提供的一种芯片的示例性结构示意图。
具体实施方式
以下将参照附图更详细地描述本发明的各种实施例。在各个附图中,相同的元件采用相同或类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。
现阶段市场上出现了很多用于手机或智能硬件入口的芯片,这样的产品定位决定了芯片上市后可能用量比较大,但是价格会比较便宜,所以芯片在设计阶段就必须考虑面积和成本的需求。目前绝大多数厂商对于有面积和成本需求的片上系统,采用传统的通过启动管脚指示的方式实现启动加载,即启动管脚指示从何处加载引导加载程序/应用程序,但该种加载方式导致芯片的面积和成本都没有得到有效控制。
鉴于此,本发明实施例提供了一种芯片启动方法,通过查询方式确定从何处加载引导加载程序/应用程序。采用该种启动方法的芯片无需为引导加载程序/应用程序的加载设计启动管脚,从而压缩了芯片面积,降低了芯片成本。
图1所示为根据本发明实施例提供的一种芯片启动方法的流程图。该芯片启动方法由芯片内处理器执行,芯片内处理器在芯片上电后运行启动程序来执行图1所示的步骤而实现引导加载程序/应用程序的加载或启动。参照图1,芯片内处理器运行启动程序来执行的步骤,包括:
步骤S110,从多个候选接口选择一个当前轮未选择过的作为查询接口;
步骤S120,判断是否从查询接口查询到握手数据,其中,若查询到握手数据则执行步骤S130,反之则执行步骤S140;
步骤S130,从查询接口接收或启动引导加载程序/应用程序;
步骤S140,判断多个候选接口在当前轮是否都被选择过,若都被选择过则执行步骤S150并在执行步骤S150后跳转到步骤S110,反之则直接跳转到步骤S110;
步骤S150,将下一轮作为当前轮。
下面结合附图和实施例,对本发明实施例提供的芯片启动方法作进一步详细描述。
在步骤S110中,多个候选接口可以是多个主接口(master接口),也可以是多个从接口(slave接口),还可以是其中一部分为从接口而另一部分为主接口。应当理解的是,主接口和从接口之间,主接口发出命令,从接口被动执行命令。对于芯片来说,芯片上的从接口是与片外的主接口连接,从而在基于片外主接口发送的命令建立通信连接后能够接收片外主接口所连接芯片或设备发送的引导加载程序/应用程序;而芯片上的主接口是与闪存之类的片外存储器连接,能够主动地读取片外存储器内所存储的引导加载程序/应用程序,无需片外存储器开启访问权限。基于此,上述步骤S130,从查询接口接收或启动引导加载程序/应用程序,是指:查询接口为从接口的情况下,从查询接口接收引导加载程序/应用程序;查询接口为主接口的情况下,从查询接口启动引导加载程序/应用程序。具体地,从查询接口接收或启动引导加载程序,还是从查询接口接收或启动应用程序,这是由应用需求决定。
一个可选的实施例中,芯片包括用于接收引导加载程序/应用程序的多个从接口和至少一个主接口。多个候选接口只在第一轮中包括用于接收引导加载程序/应用程序的所有接口,即包括上述多个从接口和至少一个主接口;而在第一轮之外的各轮中,多个候选接口只包括多个从接口,并不包括任何主接口。
示例性地,多个从接口为图2所示的SPI(Serial Peripheral Interface,串行外设接口)从接口、I2C(Inter-Integrated Circuit,内部集成电路)从接口和UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)接口,至少一个主接口为SPI主接口,其中,SPI从接口连接片外芯片/设备的SPI主接口;I2C从接口连接片外芯片/设备的I2C主接口;UART接口即芯片上设置的UART接口,连接通过UART接口和芯片通信的芯片/设备;SPI主接口连接片外SPI Nor/Nand闪存芯片。应当理解,本发明实施例并不局限于此处所举实例。
图2中,芯片内处理器运行的是片内只读存储器(Read-Only Memory,简称ROM)中的启动程序,片内只读存储器在芯片生产时就烧写了启动程序,芯片使用中无法改变。一些情况下,芯片还支持从片外闪存启动,即片外闪存支持“芯片内执行(eXecute In Place,简称XIP)”方式,处理器从片外闪存的基地址开始读取并执行片外闪存内存储的引导加载程序/应用程序,该功能作为片内只读存储器启动的备份功能。
本发明实施例中,主接口只在第一轮中会作为查询接口,由于主接口连接的片外存储设备并不会频繁地更改内部数据,因而一次启动中只查询一次各主接口,能够提高查询效率。
在一个可选的实施例中,步骤S110确定的查询接口为从接口,步骤S120中,判断是否从查询接口查询到握手数据,包括:判断在预设时长内是否接收到该从接口所连接主接口发送来的握手数据,若否则确定当前轮没有从该查询接口查询到握手数据,反之则确定当前轮从该查询接口查询到握手数据。
上述预设时长,例如为20ms。不同的从接口作为查询接口时可以采用同一预设时长,也可以采用不同的预设时长。每个从接口都对应一个预设时长,该预设时长内若没接收到握手数据则通过步骤S140跳转到下一个候选接口,因而每个从接口是被提供了一个查询握手数据的查询时间窗口。在某个从接口的查询时间窗口到来时,引导加载程序/应用程序的读取指针指向该从接口,该从接口被复用为查询窗口。
图3所示为一种示例性的片内从接口作为查询接口和片外主接口之间通信的示意图。如图3所示,片外主接口在能够提供引导加载程序/应用程序的情况下会处于通信连接建立的准备阶段,即执行步骤S31,不断向和其连接的片内从接口发送握手数据;然后片内从接口执行步骤S32,即从片外主接口接收到握手数据后向片外主接口回复确认字符(Acknowledge character,简称ACK),从而告知片外主接口发来的握手数据已确认,这样片内从接口和片外主接口之间实现了通信连接;接着片外主接口接收到确认字符后停止握手数据的发送而进入引导加载程序/应用程序发送阶段,即执行步骤S33。上述握手数据和确认字符各自为格式固定的字符串,示例性地,握手数据为占用4字节的字符串“0x424E5348”,确认字符为占用2字节的字符串“0x5A5A”。
图3所示的步骤S33中,片外主接口是以数据包的形式发送引导加载程序/应用程序,数据包包括引导加载程序/应用程序以及校验信息,该种情况下上述步骤S130中对应于查询接口为从接口而从查询接口接收引导加载程序/应用程序,不仅包括上述步骤S32,还包括:相应于步骤S33来接收数据包并从接收到的数据包解析引导加载程序/应用程序和校验信息,以及加载解析到的引导加载程序/应用程序到片内存储器(例如片内的随机存取存储器)中并通过解析到的校验信息校验片内存储器中加载的引导加载程序/应用程序。
校验信息可以是用于对加载的引导加载程序/应用程序进行完整性校验的信息,该情况下可以是只有完整性校验通过后处理器才跳转到存放引导加载程序/应用程序的起始地址开始执行。由于一些情形中完整性校验不通过的原因只是引导加载程序/应用程序中不影响运行的少许比特的数据有误且引导加载程序/应用程序的运行会控制显示某个特定界面来提示该错误,因而也可以是完整性校验不通过时处理器也能跳转到存放引导加载程序/应用程序的起始地址开始执行。处理器跳转到存放引导加载程序/应用程序的起始地址开始执行引导加载程序/应用程序的过程,可以参考现有技术,本发明实施例对此不进行详述。
进一步,数据包采用预设格式,从接收到的数据包解析引导加载程序/应用程序和校验信息,包括:根据预设格式指定的数据排序方式和数据长度,确定接收到的数据包中引导加载程序/应用程序和校验信息各自的位置;基于确定的位置,从接收到的数据包解析出引导加载程序/应用程序和校验信息。
以图4所示预设格式的数据包为例来说明。图4中,数据包依次包括长度为4字节的幻数(magic number)、长度为4字节的数据包大小信息(file size)、有效载荷(payload)和长度为2字节的校验和(check sum)。有效载荷即引导加载程序/应用程序,数据包中前8字节和后2字节之间即为引导加载程序/应用程序。其中,幻数位于数据包的起始位置,片内从接口通过幻数来识别携带引导加载程序/应用程序的数据包;校验和即用来校验数据包完整性的校验信息。
在一个可选的实施例中,步骤S110中确定的查询接口为主接口,步骤S120中,判断是否从查询接口查询到握手数据,包括:判断是否在该主接口所连接设备中读取到握手数据,若否则确定当前轮没有从该查询接口查询到握手数据,反之则确定当前轮从该查询接口查询到握手数据。如上所述,主接口所连接设备通常为闪存之类的片外存储器。本发明实施例中,主接口所连接设备通过存储握手数据来标识存储有引导加载程序/应用程序,从而便于芯片内处理器快速确定该设备内是否存储有引导加载程序/应用程序。
基于以上所述的芯片启动方法,包括图2所示的用于接收引导加载程序/应用程序的多个接口的芯片,可以具体采用图5A和图5B所示的流程来加载引导加载程序/应用程序。参照图5A和图5B,芯片内处理器运行启动程序来执行如下步骤:
步骤S501,将读取指针指向SPI从接口;
步骤S502,尝试从SPI从接口接收握手数据;
步骤S503,判断是否从SPI从接口查询到握手数据,其中,若是则执行步骤A,即从当前查询到握手数据的接口接收引导加载程序/应用程序,反之则执行步骤S504;
步骤S504,判断在SPI从接口的查询时长是否超出预设时长,其中,若否则返回执行步骤S502,反之则执行步骤S505;
步骤S505,将读取指针指向UART接口;
步骤S506,尝试从UART接口接收握手数据;
步骤S507,判断是否从UART接口查询到握手数据,其中,若是则执行如上所述的步骤A,反之则执行步骤S508;
步骤S508,判断在UART接口的查询时长是否超出预设时长,其中,若否则返回执行步骤S506,反之则执行图中通过步骤Q1连接的步骤S509;
步骤S509,将读取指针指向I2C从接口;
步骤S510,尝试从I2C从接口接收握手数据;
步骤S511,判断是否从I2C从接口查询到握手数据,其中,若是则执行如上所述的步骤A,反之则执行步骤S512;
步骤S512,判断在I2C从接口的查询时长是否超出预设时长,其中,若否则返回执行步骤S510,反之则执行步骤S513;
步骤S513,判断该次启动过程中之前是否查询过SPI主接口,其中,若是则执行图中通过步骤Q2连接的步骤S501,反之则执行步骤S514;
步骤S514,将读取指针指向SPI主接口;
步骤S515,尝试从SPI主接口读取握手数据;
步骤S516,判断是否从SPI主接口查询到握手数据,其中,若是则执行如上所述的步骤A,反之则执行图中通过步骤Q2连接的步骤S501。
图5C示出了步骤A执行的一种流程图。参照图5C,在当前查询接口为从接口的情况下,步骤A,从当前查询到握手数据的接口接收引导加载程序/应用程序,包括:
步骤SA01,回复确认字符,以便连接当前查询接口的主接口发送引导加载程序/应用程序;
步骤SA02,加载引导加载程序/应用程序到片内存储器;
步骤SA03,对加载到片内存储器的引导加载程序/应用程序进行校验,得到校验结果。如上所述,由于一些情形中完整性校验不通过的原因只是引导加载程序/应用程序中不影响运行的少许比特的数据有误且引导加载程序/应用程序的运行会控制显示某个特定界面来提示该错误,因而,无论校验结果是否是通过校验都执行步骤SA04,只是会通过不同的提醒信息来提醒用户当前的校验结果;
步骤SA04,重新映射逻辑地址和物理地址之间的对应关系并重置片内处理器,以便片内处理器能够从片内存储器的引导加载程序/应用程序的起始物理地址开始读取引导加载程序/应用程序;
步骤SA05,执行加载了的引导加载程序/应用程序。
按照图5A和图5B所示的流程,在通过多轮查询握手数据的情形中多个从接口的查询顺序固定,应当理解,这并不表示对多个从接口查询顺序的限定。如上所述,在各轮查询过程中,只要下一个查询当前轮未选择过的候选接口即可。
进一步,芯片内处理器运行启动程序还要执行如下步骤:在步骤S120执行后若确定从查询接口查询到握手数据,则通过预设接口输出第一提醒数据,以提醒用户将从该查询接口接收引导加载程序/应用程序,该步骤可以是在上述步骤S130之前执行;同样,在步骤S120执行后若确定没有从查询接口查询到握手数据,则通过预设接口输出第二提醒数据,以提醒用户当前轮无法从该查询接口接收引导加载程序/应用程序,该步骤可以在上述步骤S140之前执行。第一提醒数据和第二提醒数据可以皆携带查询接口信息;第一提醒数据和第二提醒数据也可以各自是1字节的一个简单字符,只提示当前查询到握手数据或没有查询到握手数据。
以上提供的芯片启动方法,通过查询的方式加载引导加载程序/应用程序,可以完全不使用外部管脚来指示引导加载程序/应用程序的加载,因而有效缩小了芯片面积,降低了芯片成本,较为适用规模较小的芯片,包括规模较小的片上系统。在芯片外部管脚高度复用的场景下,芯片面积和成本还能够进一步降低。该芯片启动方法,对芯片内处理器的类型不作要求,适用于各类处理器查询引导加载程序/应用程序的加载接口,例如,ARM系列处理器(ARM,全称Advanced RISC Machine,译为高级精简指令集计算机机器)、RISC-V(RISC,全称Reduced Instruction Set Computer,译为高级精简指令集计算机)系列处理器、DSP系列处理器(DSP,全称digital singnal processor,译为数字信号处理器)、单片机等。
相应于以上提供的芯片启动方法,本发明实施例还提供了一种芯片。图6所示为本发明实施例提供的一种芯片的示例性结构。参照图6,芯片800包括处理器810,芯片上电后处理器810运行启动程序来执行以上所述芯片启动方法中的步骤,从而实现引导加载程序/应用程序的加载。
芯片800还可以包括至少一个存储单元820以及连接不同系统组件(包括存储单元820和处理器810)的总线830。存储单元820可以包括易失性存储单元形式的可读介质,例如用来存储加载的引导加载程序/应用程序的随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括用来存储启动程序的只读存储单元(ROM)8203。存储单元820还可以包括存储一组程序模块8205的动态随机存储器/紧耦合存储器8204,程序模块8205包括但不限于:一个或者多个应用程序以及程序数据。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
芯片800也可以与一个或多个外部设备700(例如用于存储的片外闪存)通信,还可与一个或者多个使得用户能与该芯片800交互的终端设备(例如显示器)通信,和/或与使得该芯片800能与一个或多个其它计算设备进行通信的任何传输设备(例如通用异步收发传输器)通信。这种通信可以通过输入/输出(I/O)接口850进行,输入/输出接口850与总线830连接,输入/输出接口850可以是芯片的主接口和/或从接口。并且,芯片800还可以通过连接总线830的网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。上述多种通信在一些示例中使得芯片800具有多种启动流程。
相应于以上提供的芯片,本发明实施例还提供了一种电子设备,该电子设备包括:以上提供的任一种芯片;以及与该芯片连接的以下至少一种设备:用于存储的外部设备(例如安全数码卡)、使得该芯片能够与一个或多个计算设备进行通信的传输设备(例如通用异步收发传输器)、使得该芯片能够与用户交互的终端设备(例如显示器)。
需要说明的是,本说明书中在对各个实施例进行描述时,均重点说明的是与其他实施例的不同之处,而对于各个实施例之间相同或相似的部分可互相参考进行理解。对于芯片这一实施例而言,由于其与方法实施例基本相似,因此相关之处可参考对方法实施例部分的说明。由于该芯片实施例具有上述方法实施例所能实现的有益效果,详见前面的实施例,在此不再赘述。
附图中的流程图、框图示出了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用JAVA、C/C++/C#、SQL等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种芯片启动方法,由芯片内处理器执行,包括在所述芯片上电后运行启动程序来执行如下步骤:
从多个候选接口选择一个当前轮未选择过的作为查询接口;
判断是否从所述查询接口查询到握手数据;
如查询到握手数据,从所述查询接口接收或启动引导加载程序/应用程序;
如没查询到握手数据,跳转到从多个候选接口中选择一个当前轮未选择过的作为查询接口的步骤,其中,若所述多个候选接口在当前轮都被选择过则下一轮作为当前轮。
2.根据权利要求1所述的方法,其中,
所述芯片包括用于接收引导加载程序/应用程序的多个从接口和至少一个主接口;
所述多个候选接口在第一轮包括所述多个从接口和所述至少一个主接口,且在第一轮之外的各轮中只包括所述多个从接口。
3.根据权利要求1所述的方法,其中,在所述查询接口为从接口的情况下,判断是否从所述查询接口查询到握手数据,包括:判断在预设时长内是否接收到该从接口所连接主接口发送来的握手数据。
4.根据权利要求1所述的方法,其中,
从所述查询接口接收或启动引导加载程序/应用程序,包括:在所述查询接口为从接口的情况下,从所述查询接口接收引导加载程序/应用程序;
从所述查询接口接收引导加载程序/应用程序,包括:响应于查询到的握手数据,向该从接口所连接主接口回复确认字符,以使该从接口所连接主接口停止握手数据的发送并发送引导加载程序/应用程序。
5.根据权利要求4所述的方法,其中,
该从接口所连接主接口以数据包的形式发送引导加载程序/应用程序,所述数据包包括引导加载程序/应用程序以及校验信息;
从所述查询接口接收引导加载程序/应用程序,还包括:接收所述数据包并从接收到的数据包解析引导加载程序/应用程序和校验信息,以及加载解析到的引导加载程序/应用程序并通过解析到的校验信息校验加载了的引导加载程序/应用程序。
6.根据权利要求5所述的方法,其中,所述数据包采用预设格式,从接收到的数据包解析引导加载程序/应用程序和校验信息,包括:
根据所述预设格式指定的数据排序方式和数据长度,确定接收到的数据包中引导加载程序/应用程序和校验信息各自的位置;
基于确定的位置,从接收到的数据包解析出引导加载程序/应用程序和校验信息。
7.根据权利要求5所述的方法,其中,所述数据包还包括位于所述数据包起始位置的幻数。
8.根据权利要求1所述的方法,其中,在所述查询接口为主接口的情况下,判断是否从所述查询接口查询到握手数据,包括:判断是否在该主接口所连接设备中读取到握手数据。
9.根据权利要求1所述的方法,其中,运行启动程序还要执行如下步骤:
在查询到握手数据的情况下,通过预设接口输出第一提醒数据,以提醒用户将从所述查询接口接收引导加载程序/应用程序;
在没查询到握手数据的情况下,通过所述预设接口输出第二提醒数据,以提醒用户当前轮无法从所述查询接口接收引导加载程序/应用程序。
10.一种芯片,包括处理器,所述处理器在芯片上电后运行启动程序来执行权利要求1-9中任一项所述的方法。
11.一种电子设备,包括:
权利要求10所述的芯片;
以及与所述芯片连接的以下至少一种设备:用于存储的外部设备、使得所述芯片能够与一个或多个计算设备进行通信的传输设备、使得所述芯片能够与用户交互的终端设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310736819.3A CN116775152A (zh) | 2023-06-20 | 2023-06-20 | 芯片启动方法及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310736819.3A CN116775152A (zh) | 2023-06-20 | 2023-06-20 | 芯片启动方法及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775152A true CN116775152A (zh) | 2023-09-19 |
Family
ID=87985392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310736819.3A Pending CN116775152A (zh) | 2023-06-20 | 2023-06-20 | 芯片启动方法及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775152A (zh) |
-
2023
- 2023-06-20 CN CN202310736819.3A patent/CN116775152A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8824346B2 (en) | Remote wakeup of application processor of mobile device | |
US20070067520A1 (en) | Hardware-assisted device configuration detection | |
US11435985B2 (en) | Electronic device and operation method thereof | |
US11016769B1 (en) | Method and apparatus for processing information | |
CN104021060A (zh) | Bmc串口调试系统及方法 | |
CN110851154B (zh) | 用于更新只读存储器编码的计算机实施方法、系统及介质 | |
CN108647131B (zh) | 运行日志的输出系统 | |
CN109582377A (zh) | Bios选项修改方法、装置、设备及存储介质 | |
CN116775152A (zh) | 芯片启动方法及芯片 | |
CN113360161A (zh) | 资源升级方法及相关产品 | |
CN116243949A (zh) | 一种软件升级方法、装置、嵌入式设备及存储介质 | |
US20060080636A1 (en) | Method of building intelligent platform management interface firmware architecture | |
CN114117562B (zh) | 智能网卡的管理方法、装置、电子设备及计算机存储介质 | |
CN117389578A (zh) | 云终端系统升级方法、装置、云终端和存储介质 | |
US10866922B1 (en) | Firmware debug trace capture using serial peripheral interface | |
CN107562440A (zh) | 一种eeprom版本更新方法及装置 | |
CN117742805B (zh) | 芯片初始化方法和装置 | |
CN111274179A (zh) | 一种USB Hub及控制方法 | |
CN117971272A (zh) | 一种程序升级方法和电子设备 | |
CN115599191B (zh) | 智能网卡的上电方法及上电装置 | |
CN112698885B (zh) | 运行方法和装置 | |
US9479565B2 (en) | Selecting a network connection for data communications with a networked device | |
CN117742805A (zh) | 芯片初始化方法和装置 | |
CN115858296A (zh) | 一种软看门狗、设备及存储介质 | |
CN112099861A (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 |