全部博文(685)
分类: 嵌入式
2014-08-07 16:23:52
一、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=交叉编译器的路径