基于S3C44B0X 的uClinux 的移植

作者: 刘安昱,温晓辉,刘志红   发布日期:2006-09-06 15:36   查看数:0
中文摘要:

  S3C44B0X 作为一款以ARM7TDMI 为内核的微处理器,正日益受到广泛的应用;uClinux 作为一种运行于没有MMU 的嵌入式微处理器的Linux 衍生操作系统,也广泛应用于嵌入式开发中。BLOB 作为一款功能强大、使用方便、可移植性好的BootLoader,而成为S3C44B0X 开发板上非常适合uCilnux的Bootloader。本文介绍一款基于S3C44B0X 开发板的开发过程,详细介绍向该开发板移植uClinux操作系统和引导代码BLOB 的过程以及移植前的准备工作。


引 言
     S3C44B0X 是三星公司推出的一款基于ARM7TDMI 核的16/32 位RISC 的嵌入式微处理器,是为手持设备或 者其它通用设备而开发的低成本、高性能的微处理器。 它的低功耗及简单而优雅的设计,极其适合于对成本和 功耗要求比较高的应用场合。uCilnux是应用于没有内 存管理单元MMU 的微处理器的Linux的衍生操作系统。 uCilnux支持多任务,由于它的很多核心代码都为没有 被MMU 的处理器重新编写过,所以它的内核要比常规 的Linux 内核小很多;它同时保留了常规Linux 操作系统 绝大多数的优点。
3 引导程序BLOB 的移植
     BootLoader 引导程序是嵌入式开发很重要的组成部 分。它是CPU 加电后第一个开始运行的代码, 由它最终 将操作系统启动起来并将控制权交给操作系统内核。 BootLoader 引导程序最基本的功能是进行硬件的初始化 ( 包括CPU 的主频、SDRAM、中断、串口等) 和内核启动 参数的设置并启动内核等。功能强大的BootLoader 可以 和主机进行交互,从串口、USB 口或者网络口下载映像 文件,并可以对Flash 等存储设备进行管理。启动代码 可以利用已有的开放源代码的启动代码进行改动移植到 自己的板卡上。常见的BootLoaderARM BOOT 、 REDBOOT、DBUG、BLOB 等。由于大多数BootLoader 完 成的功能比较类似, 因此选择一个免费的开放源码的 BootLoader 进行移植是比较可行的做法。这里采用BLOB 作为引导程序并进行了移植。 BLOB(Boot Loader OBject)最初是由Jan-Derk Bakker和 Erik Mouw 为LART 而写的引导代码,由于其良好的移 植性和强大的功能被移植到了很多其它机器上。BLOB 遵守GNU GPL licence。
4 uClinux的移植
     BLOB 移植成功后,就开始移植uClinux。我们已经 在移植BLOB 的时候将uClinux 的源代码安装在/path/to/ armlinux/source 目录下了。由于这个uClinux 版本已经是 针对S3C44B0X 的,所以需要做的修改不会很多,它应 该是最合适移植的原始版本。uClinux 的文件系统使用 的是从uClinux 官方网站http://www.uclinux.org/pub/ uClinux/dist/ 下载的uClinux-dist-20030305.tar.gz 中的文件 系统部分。下面是uClinux 移植的过程。 S3C44B0X,ARM,uClinux,BootLoader,BLOB