分类: LINUX
2010-09-14 20:32:29
GNU提供了免费的编译工具,可从网上下载。针对ARM平台的交叉编译工具有汇编器arm-linux-as, C编译器arm-linux-gcc,连接器arm-linux-ld,以及二进制转换工具arm-linux-objcopy。 GNU的编译器功能非常强大,共有上百个操作选项,满足开发者的各种需要。它的特点是开发成本低,无需昂贵的仿真器,不但可以开发操作系统下运行的程序,也可以开发裸机应用程序[3]。GNU工具都运行在Linux下,开发者需要1台运行Linux的PC作为宿主机,开发后下载到板子上。U-boot,vivi等都利用了这些工具。为开发者的开发提供了很好的范例。
一般地,基于GNU工具的程序开发流程如下:
(1)编写C、C++或者汇编源程序;
(2)用相关编译器生成目标文件;
(3)编写连接脚本;
(4)用连接器生成最终文件(elf格式);
(5)用二进制转换工具生成可下载的二进制代码。
编写适用于本系统的Bootloader以完成最基本的引导操作系统的功能为目的。作为引导程序的基本功能应该包括:
(1)对硬件的初始化,如设置异常向量,设置CPU的速度、时钟频率和中断控制寄存器,初始化内存控制器,初始化堆栈等;
(2)支持文件的下载,串口的Kermit协议下载或者支持tftp协议的网口下载,后者实现相对复杂,但是速度快,可以根据情况选择;
(3)对Flash的操作;
(4)最好支持下载和自举两种工作模式;
(5)解压内核,配置参数等。
其中功能(1)直接涉及硬件,实现时应该使用GNU汇编。
本文主要从源码来简单分析u-boot
chinaunix网友2010-09-15 15:00:53
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com