uboot之bootm以及go命令的实现】的更多相关文章

本文档简单介绍了uboot中用于引导内核的命令bootm的实现,同时分析了uImage文件的格式,还简单看了一下uboot下go命令的实现 作者: 彭东林 邮箱: pengdonglin137@163.com http://pan.baidu.com/s/1o6HPqps…
u-boot第一阶段完成了一些平台相关的硬件的配置,第一阶段所做的事情也是为第二阶段的准备,我们知道在第一阶段最后时搭建好C运行环境,之后调用了start_armboot(),那么很显然第二阶段从start_armboot()函数入手.第二阶段u-boot所要做的工作就是从Flash中读取内核,然后将内核加载到RAM中.并且引导内核启动. start_armboot()函数的路径为:./lib_arm/boad.c 进入start_armboot()函数,找到init_sequence for…
仿照bootm命令生成来制作一个hello命令,功能:打印出hello,world!和参数值 1.点击New File ,创建cmd_hello.c将./common/cmd_bootm.c的头文件复制到 cmd_hello.c中(因为cmd_bootm.c的头文件都是包括的命令相关的文件): #include <common.h>#include <watchdog.h>#include <command.h>#include <image.h>#incl…
本节主要学习: 详细分析UBOOT中"bootcmd=nand read.jffs2 0x30007FC0 kernel;bootm 0x30007FC0" 怎么实现nand命令读内核. 1. nand read.jffs2 0x30007FC0 kernel 步骤a: 从NAND FILSHE中kernel分区读出步骤b: 放到0x30007FC0去 1.1 kernel分区: 是flash中内核区 其中在flash中定义了4大分区: | bootloader | :一开机直接运行u…
本文转载自:http://blog.csdn.net/huanghai381/article/details/51206646 每个命令都是通过U_BOOT_CMD宏来定义的.这个宏定义了一个相关的结构体,文件是uboot/include/command.h,结构体为cmd_tbl_s 具体的命令定义为: #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t __u_boot_cmd_##name Struct_Secti…
1. loads loads [ off ] 通过串口,下载S-Rec文件到off位置 loads命令可以通过串口线下载S-Record格式文件. 2. loadb loadb [ off ] [ baud ] 通过串口,以baud速率,下载binary到off位置(即:kermit protocol) loadb命令可以通过串口线下载二进制格式文件. 3. loady loady [load address] [baud rate] 支持Ymodem协议…
norflash 烧写 (7) Nor Flash指令 Nor Flash 的命令经常用于烧写数据到Nor Flash . flinfo  打印Flash存储器的信息,并列出所有Sector. flinfo  N 单独打Flash存储器N Block的信息.(在有多块Nor Flash时使用) 使用范例: [u-boot@MINI2440]# flinfo Bank # 1: SST: 1x SST39VF1601 (2MB) Size: 2 MB in 32 Sectors Sector St…
u-boot命令 先贴一个重要结构,位于uboot/include/command.h,这个结构代表每个uboot命令 struct cmd_tbl_s { char     *name;   /* Command Name       */ int      maxargs;    /* maximum number of arguments*/ int      repeatable;/* autorepeat allowed?   */ /* Implementation function…
转自:http://xouou.iteye.com/blog/2150061 先贴一个重要结构,位于uboot/include/command.h,这个结构代表每个uboot命令 struct cmd_tbl_s { char     *name;   /* Command Name       */ int      maxargs;    /* maximum number of arguments*/ int      repeatable;/* autorepeat allowed?  …
本节主要学习,run_command函数命令查找过程,命令生成过程 1.run_command函数命令查找过程分析:在u-boot界面中(main_loop();位于u-boot-1.1.6/common/main.c ):a 输入命令字符串b 将命令字符串代入函数run_command()c run_command():判断命令字符串,在argv[0]里保存命令名,并调用find_cmd(argv[0]))函数查找内存中该命令结构体,判断各个参数,执行命令等d find_cmd(argv[0]…
(8) USB 操作指令 指令 功能 usb reset 初始化USB控制器 usb stop [f] 关闭USB控制器 usb tree 已连接的USB设备树 usb info [dev] 显示USB设备[dev]的信息 usb storage 显示已连接的USB存储设备 usb dev [dev] 显示和设置当前USB存储设备 usb part [dev] 显示USB存储设备[dev]的分区信息 usb read addr blk# cnt 读取USB存储设备数据 在所有的命令使用前,必须先…
U-boot发展到现在,他的命令行模式已经非常接近Linux下的shell了,命令行模式模式下支持"Tab"键的命令补全和命令的历史记录功能.而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是" version",但是在所有的命令中没有其他任何一个的命令是由"v"开头的,所以只需要输入"v"即可. [u-boot@MINI2440]# version…
dnw:在进入系统之前进入指令行,输入该指令可下载烧录文件. re:重新启动嵌入式系统. printenv:打印当前系统环境变量. setenv:设置环境变量,格式:setenv name value ...,表示将name 变量设置成value 值:如果没有这个参数,表示删除该变量. saveenv:保存环境变量到NAND中. sleep:延迟执行,格式:sleep N,可以延迟N秒钟执行. run:执行环境变量中的命令,格式:run var,可以跟几个环境变量名. crc32:计算校验值,格…
1.典型嵌入式linux系统启动过程: 嵌入式系统上电后先执行uboot.然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS(OS启动后uboot就无用了) 2.uboot必须解决哪些问题 1.自身可开机直接启动(1)一般的SoC都支持多种启动方式,譬如SD卡启动.NorFlash启动.NandFlash启动等·····uboot要能够开机启动,必须根据具体的SoC的启动设计来设计uboot(2)uboot必须进行和硬件相对应的代码级别的更改和…
转:http://www.360doc.com/content/10/0827/13/496343_49168699.shtml 获取帮助环境变量与相关指令U-boot的使用网络命令Nand Flash操作指令内存/寄存器操作指令Nor Flash指令USB 操作指令SD卡(MMC)指令FAT文件系统指令系统引导指令EEPROM 读写指令设置和读取RTC指令脚本运行指令系统重启指令下载与烧写 1) 通过SD卡烧入Nand Flash: 2) 通过U盘烧入Nor Flash 3) 通过TFTP服务…
上片博文总结出了u-boot的工作流程,今天我们来分析,u-boot的两个比较重要的内容 1.        U-boot命令的实现 2.        U-boot如何启动内核 l  命令实现 我们的u-boot可以解析输入的命令,比如print.setenv.saveenv等命令,我们下来对其的实现进行分析. 我们昨天分析到BL2最后停在了main_loop处,那么我们输入的命令肯定也是在这个函数中实现的,我们找到该函数,在main_loop函数中run_command函数很容易引起我们的关…
本文转载自:https://gaomf.cn/2016/06/26/%E5%9C%A8U-Boot%E4%B8%AD%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9%89%E5%91%BD%E4%BB%A4%E4%BB%A5%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E4%B8%8B%E8%BD%BD%E7%A8%8B%E5%BA%8F/ U-Boot中通过NFS下载程序是一种很普遍的方式,然而下载程序的过程并不能只用一条命令实现…
U­BOOT 常用命令 通常使用 help(或者只使用问号?),来查看所有的 U­BOOT 命令.将会列出在当前配置下所有支持的命令. 但是我们要注意,尽管 U­BOOT 提供了很多配置选项,并不是所有选项都支持各种处理器和开发板,有些选项 可能在你的配置中并没有被选上. 4.1.1 获得帮助信息 通过 help 可以获得当前开发板的 U­BOOT 中支持的命令. CRANE2410 # help ?       - alias for 'help' autoscr - run script f…
uboot下的命令行 1.典型嵌入式linux系统启动过程: 嵌入式系统上电后先执行uboot.然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中读取到DDR中,然后启动OS(OS启动后uboot就无用了) 2.uboot必须解决哪些问题 1.自身可开机直接启动(1)一般的SoC都支持多种启动方式,譬如SD卡启动.NorFlash启动.NandFlash启动等·····uboot要能够开机启动,必须根据具体的SoC的启动设计来设计uboot(2)uboot必须进行和硬件相…
转载:https://blog.csdn.net/voice_shen/article/details/7441894 依linux community的要求,从linux-3.5后,新提交的code必须对device tree进行支持.下面介绍如何使u-boot支持device tree,以及fdt命令的使用. 1. u-boot对fdt(flattened device tree)的支持. 实现:只要加入 #define CONFIG_OF_LIBFDT /* Device Tree sup…
1.u-boot命令机制u-boot中,每个命令都使用一个struct cmd_tbl_s结构体定义,该定义在include/command.h中实现:struct cmd_tbl_s{ char *name,//u-boot中执行的命令 int maxargs,//命令所能带的参数个数,最少为1 int repeatable,//该命令是否可重复 int (*cmd)(struct cmd_tbl_s *,int,int,char*[]),//指向该命令对应的源函数 char *usage,/…
本文转载自:https://blog.csdn.net/qq_36430621/article/details/69630391 最近入手了一块友善之臂的NanoPc-T3,个人感觉还不错,板子的工艺和颜值都挺高的,就是价格略高!!学生党伤不起呀!把玩之际发现官方提供的Uboot不支持串口通过loady命令下载代码.强迫症发作自己重新编译下Uboot使其支持loady命令.以下是具体的过程,仅供分享参考. PC机系统建议使用ubuntu14.04 64位系统. 一   下载解压Uboot源代码,…
转:http://www.embedu.org/Column/Column464.htm 作者:曾宏安,华清远见嵌入式学院讲师. u-boot是嵌入式系统中广泛使用的一种bootloader.它不仅支持众多的平台和参考板,而且支持丰富的命令,可以让用户对开发板进行各种操作.关于u-boot使用和移植的资料很多,这里不再赘述.下面用问答的方式介绍u-boot中命令的实现机制. Q1: u-boot中命令的实现代码在什么地方? A1: 在u-boot源码的common目录下.通常一个或多个命令在对应…
其中U_BOOT_CMD命令格式如下: U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help") 各个参数的意义如下: name:命令名,非字符串,但在U_BOOT_CMD中用“#”符号转化为字符串 maxargs:命令的最大参数个数 repeatable:是否自动重复(按Enter键是否会重复执行) command:该命令对应的响应函数指针 usage:简短的使用说明(字符串) help:较详细的使用说明…
题外话: 最近一直在学习u-boot的源代码,从代码量到代码风格,都让我认识到什么才是真正的程序.以往我所学到的C语言知识和u-boot的源代码相比,实在不值一提.说到底,机器都是0和1控制的.感觉这很像我们中国<易经>里的一句话:"太极生两仪,两仪生四象."两仪指的就是阴阳.天地,对立而又相互依存的一切,它们生成了天地万物.简单的0和1就构成了我们现在所用的操作系统,各种软件.硬件也是由高低电平控制,0和1就是万物. 刚刚在读一本科幻小说,里面提到一种叫做"脑域…
转自迅为讨论群:http://www.topeetboard.com 重要说明:这份笔记不是4412开发配套的,是我在网上看视频的时候下载上课老师的笔记后修改的.所以我试了一下笔记上的uboot命令,有些无法使用,可能是uboot版本问题或者文件系统问题.具体原因我目前还不是很清楚,建议第五部分uboot命令可以先不用尝试. 一切以配套视频为准. 一.为什么是uboot 1.uboot从哪里来的? (1)uboot是SourceForge上的开源项目 (2)uboot项目的作者:一个德国人最早发…
1.环境变量如何参与程序运行(1)环境变量有2份,一份在Flash中,另一份在DDR中.uboot开机时一次性从Flash中读取全部环境变量到DDR中作为环境变量的初始化值,然后使用过程中都是用DDR中这一份,用户可以用saveenv指令将DDR中的环境变量重新写入Flash中去更新Flash中环境变量.下次开机时又会从Flash中再读一次.(2)环境变量在uboot中是用字符串表示的,也就是说uboot是按照字符匹配的方式来区分各个环境变量的.因此用的时候一定要注意不要打错字了. (3)如果环…
/*********************************************************************************** * * linux 3.5,U-Boot,Busybox,SD卡启动环境搭建 * * 声明: * 1. 本系列文档是在vim下编辑,请尽量是用vim来阅读,在其它编辑器下可能会 * 不对齐,从而影响阅读. * 2. 以下所有的shell命令都是在root权限下运行的; * 3. minicom(U-Boot)指的是用minico…
/*************************************************** *u-boot版本:u-boot2012.04.01 *gcc版本:arm-linux-gcc-4.3.2 *服务器:ubuntu12.04 ***************************************************/ 一.建立单板    在board/复制smdk2410文件夹为smdk2440文件夹    在include/configs/将smdk2410.…
原文网址:http://blog.csdn.net/sadamoo/article/details/8139946 来自http://blog.ednchina.com/hhuwxf/1915416/message.aspx,感谢作者 一.Bootloader的引入 从前面的硬件实验可以知道,系统上电之后,需要一段程序来进行初始化:关闭 WATCHDOG.改变系统时钟.初始化存储控制器.将更多的代码复制到内存中等等.如果它能将操作系统内核(无论从本地,比如Flash:还是从远端, 比如通过网络)…