一种嵌入式处理器的启动方法、嵌入式处理器及存储装置
技术领域
本发明属于嵌入式处理器技术领域,尤其涉及一种嵌入式处理器的启动方法、嵌入式处理器及存储装置。
背景技术
嵌入式处理器是嵌入式***的核心,是控制、辅助***运行的硬件单元,应用范围极其广阔。
嵌入式处理器通常支持多种启动方式,支持多种启动方式的嵌入式处理器一般通过两种方式选择启动方式:
1、通过io接口选择模式,需要拿几个io接口专门来配置启动模式,上电后通过采集io接口的电平状态来选择启动模式,这种方式缺点是:要占用几个io接口来设置启动模式,浪费io接口资源;
2、把启动模式数值写入某存储单元地址,上电后读取该单元地址的启动模式数值出来,根据启动模式数值进入相应启动模式,这种方法的缺点是:需要使用存储设备保存启动模式数值,并且要烧录启动模式数值,比较麻烦。
以上两种方式都不能自动识别启动方式。
发明内容
本发明实施例提供了一种嵌入式处理器的启动方法、嵌入式处理器及存储装置,旨在解决现有技术中通过io接口选择模式浪费io接口资源以及通过存储单元存储启动模式过程繁琐的技术问题。
在本发明实施例中,提供了一种嵌入式处理器的启动方法,所述方法包括:
硬件参数采集步骤:通过嵌入式处理器的io接口采集接入到所述嵌入式处理器的硬件参数;
模式启动步骤:根据当前的硬件参数进入相应的启动模式,其中,所述嵌入式处理器具有多种分别对应于不同硬件参数的启动模式。
本发明实施例中,所述启动模式包括usb升级模式、三种存储设备启动模式:sd模式、nor flash模式、nand flash模式、和三种测试模式:cp test模式、uart test模式、spitest模式。
本发明实施例中,如果在所述模式启动步骤中进入到三种测试模式之一,则直接进入到测试步骤中,从外部硬件设备中接收测试程序。
本发明实施例中,如果在所述模式启动步骤中进入到三种存储设备启动模式之一,则进入到校验步骤中,对存储设备进行校验。
本发明实施例中,所述校验步骤中,读取启动模式中对应的硬件设备中的启动代码,计算所述启动代码的校验值以判断所述启动代码是否正确,若正确则启动所述硬件设备。
本发明实施例中,所述校验步骤的具体过程包括:
从存储设备中加载32byte的文件头信息;
校验所述32byte的文件头信息是否正确,是则从存储设备中加载2K的文件头信息,并校验所述文件头信息是否正确,否则校验失败,跳至下一个启动方式进行校验;
校验所述2K的文件头信息是否正确时,是则判断USB线是否连接,否则校验失败跳至下一个启动方式进行校验;
判断USB线是否连接时,是则从存储设备中加载并运行用户代码,否则进入usb升级模式下载用户代码。
本发明实施例中,所述模式启动步骤中,根据设备启动的优先级来依次判断当前的硬件参数是否符合相应的启动模式。
本发明实施例中,所述启动模式的优先级依次为cp test模式、uart test模式、spi test模式、nor flash模式、sd模式、nand flash模式、usb升级模式。
本发明实施例中,还提供了一种嵌入式处理器,其包括至少一处理器、存储器及接口,所述至少一处理器、存储器及接口均通过总线连接;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述嵌入式处理器在启动时,执行上述的嵌入式处理器的启动方法。
本发明实施例中,还提供了一种存储装置,所述存储装置上存储有指令,所述指令被嵌入式处理器执行时实现上述的嵌入式处理器的启动方法。
与现有技术相比较,采用上述的嵌入式处理器的启动方法、嵌入式处理器及存储装置,在嵌入式处理器的启动时,自动对接入到所述嵌入式处理器的硬件参数进行采集,根据所述硬件参数来来进入相应的启动模式,只需在***上电时候通过io接口来采集硬件,无需在对io接口进行专门的硬件设置而一直占用io接口,所以不会浪费io接口;另外,也不必在存储设备中的特定空间烧录启动模式数值,简化了嵌入式处理器的启动设置过程。
附图说明
图1是本发明实施例一提供的嵌入式处理器的启动方法的流程图;
图2是图1的具体实现流程图;
图3是图2中nor flash模式的启动校验流程图;
图4是本发明实施例二提供的嵌入式处理器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的嵌入式处理器的启动方法,所述方法包括步骤S1-S4,下面分别进行说明。
步骤S1、硬件参数采集步骤:通过嵌入式处理器的io接口采集接入到所述嵌入式处理器的硬件参数。
需要说明的是,嵌入式处理器通常是通过io接口与外部的硬件电路连接,从而实现某些特定的功能。在嵌入式处理器上电启动时,运行固化在嵌入式处理器内部的引导程序,对接入到所述嵌入式处理器的硬件参数进行采集。
步骤S2、模式启动步骤:根据当前的硬件参数进入相应的启动模式,其中,所述嵌入式处理器具有多种分别对应于不同硬件参数的启动模式。
需要说明的是,所述启动模式包括usb升级模式、三种存储设备启动模式:sd模式、nor flash模式、nand flash模式、和三种测试模式:cp test模式、uart test模式、spitest模式。cp test模式和uart test模式主要用于芯片开发人员测试嵌入式处理器的性能使用,而usb升级模式则用于嵌入式处理器在线升级程序(即用户代码)使用;spi test模式是用spi接口作为通信口,扩展芯片与外部设备的通信功能。Sd模式、nor flash模式、nandflash模式主要是程序(即用户代码)存放在这些外设中,正常运行的时候所述嵌入式处理器会把程序从这些外部存储器中加载到ram里面再执行。
所述模式启动步骤中,根据设备启动的优先级来依次判断当前的硬件参数是否符合相应的启动模式。所述启动模式的优先级依次为cp test模式、uart test模式、spi test模式、nor flash模式、sd模式、nand flash模式、usb升级模式。
需要说明的是,如果在所述模式启动步骤中进入到三种测试模式之一,则直接进入步骤S3中,从外部硬件设备中接受测试程序。如果是在所述模式启动步骤中进入到三种存储设备启动模式式之一,则进入到步骤S4中对外部硬件设备进行校验,具体过程如图2所示。
步骤S3、测试步骤:从外部硬件设备中接受测试程序,准备进行测试。
步骤S4、校验步骤:读取启动模式中对应的硬件设备中的启动代码,计算所述启动代码的校验值以判断所述启动代码是否正确,若正确则启动所述硬件设备。
如图3所示, nor flash模式的校验过程包括:
从nor flash中加载32byte的文件头信息;
校验所述32byte的文件头信息是否正确,是则从nor flash中加载2K的文件头信息,并校验所述文件头信息是否正确,否则校验失败,跳至下一个启动方式进行校验;
校验所述2K的文件头信息是否正确时,是则判断USB线是否连接,否则校验失败跳至下一个启动方式进行校验;
判断USB线是否连接时,是则进入usb升级模式下载用户代码,否则从nor flash中加载并运行用户代码。
需要说明的是, sd模式、nand flash模式的校验过程与nor flash模式的校验过程的校验过程相同,都为存储设备的校验,此处不再赘述。
采用上述嵌入式处理器的启动方法在嵌入式处理器的启动时,自动对接入到所述嵌入式处理器的硬件参数进行采集,根据所述硬件参数来来进入相应的启动模式,只需在***上电时候通过io接口来采集硬件,无需在对io接口进行专门的硬件设置而一直占用io接口,所以不会浪费io接口;另外,也不必在存储设备中的特定空间烧录启动模式数值,简化了嵌入式处理器的启动设置过程。
实施例二
如图4所示,本实施例中,提供一种嵌入式处理器,其包括至少一处理器210、存储器220及接口230,所述至少一处理器210、存储器220及接口230均通过总线连接;
所述存储器220存储计算机执行指令;
所述至少一个处理器210执行所述存储器220存储的计算机执行指令,使得所述嵌入式处理器在启动时,执行实施例一所述的嵌入式处理器的启动方法。
进一步地,发明实施例中还提供了一种存储装置,所述存储装置上存储有指令,所述指令被嵌入式处理器执行时实现施例一所述的嵌入式处理器的启动方法。
综上所述,采用上述嵌入式处理器的启动方法、嵌入式处理器及存储装置,在嵌入式处理器的启动时,自动对接入到所述嵌入式处理器的硬件参数进行采集,根据所述硬件参数来来进入相应的启动模式,只需在***上电时候通过io接口来采集硬件,无需在对io接口进行专门的硬件设置而一直占用io接口,所以不会浪费io接口;另外,也不必在存储设备中的特定空间烧录启动模式数值,简化了嵌入式处理器的启动设置过程。
值得注意的是,本领域普通技术人员可以理解:实现上述方法实施例的步骤或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。