uboot下的boot命令是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uboot下的boot命令是啥意思相关的知识,希望对你有一定的参考价值。

boot是一个单独的二进制文件。
烧写进开发板,通过串口就可以进行命令输入。
U-boot发展到现在,它的命令行模式已经非常接近Linux下的shell了。
在编译的U-boot-2009.11中的命令行模式,支持“Tab”键的命令补全和命令的历史记录功能。
而且如果输入的命令的前几个字符和别的命令不重复,那么就只需要打这几个字符即可。
比如想看这个U-boot的版本号,命令就是“ version”,
但是在所有的命令中没有其他任何一个的命令是由“v”开头的,
所以只需要输入“v”即可。
参考技术A boot命令是从内存某个位置开始执行程序,在此命令之前应当已经将程序(从Flash或NFS等读入)放到了这一位置追问

是不是执行环境变量bootcmd的内容

追答

不是,bootcmd的最后一句一般是boot或bootm,前面一般是读取内核到指定内存位置的语句,然后是从这个位置启动的boot指令。bootcmd相当于加载时自动执行的批处理命令。

追问

我的bootcmd设置是 tftp 20008000 \; bootm 20008000,然后只要启动开发板输入boot指令,就会自动执行tftp下载及bootm启动两条指令,而不是单一的bootm启动指令

追答

对,boot就是在bootcmd存在时执行它。

本回答被提问者和网友采纳
参考技术B 你这个问题专业性太强了,还好你遇到了我,我11年的时候参加过一个嵌入式的培训,当初我们是做一个数码相框的项目,就是要把已经编写好的程序移植到arm2440板上面运行。整个过程非常的繁琐复杂,我真的无法口述清楚。你想把linux中的命令移植到uboot代码中,应该也是想在你的arm上面编译你的程序然后运行,你可以进我的csdn的博客,博客地址:http://blog.csdn.net/coolboyli520,然后打开那个《Linux移植课实验指导书》,这里有详细的记录,如果对你有帮助,还望采纳! 参考技术C 用来引导kernel,进入系统的。

uboot是啥?

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

拓展资料:

选择U-Boot的理由:

① 开放源码;

② 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS;

④ 较高的可靠性和稳定性;

⑤ 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;

⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;

⑦ 较为丰富的开发调试文档与强大的网络技术支持。

