最近学习linux内核,对bootloader有些问题不解,求解答,谢谢:
第一步要用jlink下载uboot,后面才能引导内核下载进去,我想知道是不是一些linux方案的芯片出厂时都固化了uboot在里面?那个所谓的InterRom里面的就是这...
第一步要用jlink下载uboot,后面才能引导内核下载进去,我想知道是不是一些linux方案的芯片出厂时都固化了uboot在里面?那个所谓的InterRom里面的就是这个boot?
head.s里面的东西是属于内核里的吗?也是由uboot引导进去的?怎么又有人叫head.s相关的代码叫bootloader?
麻烦通俗的说说,谢谢 展开
head.s里面的东西是属于内核里的吗?也是由uboot引导进去的?怎么又有人叫head.s相关的代码叫bootloader?
麻烦通俗的说说,谢谢 展开
2个回答
展开全部
1.第一个问题芯片方案出厂时不会针对操作系统,可以理解为不是某个方案芯片专门为linux而设计的,而是linux通过修改可以支持某个方案芯片。在芯片出厂时,不会固化boot。如果你用的是开发板的话,那拿到的开发板一般都是有开发厂家已经下载好的。
2.interRom既是内部存储器,这个存储器不会太大。现在好多芯片都有内部存储器同时也支持外部存储器。在上电启动的时候,可以通过配置GPIO管教进行选择是通过内部还是外部存储器启动,如果选择内部存储器启动,那就把boot下载到interrom里面,从哪里开始启动。
3.head.s是uboot的文件。同时你要明白,bootloader程序不止一种,uboot只是其中的一种,由于免费开源,所以在嵌入式领域用的比较广泛。
4.一般的芯片,在上电以后都会从固定的地址读取固定长度的代码到内存中执行,由于内核代码太大,不能完全读取,这个时候就出现了boot,上电以后读取boot后,boot会初始化CPU的相关资源,建立相应的运行环境,然后再把内核加载到RAM中执行,这个也就是bootloader存在的意义,在内核加载完以后,bootloader就失去作用了。
2.interRom既是内部存储器,这个存储器不会太大。现在好多芯片都有内部存储器同时也支持外部存储器。在上电启动的时候,可以通过配置GPIO管教进行选择是通过内部还是外部存储器启动,如果选择内部存储器启动,那就把boot下载到interrom里面,从哪里开始启动。
3.head.s是uboot的文件。同时你要明白,bootloader程序不止一种,uboot只是其中的一种,由于免费开源,所以在嵌入式领域用的比较广泛。
4.一般的芯片,在上电以后都会从固定的地址读取固定长度的代码到内存中执行,由于内核代码太大,不能完全读取,这个时候就出现了boot,上电以后读取boot后,boot会初始化CPU的相关资源,建立相应的运行环境,然后再把内核加载到RAM中执行,这个也就是bootloader存在的意义,在内核加载完以后,bootloader就失去作用了。
更多追问追答
追问
我想知道,像手机方案中的芯片,我们拿到板子后开始下载,既然能够支持下载,那么是不是可以说uboot已经起作用了,而且一般用USB或者串口,这些实现只能在内部的ROM里面吗?
你说的head.s是uboot的文件?应该是一部分?可不可以说head.s所做的工作才是真正跟板级相关的后半部分?上面我问的支持下载的控制是boot做的,那我现在改了head.s生成映像是不是就冲掉了之前boot?
追答
你说的手机方案芯片我不知道是那个方案,这个没有关系。你提到拿到板子后开始下载,这个下载是指用什么方式下载呢?如果板子中已经有Uboot,并且Uboot中集成了可以支持串口或USB口下载的代码,那么是可以下载的。如果板子就是一个裸板,还没有代码,那代码可以通过仿真器或者已经固化在ROM中的代码实现下载。有些芯片方案在内部ROM中已经固化了可以对存储器进行擦除写入的程序,所以可以通过其内部固化的代码下载。也就是说可以下载并不是说明板子内部已经有了uboot,如果板子中有uboot且uboot已经支持了对下载的支持,就可以使用uboot下载。
至于head.s文件,这个文件只是uboot 众多文件中的一个文件。至于head.s的内容,我是没有读过的。
更改uboot中的任何一个文件,重新编译,都会生成一个新的uboot镜像文件。所谓映像文件,只不过是编译出来的二进制代码。根据不同平台的不同情况,可能会在文件的头部或者尾部添加一下校验或者验证信息。
展开全部
首先你需要知道什么是bootloader
简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境.
uboot是文件系统,芯片出厂时不会给你弄个uboot进去,需要自己下载进去,因为它不知道你需要的是什么操作系统。interrom只是个存储器,并不是boot.
引导内核的是bootloader ,head.s就是bootloader的一部分。
希望可以帮到你,望选为满意答案
简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境.
uboot是文件系统,芯片出厂时不会给你弄个uboot进去,需要自己下载进去,因为它不知道你需要的是什么操作系统。interrom只是个存储器,并不是boot.
引导内核的是bootloader ,head.s就是bootloader的一部分。
希望可以帮到你,望选为满意答案
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询