单片机
返回首页

基于s5pv210的uboot总结

2025-01-06 来源:elecfans

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文件中


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章