首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
U-boot在S3C44B0上的移植与分析
来源:本站整理  作者:佚名  2009-05-19 13:14:14




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();

   }


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是汇编语言编写的U-boot:程序入口代码,主要包括处理器内部各个寄存器的初始化以及代码的搬移。主要完成设置处理器状态、初始化中断、堆栈、内存控制器等,并确定是否需要对整个U-boot代码重定位,最终从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,它的特殊性决定了需要对

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:33,128.91000 毫秒