(1)内核默认运行地址和加载地址在哪里设置?
由 arch/arm/kernel/vmlinux.lds.S 生成的 arch/armkernel/vmlinux.lds决定
(2)从FLASH什么地址找内核和根文件系统,UBOOT在哪里设置?
UBOOT里有环境变量,UBOOT启动后,会根据bootcmd这个环境变量来执行命令,通常这个命令中写明了从哪里读出内核;而至于文件系统在哪里,是由内核来确定的。
在Linux中规定每个分区的,只要把文件系统放到对应的分区,再默认指定就可以了,但是后来的uboot可以支持传递分区信息给Linux了,所以uboot提供的分区,Linux能够识别出来。
(3)启动时UBOOT将根文件系统和内核拷贝到RAM中何处在哪里设置?
启动时UBOOT不拷贝根文件系统,把内核拷贝到哪里,请看bootcmd环境变量
(4)UBOOT 如何知道内核与根文件系统的格式和大小?
UBOOT不管文件系统,内核就是一个可以直接运行的映象,没什么特殊格式
(5)内核启动参数在编译 uboot 时候哪里指定?
参考UBOOT那章
(6)内核启动后如何知道在 SDRAM 中何处找到根文件系统来挂载?如何知道根文件系统大小和格式?
内核启动后,不是在SDRAM中找文件系统,而是在FLASH上找,你看内核移植、根文件系统那2章
(7)内核如何知道UBOOT欲传递给内核的参数放在SDRAM中何处?
看UBOOT那章
(8)内核编译时候的运行地址在哪里指定?内核是位置无关码吗?
看内核那章,内核开始一小部分的代码是位置无关的
(9)友善之臂MINI2440的说明书写道:根文件系统不是已经搬运到在RAM中了?COPY文件是在RAM中啊怎么会写到FLASH里呢?
跟RAM没有关系
(10)内核启动参数在配置内核时候可以选。BOOTLOADER也可以传参数。这两种参数是互补的关系还是谁优先的关系(如果有冲突的话)?
传递的参数优先
(11)友善的板子SUPERVIVI/UBOOT从NOR启动然后可以烧写文件到NAND,但是不能从NAND启动然后烧写文件到NOR ----烧文件到NOR需要JTAG或者JLINK,BOOTLOADER,有UBOOT支持烧写NOR的吗?
有,本论坛的UBOOT就可以直接烧写NOR
(12) 配置内核(或VIVI)运行MAKE MENUCONFIG 时是否顶层如果已经有专门配好的设置.config,make就会自动调入.config的配置,但是如果没有.config按照哪个默认值显示呢?
试试就知道
(13) LINUX内核和根文件系统映像在NAND中的起始地址和大小的信息,是不是要UBOOT在程序中写死,这样的话,对某一个特定版本的UBOOT,LINUX内核和根文件系统就不能在NAND中任意位置烧写了。还是,内核和根文件系统在NAND中的位置和大小都是可变的,同一个版本的UBOOT可以智能地检测出这些信息从而正常启动linux?
UBOOT只管内核在哪,这个地址可以通过命令设置,不是写死;文件系统由内核来找,这个地址一般是写死在内核中
(14) 修改UBOOT代码让UBOOT支持“JFFS2/CRAMFS/YAFFS” -------- 这句话是什么意思? uboot的作用不就是把FLASH里的根文件系统搬运到SDRAM里吗?管它是什么格式能COPY到SDRAM不久行了吗?
支持烧写这些文件系统类型的映象文件
(15) 据说lINUX内核可以在FLASH本地也可以加载到内存中运行,UBOOT是哪种方式?编译UBOOT可以选择用哪种方式吗?
内核可以在NOR上直接运行,这跟UBOOT没关系,UBOOT只是负责初始化一下硬件,然后可能的话把内核复制到SDRAM中,然后启动内核;如果是NOR上运行内核,那么UBOOT初始化完硬件后,直接启动内