uboot中的命令解析
最近有点空了,就看了点开发板的UBOOT源码(主要是去分析如何解析命令)。 uboot最开始执行的代码是汇编,在标签 _start处开始,后面有了个中断向量表(主要是为个让这点代码被放有地址0x0处),用汇编程序是它可以保证这点代码就在0X0处。 .globl _start _start: b reset //上电后执行的第一行,跳到reset处。 ldr pc, _undefined_instruction //未定义中断 ldr pc, _software_interrupt //软中断 ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq 进入到后, 之后设置,CPU工作在SVC32 模式, 对设备要完成很多的设置,这里不详讲。 在汇编的最后 ldr pc, _start_armboot //PC指针指向start_armboot函数,在/lib_arm/board.c中 在这个函数里做了很多数据的初始化工作, start_armboot在最后用了一个for(;;)死循环,之后调用了main_loop();在/common/main.c中。在这里用死循环的主要原因是防止main_loop的调用没有成功执行。 1 在main