摘要:U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在include/command.h头文件中定义,每一个命令定义一个cmd_tbl_t结构体。
#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
这样每一个U-Boot命令有一个结构体来描述。结构体包含的成员变量:命令名称、最大参数个数、重复数、命令执行函数、用法、帮助。
阅读全文
08 2009 档案
摘要:uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。
1、 首先说明一下,S3C2410架构下的bootm只对sdram中的内核镜像文件进行操作(好像AT91架构提供了一段从flash复制内核镜像的代码, 不过针对s3c2410架构就没有这段代码,虽然可以在u-boot下添加这段代码,不过好像这个用处不大),所以请确保你的内核镜像下载到sdram 中,或者在bootcmd下把flash中的内核镜像复制到sdram中。
2、-a参数后是内核的运行地址,-e参数后是入口地址。
3、
1)如果我们没用mkimage对内核进行处理的话,那直接把内核下载到0x30008000再运行就行,内核会自解压运行(不过内核运行需要一个tag来传递参数,而这个tag建议是由bootloader提供的,在u-boot下默认是由bootm命令建立的)。
2)如果使用mkimage生成内核镜像文件的话,会在内核的前头加上了64byte的信息,供建立tag之用。bootm命令会首先判断bootm xxxx 这个指定的地址xxxx是否与-a指定
阅读全文
摘要:任何优秀的脚本都应该具有帮助和输入参数。写一个框架脚本(framework.sh),该脚本包含了大多数脚本需要的框架结构,是一个非常不错的主意。
最简单的调试方法当然是使用echo命令。你可以在任何怀疑出错的地方用echo打印变量值,这也是大部分shell程序员花费80%的时间用于调试的原因。Shell脚本的好处在于无需重新编译,而插入一个echo命令也不需要多少时间。
阅读全文
摘要:如果你写过比较复杂的脚本,就会发现可能在几个地方使用了相同的代码,这时如果用上函数,会方便很多。
阅读全文
摘要:引号(单引号和双引号)可以防止通配符*的扩展,而双引号可以防止通配符扩展但允许变量扩展;使用转义字符——反斜杆:\;
阅读全文
摘要:if 语句 && 和|| 操作符
case 语句
select 语句 while/for 循环
........
阅读全文
摘要:Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量。本文不讨论环境变量,因为它们一般只在登录脚本中用到。
阅读全文
摘要:制作根文件系统 cramfs 出现的 出错信息: modutils/lib.a(insmod.o)(.text.insmod_main+0x360): In function `insmod_main'':: undefined reference to `query_module''modutils/lib.a(insmod.o)(.text.insmod_main+0x394): In fun...
阅读全文
摘要:宿主机上的设置:1. 配置宿主机的以太网口# ifconfig eth0 down# ifconfig eth0 192.168.1.1 up (可以不配置,直接用ifconfig查看自己的IP,记住) 2. 在宿主机上建立目录/home/nfs 3. 编辑/etc/exports文件如下:/home/nfs *(rw,sync,no_root_squash)*指的是允许所有的ip访问这样可以指定...
阅读全文
摘要: shell 函数
函数由两部分组成:
函数标题。
函数体。
标题是函数名。函数体是函数内的命令集合。标题名应该唯一;如果不是,将会混淆结
果,因为脚本在查看调用脚本前将首先搜索函数调用相应的s h e l l。
阅读全文
摘要:条件测试
对文件、字符串和数字使用t e s t命令。
对数字和字符串使用e x p r命令。
e x p r命令测试和执行数值输出。使用最后退出状态命令$ ?可测知t e s t和e x p r,二者均以0表
示正确,1表示返回错误
测试文件状态
阅读全文
摘要:环境和shell变量
测试变量是否已经设置
也可以编写脚本测试变量是否取值,然后返回带有系统错误信息的结果
测试变量是否取值,如果未设置,则返回一空串
导出变量除了可以用export 外,还可以用 set 命令
最常用的s t t y命令使用在下述设置上
阅读全文
摘要:g r e p(全局正则表达式版本)允许对文本文件进行模式查找。
在g r e p命令中输入字符串参数时,最好将其用双引号括起来。
如果要在当前目录下所有. d o c文件中查找字符串“ s o r t”,
大小写敏感
缺省情况下, g r e p是大小写敏感的,如要查询大小写不敏感字符串,必须使用- i开关。
结合使用^和$可查询空行。使用- n参数显示实际行数: grep '^$' myfile
查询有特殊含义的字符,诸如$ . ' " * [] ^ | \ + ? ,必须在特定字符前加\。
使用已学过的知识可以很容易通过g r e p命令获得系统信息。
ps x命令意为显示系统上运行的所有进程列表。
阅读全文
摘要:命令执行顺序
在执行某个命令的时候,有时需要依赖于前一个命令是否执行成功。例如,假设你希望
将一个目录中的文件全部拷贝到另外一个目录中后,然后删除源目录中的全部文件。在删除
之前,你希望能够确信拷贝成功,否则就有可能丢失所有的文件。
如果希望在成功地执行一个命令之后再执行另一个命令,或者在一个命令失败后再执行
另一个命令,& &和| |可以完成这样的功能。相应的命令可以是系统命令或s h e l l脚本。
阅读全文
摘要:
F i n d是一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。
使用e c h o命令可以显示文本行或变量,或者把字符串输入到文件。
使用c a t命令把标准输出重定向到该文件中,这时c a t命令的输入是标准输入—键盘,你输入一些文字,输入完毕后按结束输入。
t e e命令作用可以用字母T来形象地表示。
当我们在s h e l l中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件系统中实际上有1 2个文件描述符, 0、1、2是标准输入、输出和错误。可以任意使用文件描述符3到9。你可能会问为什么会有一个专门针对错误的特殊文件?这是由于很多人喜欢把错误单独保存到一个文件中,特别是在处理大的数据文件时,可能会产生很多错误。
e x e c命令可以用来替代当前s h e l l;换句话说,并没有启动子s h e l l。使用这一命令时任何现有环境都将会被清除,并重新启动一个s h e l l。
阅读全文
摘要:SHELL学习文件类型:
d 目录。
l 符号链接(指向另一个文件)。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
阅读全文
摘要:Both /sbin/sh and /usr/bin/sh shells are Bourne shells.
大体意思是/sbin/sh 是静态链接的, /bin/sh是动态链接的。 静态链接的sh虽然比动态链接的size大,但它有个好处就是它的运行不依赖共享库。也就是说如果系统崩溃导致库文件丢失或损坏,它仍然能执行。
阅读全文
摘要: 在前面移植好内核和文件系统之后,开始考虑网卡的通信了。网上好多关于DM9000驱动的例子,大同小异,但是一律照搬都是不行,最多的只能发现设备,到最后还是ping不通,花费九牛二虎之力,终于还是弄好了。
看到ping通其他主机,真是舒了一口气。
阅读全文
摘要:tar: ./linux-2.6.14.1/mm/oom_kill.o: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/mm/.page-writeback.o.cmd
tar: ./linux-2.6.14.1/mm/.page-writeback.o.cmd: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/mm/filemap_xip.c
tar: ./linux-2.6.14.1/mm/filemap_xip.c: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/mm/filemap.h
tar: ./linux-2.6.14.1/mm/filemap.h: Cannot open: 没有那个文件或目录
./linux-2.6.14.1/Makefile.orig
tar: ./linux-2.6.14.1/Makefile.orig: Wrote only 0 of 10240 bytes
tar: Skipping to next header
./linu
阅读全文
摘要:(1)在虚拟机中创建一个新硬盘。打开VMware,但还未启动Linux时,选择edit virtualmachine setting,通过“add按钮”,添加一个新硬盘。在disk file处指定虚拟硬盘的名字和位置。D:\Linux\lab.vmdk注意:新硬盘的设备名为sdb或hdb (假定原来只安装一个硬盘情况下)(2)虚拟Linux下分区,格式化为fat32格式。启...
阅读全文
摘要:添加的功能:
1. 同时支持S3C2410和S3C2440
2. 支持串口xmodem协议
3. 支持USB下载,可以在PC上使用dnw传数据
4. 支持网卡芯片CS8900
5. 支持NAND Flash读写
6. 支持从Nor/Nand Flash启动
7. 支持烧写yaffs文件系统映象
阅读全文
摘要:1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命令行模式command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 2) 插入模式(Insert ...
阅读全文
摘要:其实不能称为移植,只是将一般的Jflash代码修改一下,以适合自己的板子。
阅读全文
摘要:这段时间不断有人问我u-boot启动内核的问题,记得在上次提供的u-boot源码中提到了go的方案,不过其实u-boot本来有一种更好的方案: bootm
花了不少时间,查看了论坛上不少的帖子,认真阅读了bootm的源码,终于使用bootm把内核给跑起来了,
阅读全文
摘要:目前官方网站上最新版本的u-boot 是1.3.3,本来想打算移植1.3.3的,但是这几天的经历让我放弃了1.3.3。原由是这样的,前不久移植了1.2.0,这个版本的移植相对来说比较容易,因为网上的资料比较多,而这次我就打算直接移植1.3.3,因为前面有了基础了,做事情就不怕。为了让底气更足一点,补了两天的基础,其中看了看汇编语言,将cpu/arm920t/start.S这个文件也看了几遍。有空再整理一下对start.S这个文件的彻底分析,目前网上的分析并不好,不全面,讲得不透彻,相信很多朋友对这个文件还是一知半解的,可以也包括我自己。
阅读全文


浙公网安备 33010602011771号