返回信息流主要搞硬件,但是对u-boot很感兴趣,想学一下。自己看了启动代码,之后就不知道再看什么了,如果把源码都看了又觉得太多了(主要是找实习了,没那么多时间了),想请教一下大家学习u-boot的历程,我参考一下,嘿嘿,那些比较重点应该着重看,那些不用看呢?
现在我感觉应该把跟自己板子相关的部分,和新加的部分好好看看,不知道会不会漏掉什么重点的东西。
谢谢大家啊
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #10739同步于 2011/6/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
【求助】求各位大牛学习u-boot的流程
jkice
2011/6/10镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
找工作面试时候,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),命令的用法(简单描述),命令的帮助(参数描述)。
【 在 hobby 的大作中提到: 】
: 呃。。
: 放假了好冷清啊
: 你这是自己对u-boot比较有兴趣,自学的?
: ...................
也是对u-boot比较感兴趣,我也做嵌入式,主要搞的硬件,现在找实习,发现硬件大家都没什么兴趣,就像看看u-boot,呵呵
哦 在找实习啊
找到了没?给你推荐个做uboot的行不?
【 在 jkice 的大作中提到: 】
: 也是对u-boot比较感兴趣,我也做嵌入式,主要搞的硬件,现在找实习,发现硬件大家都没什么兴趣,就像看看u-boot,呵呵