一种启动装载BootLoader程序的引导方法和装置的制造方法_2

文档序号:9396721阅读:来源:国知局

[0044]图4示出了基于本发明的一种BootLoader程序的引导方法的示例性流程图。
【具体实施方式】
[0045]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0046]方法实施例一
[0047]参照图1,示出了本发明的一种BootLoader程序的引导方法实施例的步骤流程图,具体可以包括:
[0048]步骤101、读取外部存储器中的BootLoader程序;
[0049]这一步骤中,在嵌入式系统上电时,由嵌入式系统中的SOC芯片读取嵌入式系统中外部存储器中存储的BootLoader程序;
[0050]步骤102、对所述BootLoader程序进行解析后,运行所述BootLoader程序;
[0051]具体的,嵌入式系统中的SOC芯片通过内置的解析器来对从外部存储器中读取的BootLoader程序进行解析;解析完成之后,运行所述BootLoader程序,从而实现嵌入式系统的启动装载,从而启动操作系统运行。
[0052]需要说明的是,所述外部存储器中的BootLoader程序与所述SOC芯片内部的BootLoader程序共同构成完整的BootLoader程序,而SOC芯片内部的BootLoader程序是用于触发对外部存储器中的BootLoader程序的读取、解析和运行步骤,从而完成嵌入式系统的加载启动;具体来说,嵌入式系统中的SOC芯片在系统上电时,通过加载并运行SOC芯片内部的BootLoader程序来读取外部存储器中的BootLoader程序,并执行对所述外部存储器中的BootLoader程序的解析和运行。
[0053]所述外部存储器中的BootLoader程序是可以修改的程序,所述SOC芯片内部的BootLoader程序不能被修改。
[0054]上述方案中,由于BootLoader程序保存于外部存储器中,而不是固化于SOC芯片内部,因此,嵌入式系统的启动装载过程不需要依赖于SOC芯片来实现,这样,当嵌入式系统发生改变时,按照本发明实施例一提供的方法,只需要修改外部存储器中的BootLoader程序,使其满足更改之后的系统要求,则仍能够实现嵌入式系统的正常启动装载。
[0055]另一方面,由于BootLoader程序保存于外部存储器中,相较于现有技术来说,不需要在SOC芯片中内置可擦写存储器,既能灵活适应不同嵌入式系统实现系统的启动装载,又能够降低成本。
[0056]方法实施例二
[0057]参照图2,示出了本发明的一种BootLoader程序的引导方法实施例的步骤流程图,具体可以包括:
[0058]步骤201、读取外部存储器中的BootLoader程序,所述BootLoader程序为用户编写的程序;
[0059]因此,在读取所述外部存储器中的BootLoader程序之前,上述方法还包括:
[0060]接收用户编写的BootLoader程序,
[0061]编译所述BootLoader程序;
[0062]将所述BootLoader程序存储于外部存储器中。
[0063]通过上述方案,无论嵌入式系统发生任何系统更改,用户可以重新编写与更改后的系统相匹配的BootLoader程序,这样BootLoader程序不必依赖于SOC芯片,使得BootLoader程序具备更高的灵活性,能够适应不同系统的需求。
[0064]具体的,所述外部存储器可以为闪存flash存储器,包括NAND flash存储器和NORflash存储器等;也可以为安全数字(Secure Digital,SD)存储卡等其它类型存储装置。
[0065]具体的,所述BootLoader程序为符合以下第一语法格式的代码:
[0066]keyword+”” +address+”,” +value+”,” +wait-time,
[0067]其中,Address为寄存器地址;Value为寄存器地址的值;wait_time在写操作时,为写操作完后的延时时长,其值最大为Oxff,在读操作时,为校验check步骤的超时time-out 时长,其中,所述 time-out 时长为:wait-time*wait-time*0xl00 ;或者,
[0068]所述BootLoader程序为符合以下第二语法格式的代码:
[0069]keyword+,,,,+address+,,,,,+value+,,,”+wait-time+”,”+start-bit+”,”+end-bit,
[0070]其中,Address为寄存器地址;Value为寄存器地址的值;wait_time在写操作时,为写操作完后的延时时长,其值最大为Oxff,在读操作时,为check操作的time-out时长,其中,所述 time-out 时长为:wait-time*wait-time*0xl00 ;start_bit 在位操作时,用于表示位操作的起始位,start-bit的取值范围为O?31 ;end-bit在位操作时,用于表示位操作的终止位,end-bit的取值范围为O?31 ;或者,
[0071]所述BootLoader程序中同时包含符合第一语法格式和第二语法格式的代码;也就是,当BootLoader程序为多行代码构成时,这些代码中可以出现符合第一语法格式的代码,也可以同时出现符合第二语法格式的代码。
[0072]上述方案中,在读操作中,当start-bit和end-bit的最高bit都为I时,表示该读操作将不进行check操作。
[0073]上面给出了两种BootLoader程序的语法格式,但实际实现中,BootLoader程序包括但不限于上述两种具体的语法格式,还可以根据实际需要进行设置,只要是设置成能够对寄存器进行相应操作的代码即可,所述相应操作包括:读写、比较、延时等等。
[0074]步骤202、对所述BootLoader程序进行解析后,运行所述BootLoader程序。
[0075]具体的,嵌入式系统中的SOC芯片通过内置的解析器来对从外部存储器中读取的BootLoader程序进行解析;具体的,所述解析器为能够符合相应语法格式的BootLoader程序进行解析的解析器。
[0076]解析完成之后,嵌入式系统运行所述BootLoader程序,实现嵌入式系统的启动装载,从而启动操作系统运行。
[0077]需要说明的是,本发明实施例二提供的方法中SOC芯片内置的解析器是与BootLoader程序的规定语法格式相匹配的,也就是,当规定了 BootLoader程序的语法格式之后,SOC芯片内置的解析器也是确定的;而用户自定义的BootLoader程序只需要满足规定的语法格式即可。
[0078]还需说明的是,所述外部存储器中的BootLoader程序于所述SOC芯片内部的BootLoader程序共同构成完整的BootLoader程序,而SOC芯片内部的BootLoader程序是用于触发对外部存储器中的BootLoader程序的读取、解析和运行,从而完成嵌入式系统的加载启动;具体来说,嵌入式系统中的SOC芯片在系统上电时,通过加载并运行SOC芯片内部的BootLoader程序来读取外部存储器中的BootLoader程序,并执行对所述外部存储器中的BootLoader程序的解析和运行。
[0079]所述外部存储器中的BootLoader程序是可以修改的程序,所述SOC芯片内部的BootLoader程序不能被修改。
[0080]这样,通过这种方式所实现的BootLoader程序的引导方法,能够根据不同嵌入式系统的系统要求,进行BootLoader程序的设置和调整,克服了现有技术中BootLoader程序不能修改、或者需要通过在SOC芯片内置可擦写存储器才能实现BootLoader程序修改的问题,从而最大化的满足不同嵌入式系统的要求,且该实现方法简单、便捷,成本低廉。
[0081]装置实施例
[0082]参照图3,示出了本发明一种BootLoader程序的引导装置实施例的结构框图,所述装置位于嵌入式系统,具体为嵌入式系统的SOC芯片内,包括:程
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1