【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

uboot的基本结构不复杂,主要就是一个裸循环的结构。但是,uboot包含的东西很多,有很多我们值得学习的东西。下面,我们就按照arm基本上电流程,看看一个soc芯片初始化到运行,需要完成哪些工作。

(1)cpu/arm920t/start.S

start.S包含了uboot进入c之间进行操作的地方,相关工作主要是关开门狗、关中断、设置pll、清cache、关mmu、初始化ddr寄存器、relocate code、准备sp、清bss,为进入start_armboot做准备。

(2)board/smdk2410/lowlevel_init.S

这个文件非常重要,它直接决定了ddr是否可以初始化成功,关系到后面是否把代码从norflash或者nandflash搬到ddr中继续运行。

(3)lib_arm/board.c

这是所有arm体系的soc最终都要到达的文件,也就是所有的soc初始化好之后都需要进入这个文件。除了进行一些设备的初始化之后,后面它就是等待命令、执行命令了。

(4)common/cmd_*.c

此处为command解析执行的地方,如果需要添加自己的命令,也是在这里完成的。

(5)drivers/*.c

这里是uboot驱动设置的地方,如果需要uboot识别自己额外添加的硬件,可以在这里添加自己的驱动代码。

补充:

所有uboot代码中,个人觉得最难以理解的代码就是pll和ddr初始化代码,基本没什么技巧,直接看着手册硬编。大家只能靠自己慢慢体会了。:-)

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo} span.s1 {font-variant-ligatures: no-common-ligatures}

随想录(我们从uboot学什么)相关推荐

  1. 代码随想录算法训练营第二十二天

    235. 二叉搜索树的最近公共祖先 利用二叉搜索树的性质,同时学习了代码随想录,我们可以学到第一个遍历到的值在目标区间内的数为最近公共祖先,若值大于目标区间,就探索左子树:若值小于目标区间,就探索右子 ...

  2. 跳跃游戏 (贪心/动态规划/dfs)

    1.跳跃游戏简单介绍 跳跃游戏是一种典型的算法题目,经常是给定一数组arr[],从数组的某一位置i出发,根据一定的跳跃规则,比如从i位置能跳arr[i]步,或者小于arr[i]步,或者固定步数,直到到 ...

  3. leetcode 14天刷题计划-算法入门(共计31题)

    文章目录 总结 2021.08.03(第1 天)二分 [1 704. 二分查找](https://leetcode-cn.com/problems/binary-search/) [2 278. 第一 ...

  4. 力扣动态规划入门21天刷题计划(共计46题)

    刷题地址:https://leetcode-cn.com/study-plan/dynamic-programming/?progress=8e97f6 动态规划常常适用于有重叠子问题和最优子结构性质 ...

  5. leetcode分类刷题

    1. 数组 数组是基本的数据结构,面试中考察数组的题目一般在思维上并不复杂,主要是考查面试者对代码的掌控能力. 数组下标都是从0开始 数组在内存空间的地址是连续的 题目: easy 704. 二分查找 ...

  6. 背包问题(1):关于零一背包问题的个人理解

    一.经典背包问题(零一背包) 给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高.问题的名称来源于如何选择最合适的物品放置于给定背包中.(每个物品只能 ...

  7. 随想录(对比着c学java)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于java,有两种论调.一种是鄙视,认为java是个人都能学,完全体现不出程序员的水平.还有一 ...

  8. 23.从0学ARM-网卡DM9000及uboot协议栈详解

    第二十三章 一.网卡 1. 概念 网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件.由于其拥有MAC地址,因此属于OSI模型的第2层.它使得用户可以通过电缆或无线相互连接. 每一个网卡 ...

  9. 随想录(我从ftk学到的)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] ftk代码最早是由李先静同学开发的,很多地方都可以下载的到,比如这.作为一个gui库,ftk本身 ...

最新文章

  1. Github上 10 个超好看可视化面板
  2. 关于 iOS 10 中 ATS 的问题
  3. python基础教学视频-Python基础教程(附教学视频)
  4. 一种提高单片机i/o口驱动能力的方法
  5. profibus 主站软件_SIMATIC S71500与TIA博途软件的使用连载63
  6. matlab如何使音频文件声音变大_如何制作视频课程
  7. 【网摘阅读】舒迅:产品经理必读的九步法
  8. mysql第五章 在线测试_PHP+MySQL来实现在线测试quiz功能
  9. python英文词频统计代码_python实现中文和英文的词频统计功能方法汇总
  10. 移动端1px像素实现技巧 - 讲解篇
  11. nginx mozilla_如何开始为Mozilla贡献力量
  12. Linq之ToDictionaryTSource, TKey, TElement用法
  13. android 3d地球,动态3D我的地球app
  14. 无需积分PowerDesigner 下载
  15. pdf关键字高亮 java_Java查找并高亮PDF文本过程解析
  16. 音频格式怎么转换成mp3格式?
  17. 方图来袭,且看483万亿美元的场外衍生品市场如何风云变幻
  18. 二项堆(Binomial Heap)
  19. 高能手办团服务器维护了,《高能手办团》4月2日例行维护公告
  20. matlab中ode指令,matlab中ode5函数编写.doc

热门文章

  1. denyhosts、中文文档乱码、端口占用查询
  2. request_irq与request_threaded_irq
  3. 层层递进——宽度优先搜索(BFS)
  4. 正确清理binlog日志
  5. 学一下HDFS,很不错(大数据技术原理及应用)
  6. zabbix简介及部署
  7. 基于Udp的Socket网络编程聊天程序
  8. 尤金·卡巴斯基:卡巴斯基实验室调查内网遭黑客攻击事件
  9. oracle 11g 通过在线重定义方式修改表结构
  10. 聊天软件项目TCP升级版