文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言ARM的嵌入式Linux移植体验之BootLoader
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·程序八卦:胡子决定编程语言运势
·EZ-USB 68013A开发指南
·AIX 5L 学习大纲/简易教程(3)(未经许可,请勿COPY)
·Static和Final修饰类属性变量及初始化
·Servlet和Filter的url匹配url-pattern
·Flex挑战Java和.NET Adobe能否再度崛起?
·Java编程思想:面向对象的逻辑思维方法
·How to cross-compile OpenSSL for ARM
·在Pocket PC上编写游戏之十
·设计Pocket PC短消息服务简介

ARM的嵌入式Linux移植体验之BootLoader

日期:2008年6月3日 作者: 查看:[大字体 中字体 小字体]


  BootLoader指系统启动后,在操作系统内核运行之前运行的一段小程序。通过BootLoader,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 BootLoader 几乎是不可能的。尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。

  BootLoader 的实现依赖于CPU的体系结构,因此大多数 BootLoader 都分为stage1 和stage2 两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在 stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2 则通常用C 语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。

  BootLoader 的 stage1 通常包括以下步骤:

  ·硬件设备初始化;

  ·为加载Boot Loader的stage2准备 RAM 空间;

  ·拷贝Boot Loader的stage2 到RAM空间中;

  ·设置好堆栈;

  ·跳转到 stage2 的 C 入口点。

  Boot Loader的stage2通常包括以下步骤:

  ·初始化本阶段要使用到的硬件设备;

  ·检测系统内存映射(memory map);

  ·将kernel 映像和根文件系统映像从flash上读到 RAM 空间中;

  ·为内核设置启动参数;

  ·调用内核。

  本系统中的BootLoader参照韩国mizi公司的vivi进行修改。

  1.开发环境

  我们购买了武汉创维特信息技术有限公司开发的具有自主知识产权的应用于嵌入式软件开发的集成软、硬件开发平台ADT(ARM Development Tools)它为基于ARM 核的嵌入式应用提供了一整套完备的开发方案,包括程序编辑、工程管理和设置、程序编译、程序调试等。

  ADT嵌入式开发环境由ADT Emulator for ARM 和ADT IDE for ARM组成。ADT Emulator for ARM 通过JTAG 实现主机和目标机之间的调试支持功能。它无需目标存储器,不占用目标系统的任何端口资源。目标程序直接在目标板上运行,通过ARM 芯片的JTAG 边界扫描口进行调试,属于完全非插入式调试,其仿真效果接近真实系统。

  ADT IDE for ARM 为用户提供高效明晰的图形化嵌入式应用软件开发环境,包括一整套完备的面向嵌入式系统的开发和调试工具:源码编辑器、工程管理器、工程编译器(编译器、汇编器和连接器)、集成调试环境、ADT Emulator for ARM 调试接口等。其界面同Microsoft Visual Studio 环境相似,用户可以在ADT IDE for ARM 集成开发环境中创建工程、打开工程,建立、打开和编辑文件,编译、连接、设置、运行、调试嵌入式应用程序。

  ADT嵌入式软件开发环境采用主机-目标机交叉开发模型。ADT IDE for ARM 运行于主机端,而ADT Emulator for ARM 实现ADT IDE for ARM 与目标机之间的连接。开发时,首先由ADT IDE for ARM 编译连接生成目标代码,然后建立与ADT Emulator for ARM 之间的调试通道,调试通道建立成功后,就可以在ADT IDE for ARM 中通过ADT Emulator for ARM 控制目标板实现目标程序的调试,包括将目标代码下载到目标机中,控制程序运行,调试信息观察等等。

ARM的嵌入式Linux移植体验之BootLoader(图一)

  2.ARM汇编

  ARM本身属于RISC指令系统,指令条数就很少,而其编程又以C等高级语言为主,我们仅需要在Bootloader的第一阶段用到少量汇编指令:

  (1)+-运算

ADD r0, r1, r2
―― r0 := r1 + r2
SUB r0, r1, r2
―― r0 := r1 - r2
  其中的第二个操作数可以是一个立即数:

ADD r3, r3, #1
―― r3 := r3 + 1
  第二个操作数还可以是位移操作后的结果:

ADD r3, r2, r1, LSL #3
―― r3 := r2 + 8.r1
  (2)位运算

AND r0, r1, r2
―― r0 := r1 and r2
ORR r0, r1, r2
―― r0 := r1 or r2
EOR r0, r1, r2
―― r0 := r1 xor r2
BIC r0, r1, r2
―― r0 := r1 and not r2
  (3)寄存器搬移

MOV r0, r2
―― r0 := r2
MVN r0, r2

[1] [2] [3] [4] [5] [6] [7] 下一页 




上一篇:ARM的嵌入式Linux移植体验之基本概念

下一篇:ARM的嵌入式Linux移植体验之操作系统

相关文章:
·腾讯QQ首次官方支持Linux操作系统
·重装XP后无法启动linux怎么办?
·QQ2007正式版发布!八大新功能抢先体验
·聆听不受约束,新版QQ音乐详尽体验
·把微软Office的剪贴画移植给WPS2005用
·3Ds MAX 7.5新功能体验:栩栩如生的毛发
·日内瓦学校将全面换用Linux系统
·体验漫步家Pronto!酷棒通 P2P功能
·Linux系统安全机制进阶分析
·体验矢量绘图软件CorelDraw X4新特性
相关软件:
·鸟哥的linux私房菜:基础学习篇
·understanding the linux kernel
·《异性合租:20位大学生的新新体验》
·体验Windows Vista beta 1
·红帽子Red Hat Linux 8.0(3G,5CD)
·Linux 系统命令及其使用详解(大全)
·LINUX设备驱动程序(内核2.2)
·第三方RedHat Linux认证学习指导资料
·LINUX命令整理 磁盘管理
·嵌入式系统应用开发技术 wmv 视频教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot