3)bootm命令的使用 bootm命令指示U-Boot引导内核。假定内核正确配置,则引导Linux内核的结果是在目标板上提示控制台命令。如: amcc login: <<< This is a Linux kernel console command prompt 要注意:bootm命令是U-Boot的“丧钟”,使用此命令后,Linux内核将获得控制权,bootloader停止并退出。bootloader要获得控制权的方法是重新启动目标板。 余下的引导信息将由Linux内核产生。U-Boot停止,Linux内核映像接管控制。
4)内核初始化 Linux内核开始执行时,它输出大量的状态信息。比如: -------------------------------------- ... Looking up port of RPC 100003/2 on 192.168.0.9 Looking up port of RPC 100005/1 on 192.168.0.9 VFS: Mounted root (nfs filesystem). Freeing init memory: 232K INIT: version 2.78 booting ... coyote login: -------------------------------------- 这些信息一般不低于100行。 根文件系统包括应用程序、系统库、建立GNU/Linux系统的工具。
嵌入式风格的Hello World #include int bss_var; /*未初始化的全局变量*/ int data_var=1; /*初始化的全局变量*/ int main(int argc, char **argv) { void *stack_var; /*在stack上的局部变量*/ stack_var = (void *)main; printf("Hello, World! Main is executing at %p/n", stack_var); printf("This address (%p) is in our stack frame/n", &stack_var); /*bss节包含未初始化的数据*/ printf("This address (%p) is in our bss section/n", &bss_var); /*数据节包含已初始化的数据*/ printf("This address (%p) is in our data section/n", &data_var); return 0; } ---------------- 输出结果: root@amcc:~# ./hello Hello, World! Main is executing at 0x10000418 This address (0x7ff8ebb0) is in our stack frame This address (0x10010a1c) is in our bss section This address (0x10010a18) is in our data section root@amcc:~#