中文摘要:
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 等存储设备进行管理。启动代码
可以利用已有的开放源代码的启动代码进行改动移植到
自己的板卡上。常见的
BootLoader有
ARM 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 移植的过程。