上一节已经分析到了uboot的board_init_r函数,并且把两个参数传递给它

 /* call board_init_r(gd_t *id, ulong dest_addr) *//* gd的 地址和 当前新的uboot的起始地址传参给board_init_r   */mov     r0, r9                  /* gd_t */ldr    r1, [r9, #GD_RELOCADDR] /* dest_addr *//* call board_init_r */ldr   pc, =board_init_r   

接下来就分析uboot的后半部分,也就是


void board_init_r(gd_t *new_gd, ulong dest_addr)
{
#ifdef CONFIG_NEEDS_MANUAL_RELOC        //没定义int i;
#endif#ifdef CONFIG_AVR32                //没定义mmu_init_r(dest_addr);
#endif#if !defined(CONFIG_X86) && !defined(CONFIG_ARM) && !defined(CONFIG_ARM64)gd = new_gd;        //定义了这个CONFIG_ARM,所以不执行
#endif#ifdef CONFIG_NEEDS_MANUAL_RELOC    //没定义for (i = 0; i < ARRAY_SIZE(init_sequence_r); i++)init_sequence_r[i] += gd->reloc_off;
#endif/* 运行函数initcall_run_list,调用init_sequence_r里的函数指针执行 *

从零开始之uboot、移植uboot2017.01(七、board_init_r分析)相关推荐

  1. 从零开始之uboot、移植uboot2017.01(四、uboot的重定位)

    接着上一节的继续分析和实验 bl gpio_outbl led1_on/* the mask ROM code should have PLL and others stable */ #ifndef ...

  2. 从零开始之uboot、移植uboot2017.01(五、board_init_f分析)

    接着第四节的继续分析,下面的是整个uboot前半部分的核心. /** entry point of crt0 sequence*/ENTRY(_main)/** Set up initial C ru ...

  3. 从零开始之uboot、移植uboot2017.01(二、从入口分析流程)

    一.链接脚本 /** Copyright (c) 2004-2008 Texas Instruments** (C) Copyright 2002* Gary Jennejohn, DENX Soft ...

  4. 从零开始之uboot、移植uboot2017.01(八、命令解析与实现)

    终于到了最后的函数了 static int run_main_loop(void) { #ifdef CONFIG_SANDBOX /* 没定义 */sandbox_main_loop_init(); ...

  5. 【正点原子Linux连载】第三十三章 U-Boot移植 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  6. U-Boot 移植初探

    1. NXP官方开发板uboot编译测试 uboot移植不需要从零开始将uboot移植到使用的开发板上.因为半导体厂商通常都会自己做一个开发板, 将uboot移植到他们自己的原厂开发板上,再将这个ub ...

  7. uboot移植之修改支持NandFlash识别篇6(超详细)

    uboot移植之前期准备篇1 uboot移植之Makefile分析概述篇2 boot移植之init_sequence_f函数数组分析(番外篇) uboot移植之源码流程分析篇3(超详细!) uboot ...

  8. 为Exynos4412移植U-Boot-2017.11的步骤(一)——让U-Boot跑起来

    系列文章: 为Exynos4412移植U-Boot-2017.11的步骤(一)--让U-Boot跑起来 为Exynos4412移植U-Boot-2017.11(二)--SD卡.eMMC驱动 为Exyn ...

  9. 移植u-boot.2012.04.01

    /*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc ...

最新文章

  1. Java项目:潜艇大战项目(java+swing)
  2. linux 环境 安装jdk tomcat mysql git
  3. 【C 语言】文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )
  4. 之一:CABasicAnimation - 基本动画
  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化
  6. java 8 stream中的Spliterator简介
  7. html生成自定义表格,自定义js的表格插件
  8. 基于LVS对LAMP做负载均衡集群
  9. ***使用PHP实现文件上传和多文件上传
  10. SQL Server和Oracle的差异
  11. python中如何创建一个空列表_Python创建空列表的字典2种方法详解
  12. php之thinkphp3.2.3 文件访问路径,URL路由配置-与重定向
  13. 云优后台提交显示parsererror_Web测试必备技能——F12定位bug属于前端还是后台
  14. 【读书笔记】《正面管教》——我们都不完美,但我们相处的很快乐
  15. ie8对fixed的支持较差
  16. SQL SERVER 经典语句大全必学(3)——技巧篇
  17. PHP和Vue的区别,vue和js区别是什么
  18. 安卓Android与H5双向交互MathJax展示数学公式(源码+解析)
  19. 知识产权日特稿:谁动了程序员的源代码版权?
  20. 在echarts中圆环图中间 自定义图片引入

热门文章

  1. mysql中双引号和单引号有什么区别
  2. STM32F103+SDIO wifi Marvell8801/Marvell88w8801 介绍(九) ---- Marvell 8801/Marvell 88w8801 实现AP功能/实现热点功能
  3. 地图热区随屏幕大小改变
  4. 如何在PPT中插入校徽等Logo并修改颜色(无需下载任何软件)
  5. sqlyog导入数据的两种方式
  6. 如何升级Python的pip?
  7. 捷联惯导系统学习2.6(圆锥误差补偿多子样算法)
  8. 微信支付 普通商户版 服务商版 银行服务商版 区别
  9. 一体机电脑属于微型计算机,微型计算机在机电一体化中的地位
  10. Vue 3系列之03——Vue 3使用TypeScript