Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2969875
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-08-07 16:23:52

原文地址:http://blog.csdn.net/hens007/article/details/7255392

首先说,今天是一个值得高兴的日子,因为经过四天的努力,终于把U-Boot1.3.4成功移植到了s3c2416上.板子要求是SD卡启动,以下具体的移植步聚:

一、SD起动首先要修改/include/configs/smdk2416.h头文件:

    在365行左右,按如下修改:

    //#define CONFIG_BOOT_NAND
    #define CONFIG_BOOT_MOVINAND

   说明:
    CONFIG_BOOT_NANA是nandFlash启动方式,在此处要注释掉,因为我们要从SD卡启动,相应      的              IG_BOOT_MOVINAND项要打开。

 

二、

    #define CONFIG_SERIAL1          1      

 

三、BootLoader一般分为两个阶段启动:第一阶段使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调节器用第二阶段代码;第二阶段通常用C语言来实现。

    第一阶段:

      硬件设备初始化;(board/samsung/smdk2416/lowlevel_init.S,包括点亮测试灯,关闭看门狗、关闭       main和sub中的中断、初始化系统时钟、初始化串口、初始化NandFlash,初始化MMU

      为加载Bootloader的第二阶段代码准备RAM空间; 

      复制Bootloader 的第二阶段代码到RAM空间中;(在汇编start.S 调用  void movi_bl2_copy(void))

      设置好栈;

      跳转到第二阶段代码的C入口点。(在/cpu/s3c24xx/start.S中,通过ldr pc, _start_armboot调用lib_arm/board.c中的void start_armboot (void)进入第二阶段)

   第二阶段:

      初始化本阶段要使用到的硬件设备;

      检测系统内存映射(memolry map);

      将内核映象和根文件系统映象从Flash上读到RAM空间中;

      为内核设置启动参数;

 

四、 编译U-boot

     make distclean                            编译之前先清除一下;

     make smdk2416_config

     make CROSS_COMPILE=交叉编译器的路径

阅读(1053) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~