新闻中心

EEPW首页>嵌入式系统>设计应用> U-boot在S3C44B0上的移植与分析

U-boot在S3C44B0上的移植与分析

作者: 时间:2009-05-19 来源:网络 收藏

2.2 lib_arm/board.c文件()
U―b00t/Lib arm/board.c中的start armboot是C语言开始的函数,也是整个启动代码中C语言的主函数,该函数主要是调用一一系列的初始化函数。进行各种初始化设置。该函数完成的操作是:
(1)调用一系列的初始化函数,包括:cpu init(CPU相关的设置),board init(板子相关的设置),in-terrupt_init(中断设置),env_init(环境变量设置),init_ baudrate(baud参数设置),serial init(串口初始化),console_inh_f(控制台设置),display_banner(显示标题),dram init(可用内存配置);
(2)初始化FLAsH设备;
(3)初始化系统内存分配函数;
(4)如果目标系统拥有NAND设备,则初始化NAND设备;
(5)如果目标系统有显示设备,则初始化该类设备;
(6)初始化相关网络设备,填写IP、MAC地址等。
2.3 U―boot/common/main.c文件
完成上述初始化后,进入命令循环(即整个boot的工作循环),代码为:
for(;;)
{
main_loop();

本文引用地址://m.amcfsurvey.com/article/152486.htm

}


3过程
在此使用的是创维特公司的EB44BO开发板,系统相关配置如下:
处理器:SamslJng S3C4BOX,工作频率60 MHz;


2个串口。4个可编程的LED以及14针JTAG接口。
为了降低的难度,在过程中,一般都是选择与目标处理器以及目标板最接近的一个版本进行移植。因此选择B2进行移植。从U―bo()t的官方网站上下载最新版的源代码,目前最高版本为1.3.3。移植主要修改的文件有:cptl/s3c44b0/start.s,board/dave/b2/lowlevel init.s,board/dave/b2/b2.c,board/dave/corn。mon/FLASH.c,include/configs/b2.h,board/dave/b2/config.mk。
3.1 cpu/s3c44b0/start.s文件
start.s是汇编语言编写的:程序入口代码,主要包括处理器内部各个寄存器的初始化以及代码的搬移。主要完成设置处理器状态、初始化中断、堆栈、内存控制器等,并确定是否需要对整个代码重定位,最终从FLASH中跳转到定位好的内存位置执行。下面对其中一些代码进行针对性的
(1)设置WTCON=0x0,禁止看门狗定时器,避免处理器强行复位;
(2)设置INTMSK=Ox7ffffff,禁止所有中断,Bootloader的执行过程中不必要响应任何中断;
(3)根据嵌入式微处理器工作主频,修改宏CON-FIG 83C4480 CLCICK SPEED=60 MHz,使处理器能够正常工作;
(4)设置PLLCON=0x34031,PLLCON锁相环控制寄存器中储存有计算系统时钟的相关参数,为了产生正确的系统时钟,必须根据外接晶振频率和处理器工作主频确定各个倍频系数。
3.2 board/dave/b2/lowlevel init.S文件
该文件由汇编代码完成,主要包括SDRAM工作参数的设置,以及处理器内存控制器的初始化,参数需要根据SDRAM芯片资料进行设置。
3.3 board/dave/b2/b2.c文件
该文件中的代码主要是SDRAM的驱动程序,并完成了处理器各个I/O 口的初始化,根据具体的目标板进行适当的修改即可。
3.4 board/dave/common/FLASH.C
这个文件是FLASH的驱动程序。FLASH存储器的烧写与擦除一般不具有通用性,根据不同型号的存储器做出相应的修改。EB4480开发板采用的是Intel28F320C3B,总共71个块,1~8每块大小是8 KB,9~71每块大小是64 KB,它的特殊性决定了需要对



评论


相关推荐

技术专区

关闭