1.   reset

中断向量表

2. 进入reset

(1) 设置svc32 模式

(2) flash  I/D caches

(3)disable  MMU 和 cache

(4)2440 没有onenand

(5)bl   lowlevel_init

接 (5)

1.初始化时钟

2. 初始化UART,串口

3.nandflash 简单初始化

4. 判断当前uboot 是否运行在内存中,如果不是则进行内存初始化

返回 (5)后面

跳过宏定义

从NandFlash 中拷贝bootloader到内存中

设置堆栈,为C语言做准备

清除BSS段

uboot 配置编译:

make smdk2440 config

make

arm-linux-objdump -D -S  uboot.bin 30000000

./dnw  uboot.bin 30000000

souceinsight 高亮 shift + F8

第二部分从startarmboot开始

做两件事情:

1.硬件初始化

2.软件初始化,初始化一些环境变量

(1)初始化串口

(2)LCD 初始化

(3)初始化 网卡

(4)初始化LED

(5)main loop 最后执行用户输入命令

1.通过uboot 下面的 Makefile 找到对应的芯片的配置

2. 在 board/samsung/xxx  找到 链接器脚本 u-boot.lds

可以看到代码段的入口文件 Start.o  --》 Strat.S

3. Start.S 文件在 cpu/xxxx  里面

4. 分析第一阶段(BL1)的bootloader 代码

5.有一个中断向量表,向量表最前面是 reset

6. 分析 reset 的内容

(1) svc

(2) I/D cache

(3)  关闭 MMU

(4)外侧基地址初始化 (6410独有)

(5)OneNand

(6) bl lowlevel_init (lowlevel_init.S 单独文件)

board/samsung/xxx

点亮LED,

disable watchdog 关闭所有中断 (为什么2440 没有做呢?2440 在 时钟初始化函数里面做了)

返回

(7) copy from nand

(8)堆栈初始化

(9)清除bss段

进入第二阶段 BL2

210 分析过程

svc

跳转到 xxx

关闭L1

disable MMU 和cache

low level init

检查 reset状态

IO引脚初始化(恢复IO引脚为默认值)

disable watchdog

SRam SRom 初始化

时钟初始化 内存初始化

串口初始化

取消存储保护区

简单初始化NandFlash

disable ADB

返回

设置堆栈

判断当前是否在内存运行

判断从哪种flash启动的

进入 board_init_f_nand 函数

跳转 到内存里执行 BL2

BL2 在连接器脚本里面, u-boot.lds

arch/arm/cpu/armv7

Uboot S3C2440 BL1 的流程的更多相关文章

  1. u-boot中nandflash初始化流程分析(转)

    u-boot中nandflash初始化流程分析(转) 原文地址http://zhuairlunjj.blog.163.com/blog/static/80050945201092011249136/ ...

  2. uboot学习之uboot.bin的运行流程

    上篇博客:http://www.cnblogs.com/yeqluofwupheng/p/7347925.html 讲到uboot-spl的工作流程,接下来简述一下uboot.bin的工作流程,这对应 ...

  3. 从0移植uboot (二) _uboot启动流程分析

    经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,同时,此时的uboot.bin也没有结合 ...

  4. (转)从0移植uboot (二) _uboot启动流程分析

    ref:https://www.cnblogs.com/xiaojiang1025/p/6496704.html 经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够 ...

  5. 从0移植uboot (二) _启动流程分析

    经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,其次,此时的uboot.bin也没有结合 ...

  6. am335x uboot2016.05 (MLO u-boot.img)执行流程

    am335x的cpu上电后,执行流程:ROM->MLO(SPL)->u-boot.img 第一级bootloader:引导加载程序,板子上电后会自动执行这些代码,如启动方式(SDcard. ...

  7. 嵌入式Linux开发之uboot启动Linux整体流程分析

    嵌入式Linux开发之uboot启动Linux整体流程分析 Uboot全称Universal Boot Loader,一个遵循GPL协议的的开源项目,其作用是引导操作系统,支持引导linux.VxWo ...

  8. am335x uboot2016.05 (MLO u-boot.img)执行流程(转)

    am335x的cpu上电后,执行流程:ROM->MLO(SPL)->u-boot.img 第一级bootloader:引导加载程序,板子上电后会自动执行这些代码,如启动方式(SDcard. ...

  9. u-boot 编译,启动流程分析,移植

    分析u-boot-1.1.6 的启动流程 移植u-boot 2012.04版本到JZ2440开发板 源码百度云链接:https://pan.baidu.com/s/10VnxfDWBqJVGY3SCY ...

随机推荐

  1. pat1057. Stack (30)

    1057. Stack (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Stack is one of ...

  2. D5上

    好慌啊 0分?? T1 感觉是组合数,不知道对不对. #include<iostream> #include<cstring> #include<cstdio> # ...

  3. C#窗体控件GroupBox修改边框色

    控件Group Box默认的边框的颜色是白色的,在很多时候显得不那么突出.但默认的属性列表里面并没有提供相应的接口.所以只能借助重绘事件. 网上很多都说使用 OnPaint 事件,但是我在事件列表中没 ...

  4. 在vs2010使用EF出现CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义

    网上查了一通都是在web.config中配置 System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56 ...

  5. UrShop 商城系统介绍

    UrShop能够帮助企业快速构建个性.高效.稳定.安全的网上商城并减少二次开发带来的成本.对于网店来说,UrShop除了安装便捷,功能上强大以外,操作上也非常方便快捷.优社电商秉承设身处地为客户着想的 ...

  6. java控制某个字段当天递增

    ①思路 1.获取当前时间年月日 如:2018-01-15 00:00:00 2018-01-15 24:00:00 2.查询表中对应日期字段是否在当天时间段内 3.若是在,则从0开始递增 4.若是不在 ...

  7. jQuery遍历节点

    html代码 <div> <p>武汉长乐教育</p> <span>在哪才能真正学习会PHP技术?</span> <a href=&qu ...

  8. JS的函数参数传递为值传递

    function setAge(i) { alert(i);//24 i = 18; alert(i);//18,i的改变不会影响外面的age }; var age = 24; setAge(age) ...

  9. RESTful API设计基本原则

    REST四个基本原则:1.使用HTTP动词:GET POST PUT DELETE:2.无状态连接,服务器端不应保存过多上下文状态,即每个请求都是独立的:3.为每个资源设置URI:4.通过XML JS ...

  10. SQL Union和Union All使用方法

    格式: [SQL 语句 1]UNION [SQL 语句 2] 对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: select ID,NAME from A UNION select I ...