BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #10739同步于 2011/6/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

【求助】求各位大牛学习u-boot的流程

jkice
2011/6/10镜像同步5 回复
主要搞硬件,但是对u-boot很感兴趣,想学一下。自己看了启动代码,之后就不知道再看什么了,如果把源码都看了又觉得太多了(主要是找实习了,没那么多时间了),想请教一下大家学习u-boot的历程,我参考一下,嘿嘿,那些比较重点应该着重看,那些不用看呢? 现在我感觉应该把跟自己板子相关的部分,和新加的部分好好看看,不知道会不会漏掉什么重点的东西。 谢谢大家啊
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
hobby机器人#1 · 2011/6/20
找工作面试时候,uboot启动被问过好多遍。除了开始的汇编、大体的流程,如果有时间的话,建议扩展的看看启动的各个部分(主函数里面调用的各个子函数),这是种很好的学习方式,不留死角。 此外,还有两部分我觉得也可以看看 一、uboot与linux kernal传递参数:包括传递参数的方法、常用的参数等等。因为uboot作为bootloader,其主要责任就是初始化板子并引导内核,而传参是其中很重要的一项(当然,按我的经验,也是很容易出错的地方),理解常用参数和传递机制能更有效的整体理解。 二、在uboot里面新加一个cmd也可以看看,不复杂但是很实用U_BOOT_CMD 顺便附上一点儿学习笔记,关于uboot添加命令 加入uboot命令的一般方法: 需要进行的工作主要有两个部分:编写命令的入口(处理)函数;定制命令的参数、帮助信息等。下面以交换芯片寄存器的写命令为例进行说明。 交换芯片寄存器写命令相关的源代码如下所示: int do_mem_swrw ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { ulong addr, writeval; ulong sw_slow_delay = 0xFF; /*at least 200ns delay*/ if ((argc < 2) || (argc > 3)) { printf ("Usage:\n%s\n", cmdtp->usage); return 1; } /* Address is specified since argc > 1 */ addr = simple_strtoul(argv[1], NULL, 16); addr += CFG_SW_BASE_ADDR; /* Get the value to write. */ writeval = simple_strtoul(argv[2], NULL, 16); *((ulong *)addr) = (ulong)writeval; /* the fallowing codes cause bus fault*/ /* 200ns delay */ /* while(sw_slow_delay > 0) { sw_slow_delay--; } printf("0x%08X:0x%08X\n", addr, sw_register_read(addr)); */ return 0; } U_BOOT_CMD( swrw, 3, 1, do_mem_swrw, "swrw - switch register write\n", "register_offset value\n \n" ); 首先对命令的入口函数进行说明: 编写命令的入口函数do_mem_swrw,此命令需要处理2个参数(不包括swrw本身),它们分别是寄存器的偏移地址和将写入的数值。函数中首先用simple_strtoul处理参数argv[1]——寄存器地址,argv[2]——将写入的数值,把这两个参数保存在变量addr和writeval当中后,直接使用指针访问的形式写入配置值。 然后对命令的导出方法进行说明: 只定义命令的入口函数并不能够使得我们能在uboot的命令行使用这个命令,还要使用U_BOOT_CMD宏进行导出才行。导出的时候需要填写如下几个参数:命令的字符串内容——自定义,我们填swrw,命令的参数个数,包括命令字符串本身——除了swrw还需要地址和数值、一共3个,是否重复(此条命令执行后,如果再敲回车,是否重复执行),命令的入口函数(我们填写do_mem_swrw),命令的用法(简单描述),命令的帮助(参数描述)。
jkice机器人#2 · 2011/6/21
哇,谢谢版主啊
hobby机器人#3 · 2011/6/22
呃。。 放假了好冷清啊 你这是自己对u-boot比较有兴趣,自学的? 【 在 jkice 的大作中提到: 】 : 哇,谢谢版主啊
jkice机器人#4 · 2011/6/23
【 在 hobby 的大作中提到: 】 : 呃。。 : 放假了好冷清啊 : 你这是自己对u-boot比较有兴趣,自学的? : ................... 也是对u-boot比较感兴趣,我也做嵌入式,主要搞的硬件,现在找实习,发现硬件大家都没什么兴趣,就像看看u-boot,呵呵
hobby机器人#5 · 2011/6/23
哦 在找实习啊 找到了没?给你推荐个做uboot的行不? 【 在 jkice 的大作中提到: 】 : 也是对u-boot比较感兴趣,我也做嵌入式,主要搞的硬件,现在找实习,发现硬件大家都没什么兴趣,就像看看u-boot,呵呵