您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

Armboot在EV40评估板上的移植

时间:2007-1-20栏目:电子通信论文

摘要:介绍Armboot以及EV40评估板的特点;详细讨论Armboot在EV40上的移植并给出主要代码;以Flash编程为例,介绍与评估板相关Armboot命令的实现。

   关键词:Armboot AT91M40800 ARM 移植

1 Armboot简介

Armboot是一个bootloader,是为基于ARM或者StrongARM CPU的嵌入式系统所设计的。它支持多种类型的Flash;允许映像文件经由bootp、dhcp、tftp从网络传输;支持从串口线下载S-record或者binary文件;允许内存的显示及修改;支持jffs2文件系统等。Armboot源码公开,可以在http://www.sourceforg.net/projects/armboot下载。

2 EV40评估板简介

Micetek祥佑数码科技有限公司配合其Hitool for ARM开发工具推出了基于AT91X40系列微控制器的ARM EV40(简称EV40)评估板。可用来开发、调试和评估以Atmel ARM为硬件基础的嵌入式系统。EV40评估板包括一个AT91X40系列的微控制器AT91M40800以及一些外围器件。

主要的外围部分包括:2个串口、1个复位按钮、3个应用按键、3个LED指示灯、1个7段LED显示器、512KB以太网接口、USB接口、PC104接口、EBI扩展接口、I/O扩展接口、时钟源选择、触摸板接口和LCD接口。

3 Armboot在EV40上的移植

本文的主要目的是使读者尽快地能在EV40上运行Armboot,因此,去掉(或修改)了一些完整版本所具有的代码(比如中断处理),从而加快开发。同时,这里使用Hitool for ARM开发工具,完成代码的修改、编译及调试。

3.1 初始化

Armboot的运行,开始于cpu/$cpu/start.s,完成一系列的初始化后(中间调用board/$board/memsetup.s),调用common/board.c中的函数start_armboot作为C语言程序的入口。如果使用Hitool,并正确地配置startup config(使用初始文件micev40_em.inc)。使用Hitool自动生成的start_up.s代替start.s,把B_main替换为

ldr pc,_start_armboot

startarmboot:.word start_armboot

如果没有micev40_em.inc,则自行创建,内容如下:

long ffe00000 0x01002529 long ffe00014 0x02502021

long ffe00004 0x022028al long ffe00018 0x60000000

long ffe00008 0x03002529 long ffe0001c 0x70000000

long ffe0000c 0x40000000 long ffe00020 0x00000001

long ffe00010 0x02402021 long ffe00024 0x00000006

这部分的作用相当于borad$board.s。用来初始化EBI的各个寄存器。

接下来是串口的初始化。这部分比较重要,作用是实现主机与目标板的通信,从而在超级终端(console)上提供用户接口。

在start_armboot函数中,cpu_init(&bd)、board_init(&bd)可以屏蔽掉;serial_init(&bd)用来初始化串口。初始化过程的一个示例如下(使用USART0)。

[1] [2] [3] [4] [5] [6] 下一页

下页更精彩:1 2 3 4 下一页