Chinaunix首页 | 论坛 | 博客
  • 博客访问: 545417
  • 博文数量: 105
  • 博客积分: 3274
  • 博客等级: 中校
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-21 12:14
文章分类

全部博文(105)

文章存档

2011年(1)

2010年(104)

分类: 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台运行LinuxPC作为宿主机,开发后下载到板子上。U-bootvivi等都利用了这些工具。为开发者的开发提供了很好的范例。

一般地,基于GNU工具的程序开发流程如下:

1)编写CC++或者汇编源程序;

2)用相关编译器生成目标文件;

3)编写连接脚本;

4)用连接器生成最终文件(elf格式);

5)用二进制转换工具生成可下载的二进制代码。

编写适用于本系统的Bootloader以完成最基本的引导操作系统的功能为目的。作为引导程序的基本功能应该包括:

1)对硬件的初始化,如设置异常向量,设置CPU的速度、时钟频率和中断控制寄存器,初始化内存控制器,初始化堆栈等;

2)支持文件的下载,串口的Kermit协议下载或者支持tftp协议的网口下载,后者实现相对复杂,但是速度快,可以根据情况选择;

3)对Flash的操作;

4)最好支持下载和自举两种工作模式;

5)解压内核,配置参数等。

其中功能(1)直接涉及硬件,实现时应该使用GNU汇编。

 

本文主要从源码来简单分析u-boot1.3.4,硬件平台基于at91sam9263

阅读(2184) | 评论(1) | 转发(0) |
0

上一篇:SPI口的SD卡

下一篇:GNU ARM 汇编指令

给主人留下些什么吧!~~

chinaunix网友2010-09-15 15:00:53

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com