uboot1.3.4启动第2阶段start_armboot总结

2020-6-25星期四(端午节)北京雨天/阴天。笔记仅作为学习和记录,方便以后用到的时候查阅!

 

uboot启动2阶段总结

--------------------------------------------
2.6.17启动流程回顾、重点函数标出
(1)第二阶段主要是对开发板级别的硬件、软件数据结构进行初始化。
(2)
    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)特定硬件的初始化函数位置(譬如网卡)

删去了部分与我x210开发板板类型和外设无关的代码

在Linux下将编译好的uboot.bin烧录到SD卡方法(需要修改sd_fusing.sh 脚本符合自己的环境):

(1)对uboot源代码进行完修改(修改内容根据自己的理解和分析来修改)
(2)make distclean然后make x210_sd_config然后make
(3)编译完成得到u-boot.bin,然后去烧录。烧录方法按照裸机第三部分讲的linux下使用dd命令来烧写的方法来烧写。
(4)烧写过程:
第一步:进入sd_fusing目录下
第二步:make clean
第三步:make
第四步:插入sd卡,ls /dev/sd*得到SD卡在ubuntu中的设备号(一般是/dev/sdb,注意SD卡要连接到虚拟机ubuntu中,不要接到windows中)
第五步:./sd_fusing.sh /dev/sdb完成烧录(注意不是sd_fusing2.sh)
(5)总结:uboot就是个庞大点复杂点的裸机程序而已,我们完全可以对他进行调试。调试的方法就是按照上面步骤,根据自己对代码的分析和理解对代码进行更改,然后重新编译烧录运行,根据运行结果来学习。

 

--------------------------------------------

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值