CN109254799B - 引导程序的启动方法、装置及通信设备 - Google Patents
引导程序的启动方法、装置及通信设备 Download PDFInfo
- Publication number
- CN109254799B CN109254799B CN201810999453.8A CN201810999453A CN109254799B CN 109254799 B CN109254799 B CN 109254799B CN 201810999453 A CN201810999453 A CN 201810999453A CN 109254799 B CN109254799 B CN 109254799B
- Authority
- CN
- China
- Prior art keywords
- program
- memory chip
- chip
- boot
- segment
- 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.)
- Active
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/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提出一种引导程序的启动方法、装置及通信设备,涉及通信技术领域。控制芯片与第一存储芯片及第二存储芯片均通信,第一存储芯片预存有烧片文件,该烧片文件包括引导程序及BIOS程序,控制芯片在BIOS程序启动后,判断第二存储芯片中是否存储有引导程序,若未存储,则将第一存储芯片内的引导程序移动至第二存储芯片,并通过BIOS程序引导第二存储芯片内的引导程序启动。如此,在第二存储芯片焊接到PCB板上后,无需通过串口下载引导程序到第二存储芯片,而是在BIOS程序启动时将第一存储芯片内的引导程序搬移至第二存储芯片,整个搬移过程无需人员干预,也无需通信设备与计算机进行交互,从而有效提高了设备生产效率。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种引导程序的启动方法、装置及通信设备。
背景技术
通信设备的软件通常包括BIOS(Basic Input Output System,基本输入输出系统)程序、BootWare程序和系统IPE(Image Package Envelope,复合软件包套件)软件包。BIOS程序是一组固化到设备或者计算机上的一个ROM(Read-Only Memory,只读存储器)芯片上的程序,为设备或计算机提供最底层的、最直接的硬件设置和控制;BootWare程序是一种引导程序,能够初始化单板上其他硬件、引导系统IPE软件包运行、提供BootWare菜单功能;系统IPE软件包是用于引导设备启动的程序文件。通信设备上电时,首先运行BIOS程序,BIOS程序启动后引导BootWare程序运行,BootWare程序启动后引导系统IPE软件包运行。
存储芯片的常见封装形式有小外形封装(Small Out-Line Package,SOP)和球栅阵列封装(Ball Grid Array Package,BGA),SOP封装的存储芯片适用先烧后贴的工序,即可以先通过烧片器将程序烧制到存储芯片中,再将该存储芯片焊接到印制电路板(PrintedCircuit Board,PCB),BGA封装的存储芯片则不适用先烧后贴的工序。在通信设备的生产过程中,当需要将BootWare程序存放在内嵌式多媒体卡(Embedded Multi Media Card,EMMC)上时,由于EMMC上的存储芯片是BGA封装的,故不能按照上述先烧后贴的工序将BootWare程序烧制进EMMC上的存储芯片。目前,当需要将bootware程序存储于EMMC时,使用BIOS的shell命令行中的xmodem命令,通过串口来下载BootWare程序并写入到EMMC上的存储芯片,下载完成后,断电重启,或执行exit命令,退出shell,再次启动后,才会引导BootWare程序运行。由于通过串口下载BootWare程序的速率比较慢,且需要对现有的装备工程软件进行较大改动,在BootWare程序的加载过程中,通信设备与计算机的交互比较多,且需要人员的干预,比如接线、输入命令行等,故通信设备的生产效率低。
发明内容
本发明实施例的目的在于提供一种引导程序的启动方法、装置及通信设备,以解决现有技术中通过串口下载引导程序到存储芯片导致设备生产效率低的问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提出一种引导程序的启动方法,应用于控制芯片,所述控制芯片与第一存储芯片和第二存储芯片均通信,所述第一存储芯片预存有烧片文件,所述烧片文件包括引导程序及BIOS程序,所述方法包括:在所述BIOS程序启动后,判断所述第二存储芯片中是否存储有所述引导程序;当所述第二存储芯片中未存储所述引导程序时,将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片;通过所述BIOS程序引导所述第二存储芯片内的所述引导程序启动。
第二方面,本发明实施例还提出一种引导程序的启动装置,应用于控制芯片,所述控制芯片与第一存储芯片和第二存储芯片均通信,所述第一存储芯片预存有烧片文件,所述烧片文件包括引导程序及BIOS程序,所述装置包括:判断模块,用于在所述BIOS程序启动后,判断所述第二存储芯片中是否存储有所述引导程序;程序移动模块,用于当所述第二存储芯片中未存储所述引导程序时,将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片;程序引导模块,用于通过所述BIOS程序引导所述第二存储芯片内的所述引导程序启动。
第三方面,本发明实施例还提出一种通信设备,包括控制芯片和存储有计算机程序的第一存储芯片,所述计算机程序被所述控制芯片读取并运行时,实现上述第一方面所述的方法。
相对现有技术,本发明实施例具有以下有益效果:
本发明实施例提供的一种引导程序的启动方法、装置及通信设备,控制芯片与第一存储芯片和第二存储芯片均通信,第一存储芯片预存有烧片文件,烧片文件包括引导程序及BIOS程序,控制芯片在BIOS程序启动后,判断第二存储芯片中是否存储有引导程序,当第二存储芯片中未存储引导程序,将第一存储芯片内的引导程序移动至第二存储芯片,通过BIOS程序引导第二存储芯片内的引导程序启动。在本实施例中,在通信设备的生产阶段,是将包括引导程序与BIOS程序的烧片文件烧写到第一存储芯片中,通信设备上电后,控制芯片开始运行BIOS程序,并将第一存储芯片内的引导程序从第一存储芯片移动到第二存储芯片中存储,通过BIOS程序将引导程序引导启动起来,如此,在第二存储芯片焊接到PCB板上后,无需通过串口下载引导程序到第二存储芯片中,而是在BIOS程序启动时将第一存储芯片内的引导程序搬移至该第二存储芯片,由于该引导程序的整个搬移过程无需人员干预,也不需要通信设备与计算机进行交互,故有效提高了设备生产效率。
本发明实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的通信设备的一种结构框图。
图2示出了本发明实施例所提供的第一存储芯片的存储空间的示意图。
图3示出了本发明实施例所提供的第二存储芯片的存储空间的示意图。
图4示出了本发明实施例所提供的引导程序的启动方法的一种流程示意图。
图5示出了本发明实施例所提供的将引导程序从第一存储芯片移动到第二存储芯片的示意图。
图6示出了本发明实施例所提供的引导程序的启动方法的另一种流程示意图。
图7示出了本发明实施例所提供的将引导程序和分区信息从第一存储芯片移动到第二存储芯片的示意图。
图8示出了本发明实施例所提供的引导程序的启动装置的功能模块示意图。
图标:100-通信设备;300-引导程序的启动装置;110-控制芯片;120-第一存储芯片;130-第二存储芯片;310-判断模块;320-程序移动模块;330-程序引导模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,为本发明实施例所提供的通信设备100的一种结构框图。该通信设备100可以是交换机、路由器等设备,通信设备100包括控制芯片110、第一存储芯片120及第二存储芯片130, 第一存储芯片120及第二存储芯片130均与控制芯片110电连接,从而使控制芯片110与第一存储芯片120和第二存储芯片130均通信。其中,第一存储芯片120是SOP封装的芯片,第二存储芯片130是BGA封装的芯片。
第一存储芯片120中预存有烧片文件,该烧片文件包括引导程序及BIOS程序,引导程序包括基本段程序和扩展段程序。其中,该引导程序可以为BootWare程序。控制芯片110可以采用x86中央处理器(Central Processing Unit,CPU),第一存储芯片120的存储空间大小为16M,共划分为5个存储区域,该5个存储区域的布局可参照图2。0x0000~0x1000为描述符区,主要用于存放x86CPU要求的软件配置字,比如第一存储芯片120的传输速率、USB、PCIE(Peripheral Component Interconnect Express,高速外围器件互连)端口使能配置等;0x80000~0x400000为第一存储区域,可用于记录BIOS程序的版本号、客户化定制信息以及保存引导程序的扩展段程序,本实施例中主要用于保存扩展段程序;0xA00000~0xFFFFFF为第二存储区域,用于存储BIOS程序、引导程序的基本段程序以及第二存储芯片130的分区信息;0x1000~0x80000以及0x400000~0xA00000分别为第一保留区和第二保留区。
在本实施例中,第一存储芯片120的存储空间大小为4G,共划分为5个分区,该5个分区的布局可参照图3。第二存储芯片130的分区信息可以包括名称(即基本段区、分区信息区、SDA1区、SDA2区及SDA3区)和每个分区对应的地址空间范围,其中,基本段区大小为446B(字节),对应的地址空间范围为0x000~445B,用于存放引导程序的基本段程序;分区信息区对应的地址空间范围为445B~512B,用于存放第二存储芯片130的分区信息;扩展段区(即SDA1区)对应的地址空间范围为512B~32M+512B,其包括2M大小的主区和2M大小的备区,用于存放引导程序的扩展段程序,剩余存储空间用于存放参数和传递信息、作为BIOS程序升级时的临时中转空间;SDA2区对应的地址空间范围为32M+512B~96M+512B,用于保存产品信息;SDA3区对应的地址空间范围为96M+512B~4G,可供系统软件及文件系统使用。
该烧片文件可通过如下方式生成:对引导源程序的基本段源程序进行编译以生成该引导程序的基本段程序,将该基本段程序以及第二存储芯片130的分区信息记录到BIOS源程序中,对记录有该基本段程序和该分区信息的BIOS源程序进行编译以得到初始烧片文件,其中,该初始烧片文件包括基本段程序、分区信息以及BIOS程序,BIOS程序用于在被控制芯片110执行时将第一存储芯片120内的引导程序移动至第二存储芯片130;对该引导源程序的扩展段源程序进行编译以生成该引导程序的扩展段程序,并将扩展段程序内嵌至初始烧片文件,得到该烧片文件。
在本实施例中,该引导源程序是程序员用高级语言编写的程序,其包括基本段源程序和扩展段源程序两部分,经过编译器编译生成可以被控制芯片110执行的二进制文件,即上述的基本段程序和扩展段程序;同理,BIOS源程序也需要经过编译器编译生成可以被控制芯片110执行的二进制文件,即上述的BIOS程序。其中,该BIOS源程序中增加了从第一存储芯片120搬移数据到第二存储芯片130的功能,在编译BIOS源程序前,将该引导源程序的基本段源程序编译生成的基本段程序和第二存储芯片130的分区信息作为普通数据记录到BIOS源程序中,将记录有该基本段程序和该分区信息的BIOS源程序进行编译后可生成16M的BIOS烧片文件(即前述的初始烧片文件);该引导源程序的扩展段源程序通过打包编译工具,在编译时,自动内嵌到该BIOS烧片文件,具体嵌入过程为:通过Linux dd命令,将16M的BIOS烧片文件分段输出,其中0x0~0x80000和0x400000~0xFFFFFF区域的数据保持不变,0x80000~0x400000区域插入编译生成的扩展段程序,所得到的16M新文件即为前述的烧片文件。
在通信设备100的生产过程中,由于第一存储芯片120是SOP封装的,故可以先把生成的烧片文件烧写到第一存储芯片120上,再将第一存储芯片120焊接到PCB板;其中,该烧片文件的0x0~0x1000区域的数据烧写到第一存储芯片120上的描述符区,该烧片文件的0x80000~0x400000区域的数据烧写到第一存储芯片120上的第一存储区域,该烧片文件的0xA00000~0xFFFFFF区域的数据烧写到第一存储芯片120上的第二存储区域。通信设备100首次上电时,控制芯片110通过运行第一存储芯片120内的BIOS程序,可实现将第一存储芯片120内的引导程序移动到第二存储芯片130,并通过该BIOS程序引导引导程序启动。现有的设备生产过程中,当第二存储芯片130无法按照先烧后贴的工序来加载引导程序时,需要在第二存储芯片130焊接到PCB板后通过串口下载引导程序到第二存储芯片130,这种方式人员干预多,通信设备100与计算机的交互也比较多,故生产效率比较低,而本实施例中的通信设备100生产时,仅需把包括引导程序和BIOS程序的烧片文件烧写到第一存储芯片120中,当设备首次上电时,即可将该引导程序从第一存储芯片120搬移到第二存储芯片130,该引导程序的整个搬移过程不需要人员干预,也不需要通信设备100与计算机进行交互,从而不仅解决了第二存储芯片130无法按照先烧后贴的工序来加载引导程序的问题,而且极大提高了设备生产效率。
请参照图4,为本发明实施例所提供的引导程序的启动方法的一种流程示意图。需要说明的是,本发明实施例所述的引导程序的启动方法并不以图4以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本发明实施例所述的引导程序的启动方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该引导程序的启动方法可以应用于图1所示的控制芯片110,下面结合图4对该引导程序的启动方法的具体流程及步骤进行详细阐述。
步骤S201,在BIOS程序启动后,判断第二存储芯片130中是否存储有引导程序。
在本实施例中,当通信设备100上电后,控制芯片110首先运行BIOS程序,并判断第二存储芯片130中是否存储有引导程序,即判断第二存储芯片130中是否存储有该引导程序的基本段程序和扩展段程序,具体判断过程为:控制芯片110读取第二存储芯片130的基本段区的基本段数据,当基本段数据与第一存储芯片120内的基本段程序不一致时,判断第二存储芯片130未存储基本段程序;控制芯片110读取第二存储芯片130的扩展段区的扩展段数据,采用预设规则计算扩展段数据的校验值,当校验值与预设校验值不一致时,判断第二存储芯片130未存储扩展段程序。
步骤S202,当第二存储芯片130中未存储引导程序时,将第一存储芯片120内的引导程序移动至第二存储芯片130。
在本实施例中,该步骤S202具体包括:当第二存储芯片130未存储基本段程序时,将第一存储芯片120内的基本段程序移动至第二存储芯片130的基本段区;当第二存储芯片130未存储扩展段程序时,将第一存储芯片120内的扩展段程序移动至第二存储芯片130的扩展段区。
步骤S203,通过BIOS程序引导第二存储芯片130内的引导程序启动。
在本实施例中,当控制芯片110将引导程序的基本段程序和扩展段程序从第一存储芯片120移动到第二存储芯片130后,可通过BIOS程序引导引导程序的基本段程序运行,该基本段程序把扩展段程序搬移至内存开始运行,从而启动该引导程序。
需要说明的是,控制芯片110仅在该通信设备100在生产阶段首次上电时,会检测到第二存储芯片130中未存储该引导程序,从而将引导程序的基本段程序和扩展段程序从第一存储芯片120移动到第二存储芯片130,当该通信设备100再次启动时,则会检测到第二存储芯片130中存储有该引导程序,从而跳过引导程序从第一存储芯片120移动到第二存储芯片130的步骤,直接执行步骤S203;也即是说,引导程序只会在通信设备100的生产阶段搬移一次。
下面,对步骤S201~步骤S203做进一步阐述。假设该引导程序为BootWare程序,则该BootWare程序的基本段程序与BIOS程序一起存储在第一存储芯片120的第二存储区域中,该BootWare程序的扩展段程序存储在第一存储芯片120的第一存储区域中,如图5所示,当该通信设备100首次上电时,控制芯片110运行BIOS程序,由于BootWare程序的基本段程序和BIOS程序均预存在第一存储芯片120的第二存储区域,故BIOS程序可直接获取该基本段程序的内容,控制芯片110从第二存储芯片130的基本段区读取基本段数据,并将该基本段数据与第二存储区域内的基本段程序进行比对,当比对结果不一致时,则判断第二存储芯片130未存储该基本段程序,并把第二存储区域内的基本段程序移动到第二存储芯片130的基本段区;控制芯片110从第二存储芯片130的扩展段区读取扩展段数据,由于BootWare程序的扩展段程序存放在第一存储芯片120的第一存储区域,故该BIOS程序不能直接获取扩展段程序的内容,若按照与基本段程序相同的检测方式来判断扩展段区是否存储该扩展段程序,则需以读取数据的方式从第一存储区域将该扩展段程序读取出来,并将该扩展段程序与该扩展段数据进行比对,由于扩展段程序的数据量较大,故数据读取时间较长,导致检测效率较低,同时由于扩展段程序搬移到第二存储芯片130的扩展段区后可能会发生变化(例如,版本升级),若根据第二存储芯片130的扩展段区的扩展段数据和第一存储芯片120的第一存储区域的扩展段程序的比对结果来判断是否搬移第一存储区域的扩展段程序,则可靠性无法保证;为了提高检测效率以及保证检测可靠性,本实施例采用循环冗余校验(Cyclic Redundancy Check, CRC)算法(即上述的预设规则)计算出该扩展段数据的校验值,当该校验值与预设校验值(例如,“1”)不一致时,表明第二存储芯片130未存储该扩展段程序,并把第一存储区域内的扩展段程序移动到第二存储芯片130的扩展段区。当第二存储芯片130存储有BootWare程序时,控制芯片110通过BIOS程序引导BootWare程序的基本段程序运行,该基本段程序把扩展段程序搬移至内存开始运行,该扩展段程序则引导启动通信设备100上的系统IPE软件包,从而实现BootWare程序的启动。当通信设备100不是首次上电时,若判断第二存储芯片130中已存有BootWare程序,则直接BIOS程序引导BootWare程序启动,无需进行BootWare程序的搬移。
进一步地,如图6所示,在本实施例中,在BIOS程序启动后,该引导程序的启动方法还包括:
步骤S204,判断第二存储芯片130中是否存储有该分区信息。
在本实施例中,当通信设备100上电后,控制芯片110首先运行BIOS程序,读取第二存储芯片130的分区信息区的分区数据,当分区数据与第一存储芯片120内的分区信息不一致时,判断第二存储芯片130未存储该分区信息。
步骤S205,当第二存储芯片130中未存储该分区信息时,将第一存储芯片120内的分区信息移动至第二存储芯片130。
需要说明的是,在本实施例中,该步骤S204~步骤S205可以在图4所示的任一个步骤之前或任一个步骤之后执行,也可以与图4所示的任一个步骤同时执行,本申请对此不做限制。
下面,对步骤S201~步骤S205做进一步阐述。假设该引导程序为BootWare程序,则该BootWare程序的基本段程序、第二存储芯片130的分区信息及BIOS程序一起存储在第一存储芯片120的第二存储区域中,该BootWare程序的扩展段程序存储在第一存储芯片120的第一存储区域中,如图7所示,当该通信设备100首次上电时,控制芯片110运行BIOS程序,由于BootWare程序的基本段程序、第二存储芯片130的分区信息和BIOS程序均预存在第一存储芯片120的第二存储区域,故BIOS程序可直接获取该基本段程序和分区信息的内容,控制芯片110从第二存储芯片130的基本段区和分区信息区分别读取基本段数据和分区数据,将该基本段数据与第二存储区域内的基本段程序进行比对,当比对结果不一致时,则判断第二存储芯片130未存储该基本段程序,并把第二存储区域内的基本段程序移动到第二存储芯片130的基本段区;控制芯片110将该分区数据与第二存储区域内的分区信息进行比对,当比对结果不一致时,则判断第二存储芯片130未存储该分区信息,并把第二存储区域内的分区信息移动到第二存储芯片130的分区信息区;控制芯片110从第二存储芯片130的扩展段区读取扩展段数据,并采用CRC算法计算该扩展段数据的校验值,并将该校验值与预设校验值进行比较,若不一致,表明第二存储芯片130未存储该扩展段程序,从而把第一存储区域内的扩展段程序移动到第二存储芯片130的扩展段区。当第二存储芯片130存储有BootWare程序时,控制芯片110通过BIOS程序引导BootWare程序的基本段程序运行,该基本段程序把扩展段程序搬移至内存开始运行,该扩展段程序则引导启动通信设备100上的系统IPE软件包,从而实现BootWare程序的启动。
在本实施例中,由于BIOS源程序中记录了BootWare程序的基本段程序和第二存储芯片130的分区信息,并增加了从第一存储芯片120搬移数据到第二存储芯片130的功能,BIOS源程序编译后生成16M的BIOS烧片文件,而BootWare程序的扩展段程序内嵌到该BIOS烧片文件,从而得到包括BootWare程序及BIOS程序的烧片文件,将该烧片文件烧写到第一存储芯片120中,当通信设备100首次上电时,通过执行BIOS程序,便可将BootWare程序从第一存储芯片120移动到第二存储芯片130,相比现有技术中通过串口下载BootWare程序到第二存储芯片130的方式,无需人员干预,也不需要设备与计算机进行交互,故有效提高了设备的生产效率。
需要说明的是,在本实施例中,当通信设备100需要更新BootWare程序的版本时,则可以在BootWare程序提供的BootWare菜单下进行升级,或者通过该通信设备100的系统软件命令行下使用bootrom update命令进行升级。
请参照图8,为本发明实施例所提供的引导程序的启动装置300的功能模块示意图。需要说明的是,本实施例所提供的引导程序的启动装置300,其基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容。该引导程序的启动装置300可以应用于图1所示的控制芯片110,包括判断模块310、程序移动模块320、程序引导模块330。
可以理解,上述的判断模块310、程序移动模块320、程序引导模块330可以为存储于第一存储芯片120内的软件功能模块及计算机程序,并且可以被控制芯片110读取并运行。该计算机程序可以理解为上述烧片文件所包括的可执行程序。
判断模块310用于在BIOS程序启动后,判断第二存储芯片130中是否存储有引导程序。
在本实施例中,该引导程序包括基本段程序和扩展段程序,判断模块310具体用于读取第二存储芯片130的基本段区的基本段数据,当该基本段数据与第一存储芯片120内的基本段程序不一致时,判断第二存储芯片130未存储该基本段程序;读取第二存储芯片130的扩展段区的扩展段数据,采用预设规则计算该扩展段数据的校验值,当该校验值与预设校验值不一致时,判断第二存储芯片130未存储该扩展段程序。
在本实施例中,该烧片文件还包括第二存储芯片130的分区信息,判断模块310还用于在BIOS程序启动后,判断第二存储芯片130中是否存储有该分区信息。其中,判断模块310具体用于读取第二存储芯片130的分区信息区的分区数据,当该分区数据与第一存储芯片120内的分区信息不一致时,判断第二存储芯片130未存储该分区信息。
可以理解,判断模块310可以执行上述步骤S201及步骤S204。
程序移动模块320用于当第二存储芯片130中未存储引导程序时,将第一存储芯片120内的引导程序移动至第二存储芯片130。
在本实施例中,程序移动模块320具体用于当第二存储芯片130未存储基本段程序时,将第一存储芯片120内的基本段程序移动至第二存储芯片130的基本段区;当第二存储芯片130中未存储分区信息时,将第一存储芯片120内的分区信息移动至第二存储芯片130;当第二存储芯片130未存储扩展段程序时,将第一存储芯片120内的扩展段程序移动至第二存储芯片130的扩展段区。
可以理解,程序移动模块320可以执行上述步骤S202及步骤S205。
程序引导模块330用于通过BIOS程序引导第二存储芯片130内的引导程序启动。
可以理解,程序引导模块330可以执行上述步骤S203。
综上所述,本发明实施例提供的引导程序的启动方法、装置及通信设备,控制芯片与第一存储芯片和第二存储芯片均通信,第一存储芯片预存有烧片文件,烧片文件包括引导程序及BIOS程序,控制芯片在BIOS程序启动后,判断第二存储芯片中是否存储有引导程序,当第二存储芯片中未存储引导程序,将第一存储芯片内的引导程序移动至第二存储芯片,通过BIOS程序引导第二存储芯片内的引导程序启动。在本实施例中,由于第一存储芯片适用先烧后贴的工序,而第二存储芯片不适用先烧后贴的工序,在通信设备的生产阶段,可将包括引导程序与BIOS程序的烧片文件烧写到第一存储芯片中,通信设备上电后,控制芯片开始运行BIOS程序,并将第一存储芯片内的引导程序从第一存储芯片移动到第二存储芯片中存储,通过BIOS程序将引导程序引导启动起来。也即是说,对于不适用先烧后贴工序的第二存储芯片,其存放的引导程序是先烧写到第一存储芯片中,在通信设备首次上电时从第一存储芯片搬移至该第二存储芯片的,这样在该第二存储芯片焊接到PCB板上后,不需要通过串口下载引导程序到第二存储芯片,在该引导程序从第一存储芯片搬移到第二存储芯片的整个过程中,无需人员干预,也不需要通信设备与计算机进行交互,从而有效提高了设备生产效率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (12)
1.一种引导程序的启动方法,应用于控制芯片,其特征在于,所述控制芯片与第一存储芯片和第二存储芯片均通信,所述第一存储芯片预存有烧片文件,所述烧片文件包括引导程序及BIOS程序,所述烧片文件是按照先烧后贴的工序烧写到所述第一存储芯片,所述引导程序包括基本段程序和扩展段程序,所述烧片文件通过如下方式生成:对引导源程序的基本段源程序进行编译以生成所述引导程序的基本段程序;将所述基本段程序以及所述第二存储芯片的分区信息记录到BIOS源程序中;对记录有所述基本段程序和所述分区信息的所述BIOS源程序进行编译以得到初始烧片文件;其中,所述初始烧片文件包括所述基本段程序、所述分区信息以及所述BIOS程序,所述BIOS程序用于在被所述控制芯片执行时将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片;对所述引导源程序的扩展段源程序进行编译以生成所述引导程序的扩展段程序,并将所述扩展段程序内嵌至所述初始烧片文件,得到所述烧片文件;所述方法包括:
在所述BIOS程序启动后,判断所述第二存储芯片中是否存储有所述引导程序;
当所述第二存储芯片中未存储所述引导程序时,将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片;
通过所述BIOS程序引导所述第二存储芯片内的所述引导程序启动。
2.如权利要求1所述的引导程序的启动方法,其特征在于,所述判断所述第二存储芯片中是否存储有所述引导程序的步骤包括:
读取所述第二存储芯片的基本段区的基本段数据,当所述基本段数据与所述第一存储芯片内的基本段程序不一致时,判断所述第二存储芯片未存储所述基本段程序;
读取所述第二存储芯片的扩展段区的扩展段数据,采用预设规则计算所述扩展段数据的校验值,当所述校验值与预设校验值不一致时,判断所述第二存储芯片未存储所述扩展段程序。
3.如权利要求2所述的引导程序的启动方法,其特征在于,所述当所述第二存储芯片中未存储所述引导程序时,将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片的步骤包括:
当所述第二存储芯片未存储所述基本段程序时,将所述第一存储芯片内的基本段程序移动至所述第二存储芯片的基本段区;
当所述第二存储芯片未存储所述扩展段程序时,将所述第一存储芯片内的扩展段程序移动至所述第二存储芯片的扩展段区。
4.如权利要求1所述的引导程序的启动方法,其特征在于,所述烧片文件还包括所述第二存储芯片的分区信息,在所述BIOS程序启动后,所述方法还包括:
判断所述第二存储芯片中是否存储有所述分区信息;
当所述第二存储芯片中未存储所述分区信息时,将所述第一存储芯片内的分区信息移动至所述第二存储芯片。
5.如权利要求4所述的引导程序的启动方法,其特征在于,所述判断所述第二存储芯片中是否存储有所述分区信息的步骤包括:
读取所述第二存储芯片的分区信息区的分区数据,当所述分区数据与所述第一存储芯片内的分区信息不一致时,判断所述第二存储芯片未存储所述分区信息。
6.如权利要求1所述的引导程序的启动方法,其特征在于,所述第一存储芯片包括第一存储区域及第二存储区域,所述第一存储区域用于存储所述扩展段程序,所述第二存储区域用于存储所述基本段程序、所述分区信息以及所述BIOS程序。
7.一种引导程序的启动装置,应用于控制芯片,其特征在于,所述控制芯片与第一存储芯片和第二存储芯片均通信,所述第一存储芯片预存有烧片文件,所述烧片文件包括引导程序及BIOS程序,所述烧片文件是按照先烧后贴的工序烧写到所述第一存储芯片,所述引导程序包括基本段程序和扩展段程序,所述烧片文件通过如下方式生成:对引导源程序的基本段源程序进行编译以生成所述引导程序的基本段程序;将所述基本段程序以及所述第二存储芯片的分区信息记录到BIOS源程序中;对记录有所述基本段程序和所述分区信息的所述BIOS源程序进行编译以得到初始烧片文件;其中,所述初始烧片文件包括所述基本段程序、所述分区信息以及所述BIOS程序,所述BIOS程序用于在被所述控制芯片执行时将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片;对所述引导源程序的扩展段源程序进行编译以生成所述引导程序的扩展段程序,并将所述扩展段程序内嵌至所述初始烧片文件,得到所述烧片文件;所述装置包括:
判断模块,用于在所述BIOS程序启动后,判断所述第二存储芯片中是否存储有所述引导程序;
程序移动模块,用于当所述第二存储芯片中未存储所述引导程序时,将所述第一存储芯片内的所述引导程序移动至所述第二存储芯片;
程序引导模块,用于通过所述BIOS程序引导所述第二存储芯片内的所述引导程序启动。
8.如权利要求7所述的引导程序的启动装置,其特征在于,所述判断模块用于读取所述第二存储芯片的基本段区的基本段数据,当所述基本段数据与所述第一存储芯片内的基本段程序不一致时,判断所述第二存储芯片未存储所述基本段程序;读取所述第二存储芯片的扩展段区的扩展段数据,采用预设规则计算所述扩展段数据的校验值,当所述校验值与预设校验值不一致时,判断所述第二存储芯片未存储所述扩展段程序。
9.如权利要求8所述的引导程序的启动装置,其特征在于,所述程序移动模块用于当所述第二存储芯片未存储所述基本段程序时,将所述第一存储芯片内的基本段程序移动至所述第二存储芯片的基本段区;当所述第二存储芯片未存储所述扩展段程序时,将所述第一存储芯片内的扩展段程序移动至所述第二存储芯片的扩展段区。
10.如权利要求7所述的引导程序的启动装置,其特征在于,所述烧片文件还包括所述第二存储芯片的分区信息,所述判断模块还用于在所述BIOS程序启动后,判断所述第二存储芯片中是否存储有所述分区信息,所述程序移动模块还用于当所述第二存储芯片中未存储所述分区信息时,将所述第一存储芯片内的分区信息移动至所述第二存储芯片。
11.如权利要求10所述的引导程序的启动装置,其特征在于,所述判断模块用于读取所述第二存储芯片的分区信息区的分区数据,当所述分区数据与所述第一存储芯片内的分区信息不一致时,判断所述第二存储芯片未存储所述分区信息。
12.一种通信设备,其特征在于,包括控制芯片和存储有计算机程序的第一存储芯片,所述计算机程序被所述控制芯片读取并运行时,实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810999453.8A CN109254799B (zh) | 2018-08-29 | 2018-08-29 | 引导程序的启动方法、装置及通信设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810999453.8A CN109254799B (zh) | 2018-08-29 | 2018-08-29 | 引导程序的启动方法、装置及通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109254799A CN109254799A (zh) | 2019-01-22 |
CN109254799B true CN109254799B (zh) | 2023-03-10 |
Family
ID=65049477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810999453.8A Active CN109254799B (zh) | 2018-08-29 | 2018-08-29 | 引导程序的启动方法、装置及通信设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254799B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113741979A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 芯片及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929673A (zh) * | 2012-10-31 | 2013-02-13 | 西安诺瓦电子科技有限公司 | Led显示屏控制装置操作系统镜像文件的安装方法 |
CN103645920A (zh) * | 2013-12-19 | 2014-03-19 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式系统程序烧录方法及系统 |
CN106293832A (zh) * | 2016-08-09 | 2017-01-04 | 上海盈方微电子有限公司 | 一种soc芯片引导启动方法及系统 |
CN106775610A (zh) * | 2016-03-22 | 2017-05-31 | 新华三技术有限公司 | 一种电子设备启动方法及一种电子设备 |
CN108205443A (zh) * | 2016-12-16 | 2018-06-26 | 北京视联动力国际信息技术有限公司 | 一种多核设备引导程序和文件系统的烧写方法和装置 |
CN108279935A (zh) * | 2016-12-30 | 2018-07-13 | 北京中科晶上科技股份有限公司 | 一种针对片上系统的操作系统启动引导方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59103176A (ja) * | 1982-12-02 | 1984-06-14 | Matsushita Electric Ind Co Ltd | オンライン文字認識装置 |
JP3384337B2 (ja) * | 1998-09-07 | 2003-03-10 | 株式会社デンソー | 車両用交流発電機の固定子 |
TW201011769A (en) * | 2008-09-12 | 2010-03-16 | Inventec Corp | A memory management method of POST |
CN101464804A (zh) * | 2008-12-29 | 2009-06-24 | 杭州迪普科技有限公司 | 一种双Boot备份方法及安全设备 |
CN101477469A (zh) * | 2009-02-06 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种启动代码的可靠性读取方法、写入方法和装置 |
US8612455B2 (en) * | 2010-10-06 | 2013-12-17 | Treato Ltd. | System and method for detecting personal experience event reports from user generated internet content |
CN102169445B (zh) * | 2011-05-13 | 2013-12-04 | 合肥华云通信技术有限公司 | 一种BootRom的安全升级方法 |
DE112012005628T5 (de) * | 2012-04-27 | 2014-10-09 | Hewlett-Packard Development Company, L.P. | Suche und Darstellung von Ähnlichkeitsscores |
CN103823664B (zh) * | 2012-11-19 | 2017-12-15 | 中兴通讯股份有限公司 | 一种二进制合一Boot程序及内核程序的设计方法 |
CN106569839B (zh) * | 2015-10-08 | 2020-09-04 | 华为技术有限公司 | 电路板及其固件烧录方法 |
CN105653330A (zh) * | 2015-12-30 | 2016-06-08 | 国家电网公司 | 一种基于SD卡的NorFlash烧写系统和方法 |
CN105760191A (zh) * | 2016-02-02 | 2016-07-13 | 西安诺瓦电子科技有限公司 | 嵌入式系统设备程序烧写量产方法 |
CN107832086B (zh) * | 2016-09-14 | 2020-03-20 | 华为技术有限公司 | 计算机设备、程序写入方法及程序读取方法 |
CN107491328A (zh) * | 2017-08-02 | 2017-12-19 | 广东美的暖通设备有限公司 | 固件程序升级方法、系统及电器设备 |
CN107908417B (zh) * | 2017-10-24 | 2021-06-29 | 北京臻迪科技股份有限公司 | 固件升级方法及电子设备 |
-
2018
- 2018-08-29 CN CN201810999453.8A patent/CN109254799B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929673A (zh) * | 2012-10-31 | 2013-02-13 | 西安诺瓦电子科技有限公司 | Led显示屏控制装置操作系统镜像文件的安装方法 |
CN103645920A (zh) * | 2013-12-19 | 2014-03-19 | 深圳市捷顺科技实业股份有限公司 | 一种嵌入式系统程序烧录方法及系统 |
CN106775610A (zh) * | 2016-03-22 | 2017-05-31 | 新华三技术有限公司 | 一种电子设备启动方法及一种电子设备 |
CN106293832A (zh) * | 2016-08-09 | 2017-01-04 | 上海盈方微电子有限公司 | 一种soc芯片引导启动方法及系统 |
CN108205443A (zh) * | 2016-12-16 | 2018-06-26 | 北京视联动力国际信息技术有限公司 | 一种多核设备引导程序和文件系统的烧写方法和装置 |
CN108279935A (zh) * | 2016-12-30 | 2018-07-13 | 北京中科晶上科技股份有限公司 | 一种针对片上系统的操作系统启动引导方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109254799A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070226400A1 (en) | Information processing apparatus and method of using otp memory | |
US20060064576A1 (en) | Boot systems and methods | |
CN106909362B (zh) | Bmc固件生成的方法和装置、bmc系统启动的方法和装置 | |
CN101751273A (zh) | 用于嵌入式系统的安全引导装置及方法 | |
KR20050079835A (ko) | 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체 | |
US20060195833A1 (en) | Data-burning method and system thereof based on auto-detection of computer platform | |
CN104008060A (zh) | 插件与宿主兼容性的检测方法及检测服务器 | |
CN102360569A (zh) | 非易失闪存芯片烧录方法、系统及装置 | |
US9697668B2 (en) | Automatically configurable smart card and method of automatically configuring a smart card | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
CN112181588A (zh) | 一种应用容器化方法、装置及电子设备和存储介质 | |
CN109254799B (zh) | 引导程序的启动方法、装置及通信设备 | |
CN112732321A (zh) | 一种固件修改方法、装置、计算机可读存储介质和设备 | |
CN110704113B (zh) | 一种基于fpga平台的启动方法、系统及开发板装置 | |
CN110113391B (zh) | 一种客户端上线方法、装置及一种客户端运行方法、装置 | |
CN102184115B (zh) | 升级系统软件的方法及终端设备 | |
CN110825361B (zh) | 一种代码修改方法、装置、设备及可读存储介质 | |
CN110515665B (zh) | 一种处理器系统的启动方法、系统及装置 | |
CN112052112A (zh) | 基于NOR Flash存储的位翻转错误检测方法、装置及存储介质 | |
CN112445540A (zh) | 程序运行方法、系统、终端及存储介质 | |
CN106897588B (zh) | 一种标签函数的处理方法及装置 | |
KR100734303B1 (ko) | 시스템 프로그램 다운로드 방법 | |
CN116991427B (zh) | 一种应用编译方法、装置、计算设备及存储介质 | |
CN113672238B (zh) | 基于实时操作系统模块化管理的运行方法、装置及设备 | |
CN114416145A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230619 Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd. Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466 Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd. |