专利名称:一种BootLoader架构设计方法
技术领域:
本发明涉及BootLoader架构设计方法,特别是涉及一种架构结构清晰,功能更加 强大,便于维护和修改,可扩展性强,在软件更新和功能扩展方面优势明显的BootLoader 架构设计方法。
背景技术:
嵌入式系统是以应用为中心,软硬件可剪裁的,适用于对功能、可靠性、成本、体 积、功耗等综合性严格要求的专用计算机系统。它具有软件代码小、高度自动化、响应速度 快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支 撑硬件、嵌入式操作系统及应用软件系统等组成,可独立工作。 BootLoader是用来完成嵌入式系统启动和系统软件加载工作的程序,是系统开发 中关键的步骤。BootLoader —方面提供强大的程序下载和调试功能,另一方面要便于扩展 更新和软件升级,给用户提供一种便于修改,便于在所有微处理器上移植的友好的软件架 构。 不带BootLoader的嵌入式操作系统灵活性较差,缺少与用户的信息交互过程,无 法实现便捷有效的参数传递。每次对系统的软硬件部分做修改,都需要改动系统软件,对操 作系统重新编译、调试、下载,这样延长了开发周期,也浪费了大量资源,不利于系统的升级 和维护。 而目前许多带BootLoader的操作系统都是针对特定的微处理器平台设计的,硬 件的修改会对软件带来很大的影响,软件修改的工作量较大,故灵活性也不够。
发明内容
针对上述问题,本发明的主要目的在于提供一种架构结构清晰,功能更加强大,便 于维护和修改,可扩展性强,在软件更新和功能扩展方面优势明显的通用的嵌入式系统启 动引导程序(Boot Loader)的框架设计方法。 本发明是通过下述技术方案来解决上述技术问题的一种Boot Loader架构设计 方法,该方法包括如下步骤第一步将Flash地址空间划分为五个区域,分别为负责硬件 平台的初始化的启动代码区、存放处理器相关的配置文件以及外围固件的配置文件的配置 区、存放启动代码和操作系统间需要传递交互参数的参数区、保存内存内核镜像副本的镜 像区以及存放应用软件和用户数据的数据区; 第二步在启动代码区内添加内存地址规划的配置文件,为平台上不同的功能模 块划分不同的内存区域; 第三步将启动代码区划分为两个部分硬件平台相关的代码区和平台独立的公 共代码区; 第四步定制操作系统,制作内核镜像,存放在镜像区,在PC机端边修改边调试, 下载到RAM中测试,最后将稳定版本烧写到Flash的镜像区;
第五步在数据区根据用户需求添加第三方软件、用户程序和数据。
其中,所述的启动代码区有两种操作模式启动加载模式和下载模式。 其中,所述的启动加载模式启动引导代码首先初始化外围设备,从配置区读取固
件程序配置到外围芯片中,然后从目标机上的存储设备上将操作系统,即内核镜像,加载到
RAM中运行。 其中,所述的下载模式启动代码同样先初始化外围设备,配置外围芯片,然后通过传输通道或外部存储介质,将操作系统下载或者复制到目标机的RAM中,然后写到目标机的Flash存储设备中。 其中,所述的配置区存放两类文件一类是和微处理器相关的配置文件,开发人员
可根据具体的硬件平台选择合适的配置文件,方便地在不同的处理器间移植,另一类是外
围固件的配置文件,启动程序可调用该文件完成外围固件的相关初始化。 其中,所述的参数区存放启动程序和内核之间的传递参数,内核可以访问这段区
域得到相应的启动参数,灵活地在不同的运行模式间切换。 其中,所述的镜像区存放着核心的操作系统,被加载到RAM中运行。 其中,所述的数据区根据需要划分不同的文件系统,保存应用程序和用户数据,用
户在该区域自由存取数据,从外部存储介质拷贝数据或读出数据保存到外部存储介质中。 本发明的积极进步效果在于本发明提供的BootLoader架构设计方法具有以下
优点这种BootLoader架构结构更加清晰,功能更加强大,便于维护和修改,可扩展性强,
在软件更新和功能扩展方面优势明显。
图1是本发明的系统整体框 图2是本发明的启动代码区框图。
具体实施例方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。图1是本发明的系统整体框图,如图l所示,左侧为一块Flash芯片,右侧为RAM芯片。Flash中的代码可以自拷贝到RAM中运行,也可以由启动代码引导,拷贝到RAM。 将Flash划分为五个区启动代码区,配置区,参数区,镜像区和数据区。启动代码
区存放启动引导代码;配置区存放处理器和外围固件的配置文件;参数区存放启动程序和
内核间的需要传递的参数;镜像区存放内核镜像;数据区存放应用软件和用户数据。 A、引导启动区 启动引导代码有两种操作模式 1)启动加载模式 该模式下,启动引导代码首先初始化外围设备,从配置区读取固件程序配置到外围芯片中,然后从目标机上的某个存储设备上将操作系统(即内核镜像)加载到RAM中运行,整个过程没有用户的介入,也没有信息交互。该模式为正常的运行模式。
2)下载模式 在该模式下,启动代码同样先初始化外围设备,配置外围芯片,然后通过传输通道或外部存储介质,将操作系统下载或者复制到目标机的RAM中,然后写到目标机的Flash存储设备中。可选的传输通道包括串口、USB、网络等。可选的外部存储介质也很多,例如SD卡、U盘等。该模式通常在第一次安装操作系统时使用。 具体可将其实现代码分为两类与硬件平台相关的代码、平台独立的代码。这样,任何硬件平台的修改只需改动启动代码中和硬件平台相关的代码即可,给开发人员带来了很大的便利。启动代码区的框图如图2所示。基本硬件初始化需要配合具体的板级电路来实现,属于硬件平台相关代码;内存地址规划也和板级的存储设备相关,可以由开发者根据需求自行规划修改,这部分也属于硬件平台相关代码;网络驱动和协议,Flash驱动和分区功能等是可以在各平台之间通用的,属于平台独立的代码部分。这里将Flash驱动归入公共代码部分,是考虑到它的重要性,可以将其设计成大小页兼容的驱动,增强通用性。具体来讲,和平台相关的代码包括CPU参数配置,外围模块的初始化和驱动设计(例如初始化RAM,网络驱动,串口 USB驱动等)。另外,与平台无关的部分包括一些小的网络协议栈和Flash设备的分区功能。协议栈为网络下载提供DHCP,TFTP,UDP等网络服务功能,Flash分区功能为镜像区和数据区创建分区。启动代码区还有一个关键的部分是内存地址的规划,给不同的功能模块划分不同的内存区域。科学合理的分配内存地址保障了系统运行的稳定性。启动程序还可提供命令行界面,用户通过选择不同的方式下载、调试或运行操作系统,具有很大的灵活性。
B、配置区 配置区存放两类文件一类是和微处理器相关的配置文件,开发人员可根据具体的硬件平台选择合适的配置文件,方便地在不同的处理器间移植。另一类是外围固件的配置文件,启动程序可调用该文件完成外围固件的相关初始化。
C、参数区 参数区存放启动程序和内核之间的传递参数。内核可以访问这段区域得到相应的启动参数,灵活地在不同的运行模式间切换。
D、镜像区 镜像区存放着核心的操作系统,它可以被加载到RAM中运行。当处于调试状态时,操作系统从PC机下载到RAM中,边调试边修改。可以将调试完成的稳定版本镜像再复制到Nand Flash的镜像区,覆盖旧版本。这样,既方便了操作系统的调试和错误定位,也有效地保证了镜像区中操作系统的稳定型。
E、数据区 数据区可根据需要划分不同的文件系统,保存应用程序和用户数据。用户可在该
区域自由存取数据,从外部存储介质拷贝数据或读出数据保存到外部存储介质中。 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术
人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本
发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变
化和改进都落入要求保护的本发明范围内,本发明要求保护范围由所附的权利要求书及其
等效物界定。
权利要求
一种BootLoader架构设计方法,其特征在于该方法包括如下步骤第一步将Flash地址空间划分为五个区域,分别为负责硬件平台的初始化的启动代码区(1)、存放处理器相关的配置文件以及外围固件的配置文件的配置区(2)、存放启动代码和操作系统间需要传递交互参数的参数区(3)、保存内存内核镜像副本的镜像区(4)以及存放应用软件和用户数据的数据区(5);第二步在启动代码区(1)内添加内存地址规划的配置文件,为平台上不同的功能模块划分不同的内存区域;第三步将启动代码区(1)划分为两个部分硬件平台相关的代码区和平台独立的公共代码区;第四步定制操作系统,制作内核镜像,存放在镜像区(4),在PC机端边修改边调试,下载到RAM中测试,最后将稳定版本烧写到Flash的镜像区(4);第五步在数据区(5)根据用户需求添加第三方软件、用户程序和数据。
2. 根据权利要求1所述的BootLoader架构设计方法,其特征在于所述的启动代码区 (1)有两种操作模式启动加载模式和下载模式。
3. 根据权利要求2所述的BootLoader架构设计方法,其特征在于所述的启动加载模 式启动引导代码首先初始化外围设备,从配置区读取固件程序配置到外围芯片中,然后从 目标机上的存储设备上将操作系统,即内核镜像,加载到RAM中运行。
4. 根据权利要求2所述的BootLoader架构设计方法,其特征在于所述的下载模式启 动代码同样先初始化外围设备,配置外围芯片,然后通过传输通道或外部存储介质,将操作 系统下载或者复制到目标机的RAM中,然后写到目标机的Flash存储设备中。
5. 根据权利要求l所述的BootLoader架构设计方法,其特征在于所述的配置区(2) 存放两类文件一类是和微处理器相关的配置文件,开发人员可根据具体的硬件平台选择 合适的配置文件,方便地在不同的处理器间移植,另一类是外围固件的配置文件,启动程序 可调用该文件完成外围固件的相关初始化。
6. 根据权利要求l所述的BootLoader架构设计方法,其特征在于所述的参数区(3) 存放启动程序和内核之间的传递参数,内核可以访问这段区域得到相应的启动参数,灵活 地在不同的运行模式间切换。
7. 根据权利要求1所述的BootLoader架构设计方法,其特征在于所述的镜像区(4) 存放着核心的操作系统,被加载到RAM中运行。
8. 根据权利要求l所述的BootLoader架构设计方法,其特征在于所述的数据区(5) 根据需要划分不同的文件系统,保存应用程序和用户数据,用户在该区域自由存取数据,从 外部存储介质拷贝数据或读出数据保存到外部存储介质中。
全文摘要
本发明公开了一种BootLoader架构设计方法。该方法包括如下步骤将Flash地址空间划分为五个区域,分别为启动代码区、配置区、参数区、镜像区和数据区,启动代码区负责硬件平台的初始化;配置区存放处理器相关的配置文件以及外围固件的配置文件,由启动代码调用;参数区存放启动代码和操作系统间需要传递交互的参数;镜像区保存内存内核镜像的副本,可随时进行调试、维护和更新;数据区存放应用软件和用户数据。本发明提供的BootLoader架构设计方法架构结构清晰,功能更加强大,便于维护和修改,可扩展性强,在软件更新和功能扩展方面优势明显的BootLoader架构设计方法。
文档编号G06F9/445GK101763279SQ201010022850
公开日2010年6月30日 申请日期2010年1月15日 优先权日2010年1月15日
发明者周俊华, 谢皓 申请人:上海维宏电子科技有限公司;上海奈凯电子科技有限公司