1.uboot的目的:启动内核
2.main_loop();死循环
3.start_armboot to flashinit to nandinit to mainloop
4.bootdelay getenv();
5.s=getenv("bootcmd");启动命令
6.run_command(s,0);
7.bootcmd是什么?
nand read .jffs 0x30007w bootm 从FLASH上read kernel
8.按下空格就会jump to menucmd
9.死循环: for(;;);
10.readline read uart命令
11.uboot的核心是:runcommand
12.启动内核:s=getenv(); run_command();
13.uboot界面readline:read uart的数据,回车之后被读到。then,run_command。so,核心是run_command.
14.内核的启动方式分析
15.uboot的命令如何实现:
- UART输入字符串,then act(对应某些函数),命令的结构体对应name,fun,run_command(),匹配这些结构体
- ;隔开两个命令,逐个执行命令
- 重复:直接输入回车会自动再次执行
- lds:链接脚本
16.增加一个hello命令。
17.uboot内核启动
1,从kernel内核分区读取,linux没有flash分区表,只能在源码里面写死,关注分区的地址:在配置文件的宏
nand read.jffs2 设置从参数 入口