关于UBOOT,LINUX内核编译,根文件系统的15个弱智问题(转)
2009-08-15 18:52
(1)内核默认运行地址和加载地址在哪里设置?
(2)从FLASH什么地址找内核和根文件系统,UBOOT在哪里设置?
(3)启动时UBOOT将根文件系统和内核拷贝到RAM中何处在哪里设置?
(4)UBOOT 如何知道内核与根文件系统的格式和大小?
(5)内核启动参数在编译UBOOT时候哪里指定?
(6)内核启动后如何知道在SDRAM中何处找到根文件系统来挂载?如何知道根文件系统大小和格式?
(7)内核如何知道UBOOT欲传递给内核的参数放在SDRAM中何处?
(8)内核编译时候的运行地址在哪里指定?内核是位置无关码吗?
(9)友善之臂MINI2440的说明书写道: 由于本系统采用了可读写文件系统 yaffs(在嵌入式系统中,专门管理 Flash 存储器的 一种文件系统),因此可以很方便的动态保存数据,掉电后不会丢失。开机后在串口终端运行 以下命令: #cp / shanghaitan.mp3 /home/plg 此时将在/home/fa目录下复制一个同样的文件,然后关机,重新开启系统,可以查看 到/home/plg 目录下的文件依然存在。
----- 根文件系统不是已经搬运到在RAM中了?COPY文件是在RAM中啊怎么会写到FLASH里呢?
(10)内核启动参数在配置内核时候可以选。BOOTLOADER也可以传参数。这两种参数是互补的关系还是谁优先的关系(如果有冲突的话)?
(11) 友善的板子SUPERVIVI/UBOOT从NOR启动然后可以烧写文件到NAND,但是不能从NAND启动然后烧写文件到NOR ----烧文件到NOR需要HJTAG或者
JLINK,BOOTLOADER,如UBOOT有支持烧写NOR的吗?
(12) 配置内核(或VIVI)运行MAKE MENUCONFIG 时是否顶层如果已经有专门配好的设置.config,make就会自动调入.config的配置,但是如果没有.config按照哪个默认值显示呢?
(13)LINUX内核和根文件系统映像在NAND中的起始地址和大小的信息,是不是要UBOOT在程序中写死,这样的话,对某一个特定版本的UBOOT,LINUX内
核和根文件系统就不能在NAND中任意位置烧写了。还是,内核和根文件系统在NAND中的位置和大小都是可变的,同一个版本的UBOOT可以智能地检测
出这些信息从而正常启动linux?
(14) 修改UBOOT代码让UBOOT支持“JFFS2/CRAMFS/YAFFS” -------- 这句话是什么意思? uboot的作用不就是把FLASH里的根文件系统搬运到SDRAM里吗?管它是什么格式能COPY到SDRAM不久行了吗?
(15)据说lINUX内核可以在FLASH本地也可以加载到内存中运行,UBOOT是哪种方式?编译UBOOT可以选择用哪种方式吗?
1. 看《嵌入式LINUX应用开发完全手册》302页 2. UBOOT里有环境变量,UBOOT启动后,会根据bootcmd这个环境变量来执行命令。就是在这个环境变量里写明:从哪里读出内核; 文件系统在哪里,是由内核来确定的,建议你先按顺序好好看书。 3. 启动时UBOOT不拷贝根文件系统,把内核拷贝到哪里,请看bootcmd环境变量 4. UBOOT不管文件系统,内核就是一个可以直接运行的映象,没什么特殊格式 5. 自己看UBOOT那章 6. 内核启动后,不是在SDRAM中找文件系统,而是在FLASH上找,你看内核移植、根文件系统那2章 7. 看UBOOT那章 8. 看内核那章,内核开始一小部分的代码是位置无关的 9. 跟RAM没有关系 10. 传递的参数优先 11. 有,本论坛的UBOOT就可以直接烧写NOR 12. 试试就知道 13. UBOOT只管内核在哪,这个地址可以通过命令设置,不是写死; 文件系统由内核来找,这个地址一般是写死在内核中 14. 支持烧写这些文件系统类型的映象文件 15. 内核可以在NOR上直接运行,这跟UBOOT没关系,UBOOT只是负责初始化一下硬件,然后可能的话把内核复制到SDRAM中,然后启动内核; 如果是NOR上运行内核,那么UBOOT初始化完硬件后,直接启动内核 |
阅读(3043) | 评论(0) | 转发(3) |