参考技术A   u-boot是一种普遍用于嵌入式系统中的Bootloader,Bootloader是在操作系统运行之前执行的一小段程序,通过它,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的软硬件环境,为最终调用操作系统内核做好准备。Boot Loader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,即开始启动操作系统。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。
  u-boot目录结构:
  1、board中存放于开发板相关的配置文件,每一个开发板都以子文件夹的形式出现;
  2、Commom文件夹实现u-boot行下支持的命令,每一个命令对应一个文件;
  3、cpu中存放特定cpu架构相关的目录,每一款cpu架构都对应了一个子目录;
  4、Doc是文档目录,有u-boot非常完善的文档;
  5、Drivers中是u-boot支持的各种设备的驱动程序;
  6、Fs是支持的文件系统,其中最常用的是JFFS2文件系统;
  7、Include文件夹是u-boot使用的头文件,还有各种硬件平台支持的汇编文件,系统配置文件和文件系统支持的文件;
  8、Net是与网络协议相关的代码,bootp协议、TFTP协议、NFS文件系统得实现;
  9、Tooles是生成U-boot的工具。
  其中比较重要的目录就是/board、/cpu、/drivers和 /include目录,如果想实现u-boot在一个平台上的移植,就要对这些目录进行深入的分析。
  u-boot的启动过程:
  系统启动的入口点。既然我们现在要分析u-boot的启动过程,就必须先找到u-boot最先实现的是哪些代码,最先完成的是哪些任务。另一方面一个可执行的image必须有一个入口点,并且只能有一个全局入口点,所以要通知编译器这个入口在哪里。由此我们可以找到程序的入口点是在/board /lpc2210/u-boot.lds中指定的,其中ENTRY(_start)说明程序从_start开始运行,而他指向的是cpu /arm7tdmi/start.o文件。因为我们用的是ARM7TDMI的cpu架构,在复位后从地址0x00000000取它的第一条指令,所以我们将Flash映射到这个地址上,这样在系统加电后,cpu将首先执行u-boot程序。
  u-boot的启动过程是多阶段实现的,分了两个阶段:
  第一阶段是用汇编写的,主要任务是:
  1、CPU 自身初始化:包括MMU,Cache,时钟系统,SDRAM 控制器等的初始化;
  2、重定位:把自己从非易失性存储器搬移到 RAM 中;
  3、分配堆栈空间,设置堆栈指针;
  4、清零 BSS 数据段;
  5、跳转到第二阶段入口函数 start_armboot();
  第二阶段是用C写的,主要任务是:
  1、为 U-boot 内部私有数据分配存储空间,并清零;
  2、依次调用函数指针数组 init_sequence 中定义的函数进行一系列的初始化;
  3、如果系统支持 NOR Flash,调用flash_init ()和display_flash_config ()初始化并显示检测到的器件信息;
  4、如果系统支持 LCD 或VFD,调用lcd_setmem()或vfd_setmem()计算帧缓(Framebuffer)大小,然后在BSS 数据段之后为Framebuffer 分配空间,初始化gd->fb_base 为Framebuffer 的起始地址;
  5、调用 mem_malloc_init()进行存储分配系统(类似于C 语言中的堆)的初始化和空间分配;
  6、如果系统支持 NAND Flash,调用nand_init ()进行初始化;
  7、如果系统支持 DataFlash,调用AT91F_DataflashInit()和dataflash_print_info()进行初始化并显示检测到的器件信息;
  8、调用 env_relocate ()进行环境变量的重定位,即从Flash 中搬移到RAM 中;
  9、如果系统支持 VFD,调用drv_vfd_init()进行VFD 设备初始化;
  10、从 环 境 变 量 中 读 取 IP 地址和MAC 地址, 初始化gd->bd-> bi_ip_addr 和gd->bd->bi_enetaddr;
  11、调用 jumptable_init ()进行跳转表初始化,跳转表在global_data 中,具体用途尚不清楚;
  12、调用 console_init_r()进行控制台初始化;
  13、如果需要,调用 misc_init_r ()进行杂项初始化;
  14、调用 enable_interrupts ()打开中断;
  15、如果需要,调用board_late_init()进行单板后期初始化,对于AT91SAM9260EK,主要是以太网初始化;
  16、进入主循环:根据用户的选择启动 linux,或者进入命令循环执行用户输入的命令;
  这部分是一些相对变化不大的部分,我们针对不同的板子改变它调用的一些初始化函数,并且通过设置一些宏定义来改变初始化的流程,所以这些代码在移植的过程中并不需要修改,也是错误相对较少出现的文件。在文件的开始先是定义了一个函数指针数组,通过这个数组,程序通过一个循环来按顺序进行常规的初始化,并在其后通过一些宏定义来初始化一些特定的设备。在最后程序进入一个循环,main_loop。这个循环接收用户输入的命令,以设置参数或者进行启动引导。
参考技术B U-Boot,全称Universal BootLoader,是遵循GPL条款的开放源码项目。 参考技术C universal boot loader, 开机后执行的第一段程序,是开源的,一般用来启动嵌入式设备。
官网: http://www.denx.de/wiki/U-Boot/WebHome
参考技术D linux或者其他一些embeded OS开机启动就跑的一段代码~本回答被提问者采纳

以上是关于uboot下的boot命令是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

uboot什么意思(uboot fastboot)

uboot什么意思(uboot fastboot)

uboot是啥?uboot的命令是干嘛的?

python,列表ls[2][-1][0]命令是啥意思?

SELinux是啥意思,如何关闭?Linux下的防火墙用啥命令打开?

uboot下netconsole的原理及使用方法