网站页面怎么做识别二维码,网站ww正能量,wordpress替换主页,手机上自己做网站原文 初始化代码读取uboot到内存里面#xff0c;然后跳转到uboot那里去执行uboot#xff0c;uboot初始化必要的硬件#xff0c;加载一些驱动#xff0c;其中包括nand flash的驱动#xff0c;然后根据uboot里面设置的一个启动命令TAG: NAND rootfs Flash 【系统启动过程… 原文 初始化代码读取uboot到内存里面然后跳转到uboot那里去执行ubootuboot初始化必要的硬件加载一些驱动其中包括nand flash的驱动然后根据uboot里面设置的一个启动命令TAG: NAND rootfs Flash 【系统启动过程简介】 初始化代码读取uboot到内存里面然后跳转到uboot那里去执行ubootuboot初始化必要的硬件加载一些驱动其中包括nand flash的驱动然后根据uboot里面设置的一个启动命令 nand read 0x30007FC0 0x100000 0x200000;bootm 0x30007FC0 意思就是先去读取nand flash从0x100000开始长度为0x200000的数据到memory的0x30007FC0处然后bootm表示从memory的0x30007FC0开始运行。 也就是去运行内核镜像了。 然后内核会自己解压缩然后执行, 初始化硬件 加载驱动模块 最后去挂载rootfs 而此文件系统是什么格式的是从uboot里面定义的 #define CONFIG_BOOTARGS root/dev/mtdblock2 rw init/linuxrc consolettyS0,115200 mem16M rootfstypeyafffs2 并在从uboot掉转到内核运行时候传递给内核的这样内核在加载rootfs的时候才知道要以什么格式比如上面的yaffs2格式去加载此文件系统。 此文件系统也是你实现自己用相应的文件系统制作工具制作的然后烧写到对应的位置的。 上面中root/dev/mtdblock2表示要去/dev/mtdblock2,也就是mtd的第3个分区去加载。 而这里的mtd的第3个分区具体对应的nand flash中的的地址是你在内核中一般是在core.c自己定义的的nand flash的分区。 一般是uboot是第一个分区内核kernel是第二个然后就是rootfs是第三个分区也就是/dev/mtdblock2。 例如分区 static struct mtd_partition rm9200_partitions[3] { { /* uboot 256K */ .name uboot, .size 0x40000, .offset 0 }, { /* kernel 1.768M */ .name kernel, .size 0x1C0000, .offset 0x40000 }, { /* rootfs 2M */ .name rootfs, .size 0x200000, .offset 0x200000 }, }; 如果按照上面分区定义的/dev/mtdblock2的起始地址是0x200000还算成大小是2M的位置然后内核启动挂载rootfs的时候就是以上面从uboot传过来的参数中yaffs2格式到nand flash 的2M的地址读取并加载rootfs加载完成后这样里面对应的根目录以及所有的文件文件夹就都可以识别了。 然后才会去读取并运行初始化脚本相关的东西最后初始化console控制台然后才能看到那个常见的才可以输入命令比如ls才可以和系统交互。 所以实际就是这个rootfs对应着mtdblock2对应的某个nand flash上的地址比如此处的2M的地方。而不是内核kernel这个文件映射的。 (hainei_)