嵌入式Boot Loader分析与设计

嵌入式Boot Loader分析与设计

论文摘要

本课题源自于电子科技大学国家精品课程“嵌入式系统及应用”的建设,旨在进一步完善该精品课程实验系统。嵌入式Boot Loader是嵌入式系统中一个很重要的组成部分。市面上的书籍和教材中涉及到嵌入式BootLoader相关内容较少,同时该部分内容也比较抽象。对于大部分学生来说,在理解和掌握上存在一定的难度。因此,本人经过“嵌入式实时内核移植及应用开发”该项目中所积累的知识,并通过对当前流行的几种嵌入式Boot Loader进行了相关的探索和分析,设计了一个简单的易用理解和掌握的嵌入式Boot Loader——Core-Boot。基于Core-Boot设计了相关的实验内容,期望通过该内容能够使Boot Loader在嵌入式学习变得易于理解和掌握。在Core-Boot设计中,借鉴了当前流行的一些Boot Loader的最基本的内容,摒弃了它们的大量复杂的、难以理解的、或与特定应用相关的内容,同时也考虑了功能上的可扩充性。这使Core-Boot成为一个精简的、易于理解的、易于功能扩充Boot Loader,配合于LambdaEDU3的高可配置性,使其可以满足于教学实验的要求。并作为电子科技大学国家精品课程“嵌入式系统及应用”的建设中嵌入式BootLoader相关内容的一个重要的补充。

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 引言
  • 1.1 嵌入式系统概念
  • 1.2 嵌入式系统的发展的情况
  • 1.3 嵌入式BOOT LOADER 简介
  • 1.4 本文背景
  • 1.5 本论文结构
  • 第2章 实验系统介绍
  • 2.1 硬件环境
  • 2.1.1 W90P710 学习板
  • 2.1.2 LambdaICE JTAG
  • 2.2 软件环境
  • 2.2.1 LambdaEDU3
  • 2.2.2 GCC 工具链
  • 2.2.2.1 程序的编译和链接
  • 2.2.2.2 GCC 常用模式
  • 2.2.2.3 常用选项
  • 2.2.2.4 警告功能
  • 2.2.3 连接脚本
  • 2.2.3.1 基本概念
  • 2.2.3.2 链接脚本
  • 2.2.3.3 简单例子
  • 2.2.3.4 暗含的连接脚本
  • 2.2.4 Makefile
  • 2.2.4.1 Makefile 结构
  • 2.2.4.2 一个简单的Makefile 示例
  • 2.2.4.3 Makefile 的一个改进版本:使用变量
  • 2.2.4.4 Makefile 的一个改进版本:使用自动推导
  • 2.2.4.5 Makefile 的一个改进版本:自动变量($
  • $< $@)的应用
  • 2.3 总结
  • 第3章 嵌入式应用程序映像
  • 3.1 ELF 文件
  • 3.1.1 elf 文件简介
  • 3.1.2 elf 目标文件格式
  • 3.1.3 elf Header 部分
  • 3.1.4 elf 节区(Sections)
  • 3.1.5 字符串表(String Table)
  • 3.1.6 符号表(Symbol Table)
  • 3.1.7 重定位信息
  • 3.1.7.1 重定位表项
  • 3.1.7.2 重定位类型
  • 3.1.8 程序加载和动态链接
  • 3.2 其他文件格式
  • 3.2.1 S-Record 文件
  • 3.2.2 HEX 文件格式
  • 3.2.3 BIN 文件格式
  • 3.3 部分可执行文件格式的区别
  • 3.4 总结
  • 第4章 主流嵌入式BOOTLOADER 分析
  • 4.1 主流嵌入式BOOTLOADER 比较
  • 4.1.1 Blob(Boot Loader Object)
  • 4.1.2 ARMBoot
  • 4.1.3 U-Boot
  • 4.1.4 Redboot
  • 4.1.5 vivi
  • 4.1.6 Bios-lt
  • 4.2 U-BOOT 源代码分析
  • 4.2.1 第一阶段(Stage 1)
  • 4.2.2 第二阶段(Stage 2)
  • 4.2.3 U-boot 的初始化
  • data'>4.2.3.1 私有数据globaldata
  • sequence'>4.2.3.2 初始化序列initsequence
  • 4.2.3.3 环境变量重定位
  • 4.2.3.4 初始化设备
  • 4.2.3.5 控制台初始化
  • 4.2.4 命令处理
  • 4.2.4.1 命令数据结构
  • 4.2.4.2 命令查找
  • 4.2.4.3 主循环
  • 4.3 总结
  • 第5章 CORE-BOOT 设计与实现
  • 5.1 ARM 处理器启动原理
  • 5.2 CORE-BOOT 组织结构设计
  • 5.2.1 LambdaEDU3 目录结构
  • 5.2.2 Core-Boot 目录结构
  • 5.2.2.1 /target/tool/bsps/boards 目录
  • 5.2.2.2 /target/tool/bsps/drivers 文件夹
  • 5.2.2.3 /target/tool/bsps/include 文件夹
  • 5.2.2.4 /target/tool/bsps/shared 文件夹
  • 5.3 CORE-BOOT 代码设计
  • 5.3.1 Boot Loader 与应用的关系
  • 5.3.1.1 RAM Boot Loader
  • 5.3.1.2 Boot Loader 和应用一体化结构
  • 5.3.1.3 Boot Loader 与应用分离的结构
  • 5.3.2 地址规划设计(ROM 与RAM 的内存关系)
  • 5.3.2.1 内存不重新映射
  • 5.3.2.2 内存进行一次映射
  • 5.3.2.3 内存进行两次映射
  • 5.3.2.4 系统初始化
  • 5.3.3 Core-Boot 源代码设计
  • 5.3.3.1 Core-Boot 第一阶段(Stage 1)
  • 5.3.3.2 Core-Boot 第二阶段(Stage 2)
  • 5.3.4 Core-boot 的初始化
  • sequence'>5.3.4.1 Core-Boot 初始化序列initsequence
  • sequence 中的函数'>5.3.4.2 initsequence 中的函数
  • 5.3.4.3 NOR Flash 初始化
  • 5.3.4.4 NAND FLASH 初始化
  • 5.3.4.5 控制台初始化
  • 5.4 小结
  • 第6章 CORE-BOOT 测试以及实验设计
  • 6.1 基于RAM 的BOOT LOADER 实验
  • RAM”'>6.1.1 创建项目“BootRAM”
  • 6.1.2 项目设置
  • 6.1.3 项目编译
  • 6.1.4 下载运行
  • 6.1.5 验证结果
  • 6.2 基于ROM 的BOOT LOADER 实验
  • App”'>6.2.1 创建项目“BootApp”
  • 6.2.2 项目设置
  • 6.2.3 项目编译
  • 6.2.4 烧写
  • 6.2.5 验证结果
  • 6.3 基于ROMRAM 的BOOT LOADER 的实验
  • 6.3.1 创建项目“Core-Boot”
  • 6.3.2 项目配置
  • 6.3.3 项目编译
  • 6.3.4 烧写
  • 6.3.5 验证结果
  • 6.4 总结
  • 第7章 结论
  • 7.1 本课题研究的主要内容
  • 7.2 CORE-BOOT 的移植简述
  • 7.3 CORE-BOOT 的优缺点
  • 7.4 课题中的学习和工作情况
  • 致谢
  • 参考文献
  • 附录
  • 在学期间的研究成果
  • 相关论文文献

    • [1].World Book Day 2017:Teachers Dress Up——In Pictures[J]. 英语文摘 2017(04)
    • [2].基于S3C2410的Windows CE 5.0 Boot Loader的设计[J]. 电脑知识与技术 2008(S2)
    • [3].Porting U-Boot to the Control Computer Based on MPC8349[J]. 微计算机信息 2009(26)
    • [4].一种小型嵌入式Linux Boot Loader的设计与实现[J]. 计算机应用与软件 2008(01)
    • [5].浅谈Spring Boot框架下如何快速进行后台开发[J]. 海峡科技与产业 2019(02)
    • [6].基于U-Boot的嵌入式系统双启动设计与实现[J]. 物联网技术 2018(11)
    • [7].Spring Boot研究和应用[J]. 信息通信 2016(10)
    • [8].基于三星S3C2440 Boot Loader的研究[J]. 兵工自动化 2008(06)
    • [9].Clarks:奇遇点亮生活——Trace Boot全新上市[J]. 中外鞋业 2017(10)
    • [10].构建基于Dubbo框架的Spring Boot微服务[J]. 计算机与数字工程 2018(12)
    • [11].U-Boot原理分析与TX2440A开发板上的移植[J]. 广播电视信息 2017(S1)
    • [12].基于Spring Boot的web设计与实现[J]. 轻工科技 2016(07)
    • [13].一种U-Boot压缩和自解压实现方法[J]. 计算机光盘软件与应用 2014(05)
    • [14].基于S3C2410的U-Boot移植[J]. 电子技术 2012(01)
    • [15].基于Spring Boot与Vue的系统管理模块开发探究[J]. 电声技术 2019(02)
    • [16].U-Boot在S5PV210上的启动及编译过程分析[J]. 电脑知识与技术 2018(05)
    • [17].基于ARM嵌入式系统的Boot Loader启动分析与移植[J]. 信息通信 2018(07)
    • [18].虚拟化环境下应用SAN Boot的研究[J]. 信息技术 2014(11)
    • [19].U-Boot在Embest ATEB9200开发板上的移植与分析[J]. 计算机与现代化 2009(09)
    • [20].U-Boot在Mini6410上的移植[J]. 工业控制计算机 2013(09)
    • [21].基于U-Boot构建的嵌入式系统程序烧录方法的研究[J]. 河南机电高等专科学校学报 2010(06)
    • [22].ARM平台下U-Boot的移植[J]. 电脑知识与技术 2009(04)
    • [23].U-Boot在嵌入式系统上的移植分析与实现[J]. 机械工程与自动化 2009(04)
    • [24].U-Boot的启动及移植分析[J]. 微计算机信息 2008(11)
    • [25].嵌入式平台S3C6410的U-Boot分析与移植[J]. 单片机与嵌入式系统应用 2017(11)
    • [26].支持多种闪存启动的U-Boot实现方法的改进[J]. 微计算机信息 2012(02)
    • [27].基于S3C44B0X的U-Boot分析与移植[J]. 微计算机信息 2008(14)
    • [28].U-Boot在S3C44B0上的移植[J]. 科技情报开发与经济 2010(04)
    • [29].U-Boot的启动分析及基于S3C44B0的移植[J]. 机械工程与自动化 2010(01)
    • [30].基于Linux嵌入式系统的Boot Loader研究与实现[J]. 自动化应用 2010(07)

    标签:;  

    嵌入式Boot Loader分析与设计
    下载Doc文档

    猜你喜欢