uboot 第一次启动时,因为没有烧录 env 分区,gd-> 应当为0,这时候会使用 uboot 的默认系统变量,并写入到 SD 卡的 env 分区中
控制台初始化
做的是控制台的第二阶段的初始化,主要是进行控制台的软件方面的配置
重定位了 stdin
网卡芯片初始化
对网卡芯片本身进行初始化
开机logo显示
进行开发板启动前的初始化,开启 lcd 显示开机 logo
logo 一般是使用软件制作的数组
通过sd卡烧录系统
通过 om_sd 会判断开发部的 left 按键是否按下,开发板会在按键按下的时候,进入更新模式,读取 SD 卡中的镜像烧录系统
使用 SD 卡烧录比的方式简单、高效,一般用于量产的场景
死循环
主要是有三个功能
总结
以下来自朱老师总结的 uboot 的工作
init_sequencecpu_init 空的board_init 网卡、机器码、内存传参地址dm9000_pre_init网卡gd->bd->bi_arch_number 机器码gd->bd->bi_boot_params 内存传参地址interrupt_init 定时器env_initinit_baudrate gd数据结构中波特率serial_init空的console_init_f 空的display_banner 打印启动信息print_cpuinfo 打印CPU时钟设置信息checkboard检验开发板名字dram_initgd数据结构中DDR信息display_dram_config 打印DDR配置信息表mem_malloc_init初始化uboot自己维护的堆管理器的内存mmc_initializeinand/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初始化和显示logocheck_menu_update_from_sd 检查自动更新main_loop主循环
我的博客
- 前端开发 CSS第二课 选择器的权重 像素和百分比 em和rem 颜色的值 HS
- 【致敬未来的攻城狮计划】— 连续打卡第二十天:RA2E1_UART —— 串口通
- 数码宝贝第二季是什么电视
- 华为手机怎么启动备用电源
- 命令 Docker--查看容器的启动参数--方法/实例
- COSCon'19 2019 中国开源年会正式启动!
- 熊出没第二部是什么大电影
- 真探第二季是什么美剧
- COSCon‘22 Open the World:第七届中国开源年会正式启动~
- 天猫启动北京中心战略,北京人的三公里生活被马云承包了?