uboot源代码分析-及s3c2440移植

Uboots3c2440移植笔记

 

虚拟机:VMWare - Ubuntu 14.04.1

开发板:s3c2440

编译器:arm-linux-gcc

U-bootu-boot-2009.08.tar.bz2

 

一:下载适当的U-boot版本并解压并配置交叉编译工具链

1、ftp://ftp.denx.de/pub/u-boot/网站上下载u-boot-2009.08.tar.bz2,拷贝至ubuntu

2、运用test@ubuntu:~/Documents$ tar -jxvf u-boot-2009.08.tar.bz2 解压

 

二:uboot目录结构说明

 

 

Uboot移植思想:

由于本次实验使用了NandFlash启动Uboot,NandFlash传输方式为非总线式访问,在NandFlash上电后自动将4K复制到片内内存SRAM中,然后在将后续的NandFlash的数据拷贝到SDRAM中,故可将Uboot分为两个部分stage1 stage2

stage1 :代码通常放在cpu/xxxx/start.S文件中,用汇编语言写成;

Stage2 :代码通常放在lib_xxxx/board.c文件中,他用C语言写成。

 

 

 

三、U-boot源码分析

==================================stage1阶段===================================

1、由于u-boot官方并没有针对s3c2440soc的直接可用的源码,故我们选择与之相近的S3c2410soc作为分析

①分析首要工作是通过分析链接脚本lds文件来查找程序的入口 故在uboot\cpu\arm920t\u-boot.lds中可查看到内存分配结构

 

 

 

② 在链接脚本中我们可以清楚的看到uboot链接的第一个文件是start.S文件 故我们查看uboot\cpu\arm920t\start.S

 

1)在start.S文件中 第一步:建立异常向量表

 

 

 

 

(2)start.S文件中 第二步:保存各个内存段的入口地址

 

 

(3)start.S文件中 第三步:关看门狗 屏蔽所有中断 设置时钟

 

 

 

(4)start.S文件中 第四步:跳转至 使能icache mmu

 

 

 

 

(5)start.S文件中 第五步:跳转 初始化SDRAM                                                                                                                                                          uboot\board\samsung\smdk2410\lowlevel_init.c

 

 

(6)start.S文件中 第六步:重定位relocate flash4k拷贝到sdram

 

1uboot中默认为NORFLASH拷贝至SDRAM (我们需求nandflash 注释此段)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值