1、启动过程特征总结
  (1)第一阶段为汇编阶段、第二阶段为C阶段
  (2)第一阶段在SRAM中、第二阶段在DRAM中
  (3)第一阶段注重SoC内部、第二阶段注重SoC外部Board内部

2、uboot的第一阶段做了哪些工作
  (1)构建异常向量表
  (2)设置CPU为SVC模式
  (3)关看门狗
  (4)开发板供电置锁
  (5)时钟初始化
  (6)DDR初始化
  (7)串口初始化并打印"OK"
  (8)重定位
  (9)建立映射表并开启MMU
  (10)跳转到第二阶段

3、uboot第二阶段主要是对开发板级别的硬件、软件数据结构进行初始化。

  init_sequence
  cpu_init 空的
  board_init 网卡、机器码、内存传参地址
  dm9000_pre_init 网卡
  gd->bd->bi_arch_number 机器码
  gd->bd->bi_boot_params 内存传参地址
  interrupt_init 定时器
  env_init
  init_baudrate gd数据结构中波特率
  serial_init 空的
  console_init_f 空的
  display_banner 打印启动信息
  print_cpuinfo 打印CPU时钟设置信息
  checkboard 检验开发板名字
  dram_init gd数据结构中DDR信息
  display_dram_config 打印DDR配置信息表
  mem_malloc_init 初始化uboot自己维护的堆管理器的内存
  mmc_initialize inand/SD卡的SoC控制器和卡的初始化
  env_relocate 环境变量重定位
  gd->bd->bi_ip_addr gd数据结构赋值
  gd->bd->bi_enetaddr gd数据结构赋值
  devices_init 空的
  jumptable_init 不用关注的
  console_init_r 真正的控制台初始化
  enable_interrupts 空的
  loadaddr、bootfile 环境变量读出初始化全局变量
  board_late_init 空的
  eth_initialize 空的
  x210_preboot_init LCD初始化和显示logo
  check_menu_update_from_sd 检查自动更新
  main_loop 主循环

1、在uboot中因为有汇编阶段参与,因此不能直接找main.c。整个程序的入口取决于链接脚本中ENTRY声明的地方。
ENTRY(_start)因此_start符号所在的文件就是整个程序的起始文件,_start所在处的代码就是整个程序的起始代码。

_start在start.S文件中

最新文章

  1. jquery 插件
  2. 配置JDK环境变量,与各步骤的意义
  3. 区别和详解:jQuery extend()和jQuery.fn.extend()
  4. candence 知识积累4
  5. ORA-24550错误
  6. 打开PDF文件弹出阅读未加标签文档的解决方法
  7. 华为章宇:如何学习开源项目及Ceph的浅析
  8. 谈谈js中for in 需要注意的地方
  9. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-007-给BEAN运行时注入值placeholder、@Value
  10. ViewPager实现页卡的3种方法(谷歌组件)
  11. 无法读取配置节 system.serviceModel 因为它缺少节声明的解决方法
  12. MySQL计数器表的设计
  13. GET 请求复制转发一直等待响应的问题 Transfer-Encoding: chunked
  14. 開源sources
  15. 小程序wxss和css3的区别
  16. 02_创建Git仓库,克隆仓库,git add,git commit,git push,git pull,同行冲突,不同行冲突的结局方案,git mergetool的使用
  17. 关于JDBC的批量操作executeBatch()所引发sql语句异常
  18. 推荐 3 篇关于 java8 Lambda表达式的文章
  19. luogu1169 棋盘制作 (单调栈)
  20. java.lang.OutOfMemoryError及解决方案

热门文章

  1. AndroidDev站点推荐-zz
  2. linux下安装pymssql
  3. VS读取文件或写入文件时出现中文乱码问题
  4. Java Hour 59 JVM Heap
  5. C++ 学习的网站
  6. AutoCompleteTextView自动填充文本
  7. QUnit使用笔记-3测试用户操作
  8. 原生JS代码实现一个Ajax异步请求
  9. spring实战二之Bean的自动装配(非注解方式)
  10. 阿里云ECS(云服务器)之产品简介