2016 - 2024

感恩一路有你

uboot添加启动运行命令 能不能在sd卡上装linux系统?

浏览量:3344 时间:2023-09-19 12:51:16 作者:采采

能不能在sd卡上装linux系统?

这个可以实现方法的,你也可以通过SD卡正常启动uboot,但打开程序内核的话,是可以通过tftp下载内核程序加载;也也可以按照nand里面的内核,假如用SD卡内核是不现实就是现实的。当你uboot,kernel都起动之后,从SD卡启动系统应该是很简单的了。

uboot是一个操作系统内核还是一段引导程序?

是一段阻止程序。

1,uboot是为了干什么的,有什么作用?

uboot属于什么bootloader的一种,是单独阻止启动后内核的,它的最终目的就是,从flash中读到内核,扔到内存中,启动内核

所以我,由上面描述的,就知道,UBOOT必须本身读写flash的能力。

2,uboot是怎样强行启动内核的?

uboot刚开始被放在flash中,板子上电后,会手动把其中的一部分代码拷到内存中执行,这部分代码共同负责把余下的uboot代码拷到内存中,然后uboot代码再把kernel部分代码也拷到内存中,因此起动,内核启动后,别着根文件系统,想执行应用程序。

3,uboot启动时的大过程是咋样的?

uboot启动主要两类两个阶段,比较多在start.s文件中,第一阶段要注意做的是硬件的初始化,除开,系统设置处理器模式为SVC模式,关闭看门狗,屏蔽掉中断,初始化sdram,系统设置栈,可以设置时钟,从flashu盘拷贝代码到内存,彻底清除bss段等,bss段是用处存储静态变量,全局变量的,然后再程序页面跳转start_arm_boot函数,宣告第一阶段的结束。

第二阶段也很古怪,做的工作通常是1.从flash中读出来内核。2.起动内核。start_arm_boot的要注意流程为,设置机器id,初始化操作flash,然后再直接进入main_loop,在等待uboot命令,uboot要起动内核,比较多经过两个函数,最先是sgetenv(#34bootcmd#34),第二个是move_command(s...),所以才要启动内核,必须据bootcmd环境变量的内容起动,bootcmd环境变量就像下达命令了从某个flash地址读取内核到启动时的内存地址,然后启动,bootm。

uboot启动时的内核为uImage,这种格式的内核是由两部分分成:完全的内核和内核头部混编,头部中除开内核中的一些信息,.例如内核的读取地址,入口地址。

uboot在认可到起动命令后,要做的主要注意是,1,无法读取内核头部,2,移动内核到比较合适的读取地址,3,启动内核,执行unit_bootm_linux

九十一章_bootm_linux主要做的为,1,设置启动参数,在某种特定的地址,保存到启动后参数,函数共有为setup_start_tag,setup_memory_tag,setup_commandline_tag,setup_end_tag,依据什么名字我们就知道具体详细的段内存储的信息,memory中为板子的内存大小信息,commandline为命令行信息,

2,跳到入口地址,启动时内核

启动时的函数为the_kernel(0,bd-gtbi_arch_number,bd-gtbi_boot_param)

bd-gtbi_arch_number为板子的机器码,bd-gtbi_boot_param为正常启动参数的地址

学习总结:

1)uboot要注意作用是为了起动操作系统内核。体现了什么在uboot之后一句代码就是正常启动内核。

2)uboot又要专门负责防御部署整个计算机系统。体现了什么在uboot到最后的传参。

3)uboot中另外操作Flash等板子上硬件的驱动。比如串口要打印出来,ping值网络成功了,橡皮檫、烧写flash是否需要成功了等。

4)uboot还得可以提供一个命令行界面供人来你的操作。很简单点,最起码你能看见。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。