易截截图软件、单文件、免安装、纯绿色、仅160KB

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

  
ARM的嵌入式Linux移植体验之BootLoader
2006-08-12 08:00作者:宋宝华出处:天极开发责任编辑:方舟
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 AR


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

如何在嵌入式LINUX内核中增加自己的设备驱动程序

 驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载。由于uClinux不支持模块动态加载,而且嵌入式LINUX不能够象桌面LINUX那样灵活的使用insmod/rmmod加载卸载设备驱动程序,因而这里只介绍将设备驱动程序静态编译进uClinux内核的方法。
  下面以UCLINUX为例,介绍在一个 ......

Linux的未来到底在不在Google?

 媒体的推动下,两大辩手诞生,鲜明的观点对垒:正方观点:“Linux的未来在Google”;反方观点:“Linux的未来不在Google”。
  瞧瞧理由吧。
  正方观点: “Chrome OS使Google成为Linux的未来”
  1、Ubuntu原本认为是挑战微软的骑士,不过看看他们两家的合作,以及Google的势 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号