学习笔记--启动流程2

1、启动流程、重点函数标出

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    主循环

 

2、启动过程特征

(1)第一阶段为汇编阶段、第二阶段为C阶段

  第一阶段一般是厂家去调好的。
(2)第一阶段在SRAM中、第二阶段在DRAM中
(3)第一阶段注重SoC内部、第二阶段注重SoC外部Board内部

 

3、移植时的注意点

(1)x210_sd.h头文件中的宏定义
(2)特定硬件的初始化函数位置(譬如网卡)

 

posted @ 2021-05-03 07:14  Ben002  阅读(51)  评论(0编辑  收藏  举报