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

文档序号:9396721阅读:272来源:国知局
一种启动装载BootLoader程序的引导方法和装置的制造方法
【技术领域】
[0001]本发明涉及嵌入式系统设计领域,特别是涉及一种BootLoader程序的引导方法和装置。
【背景技术】
[0002]启动装载(BootLoader)程序是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。例如,在基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
[0003]目前,在嵌入式系统中,为实现BootLoader,通常采用以下两种主流方案:
[0004]I)将BootLoader程序固化于片上系统(S0C,System On Chip)芯片内部;这使得Boot Loader程序严重地依赖于SOC芯片而实现。后期随着系统的变化,BootLoader程序却无法改变,使得系统不能正常实现启动装载。而为了实现系统的正常启动装载,需要在SOC芯片设计阶段把BootLoader程序考虑周全,使其能够适应不同的系统,然而实现难度非常大;
[0005]2)S0C芯片内部设置一块可擦写的存储器,后期根据系统的需要重新对BootLoader程序编程。然而,由于可擦写存储器价格比较贵,将使得嵌入式系统硬件成本大大增加,另外,这种技术实现难度较高,因此,相对第一种方案,通过这一方案制造SOC芯片时的成功率比较低。

【发明内容】

[0006]为了解决现有存在的技术问题,本发明实施例期望提供一种BootLoader程序的引导方法和装置。
[0007]本发明实施例提供了一种BootLoader程序的引导方法,包括:
[0008]读取外部存储器中的BootLoader程序;
[0009]对所述BootLoader程序进行解析后,运行所述BootLoader程序。
[0010]优选地,在读取所述外部存储器中的BootLoader程序之前,所述方法还包括:
[0011]接收用户编写的BootLoader程序,
[0012]编译所述BootLoader程序;
[0013]将所述BootLoader程序存储于外部存储器中。
[0014]优选地,所述外部存储器为闪存flash存储器或由安全数字SD存储卡实现。
[0015]优选地,所述BootLoader程序为符合以下第一语法格式的代码:
[0016]keyword+””+address+”,”+value+”,”+wait-time,
[0017]其中,Address为寄存器地址;Value为寄存器地址的值;wait-time在写操作时,为写操作完后的延时时长,其值最大为Oxff,在读操作时,为校验check操作的超时time-out 时长,其中,所述 time-out 时长为:wait-time*wait-time*OxlOO ;或者,
[0018]所述BootLoader程序为符合以下第二语法格式的代码:
[0019]keyword+,,,,+address+,,,,,+value+,,,”+wait-time+”,”+start-bit+”,”+end-bit,
[0020]其中,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 ;或者,
[0021]所述BootLoader程序中同时包含符合第一语法格式和第二语法格式的代码。
[0022]本发明实施例提供了一种BootLoader程序的引导装置,包括:程序读取模块、夕卜部存储模块、程序解析模块和程序运行模块;其中,
[0023]所述程序读取模块,用于读取外部存储模块中的BootLoader程序;
[0024]所述外部存储模块,用于存储BootLoader程序;
[0025]所述程序解析模块,用于对所述BootLoader程序进行解析;
[0026]所述程序运行模块,用于在程序解析模块对所述BootLoader程序进行解析后,运行所述BootLoader程序。
[0027]本发明的另一种实施例中,所述装置还包括:程序接收模块、程序编译模块和程序存储模块;其中,
[0028]所述程序接收模块,用于在所述程序读取模块读取所述外部存储器中的BootLoader程序之前,接收用户编写的BootLoader程序,
[0029]所述程序编译模块,用于编译所述BootLoader程序;
[0030]所述程序存储操作模块,用于将所述BootLoader程序存储于外部存储模块中。
[0031]优选地,所述外部存储模块由闪存flash存储器实现、或由安全数字SD存储卡实现。
[0032]优选地,所述BootLoader程序为符合以下第一语法格式的代码:
[0033]keyword+”” +address+”,” +value+”,” +wait-time,
[0034]其中,Address为寄存器地址;Value为寄存器地址的值;wait_time在写操作时,为写操作完后的延时时长,其值最大为Oxff,在读操作时,为校验check步骤的超时time-out 时长,其中,所述 time-out 时长为:wait-time*wait-time*0xl00 ;或者,
[0035]所述BootLoader程序为符合以下第二语法格式的代码:
[0036]keyword+,,,,+address+,,,,,+value+,,,”+wait-time+”,”+start-bit+”,”+end-bit,
[0037]其中,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 ;或者,
[0038]所述BootLoader程序中同时包含符合第一语法格式和第二语法格式的代码。
[0039]本发明实施例至少具备以下优点:
[0040]本发明实施例所提供的一种BootLoader程序的引导方法和装置,读取外部存储器中的BootLoader程序;对所述BootLoader程序进行解析后,运行所述BootLoader程。上述方案中,由于BootLoader保存于外部存储器中,而不是固化于SOC芯片内部,因此,嵌入式系统的启动装载过程不需要依赖于SOC芯片来实现,这样,当嵌入式系统发生改变时,按照本发明实施例一提供的方法,只需要修改外部存储器中的BootLoader程序,使其满足更改之后的系统要求,则仍能够实现嵌入式系统的正常启动装载;另一方面,由于BootLoader程序保存于外部存储器中,相较于现有技术来说,不需要在SOC芯片中内置可擦写存储器,既能灵活适应不同嵌入式系统实现系统的启动装载,又能够降低成本。
【附图说明】
[0041]图1示出了本发明实施例一提供的一种BootLoader程序的引导方法的步骤流程图;
[0042]图2示出了本发明实施例二提供的一种BootLoader程序的引导方法实的步骤流程图;
[0043]图3示出了本发明的一种BootLoader程序的引导装置的基本结构框图
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1