随笔分类 -  U-boot

摘要:转:http://blog.chinaunix.net/uid-26813001-id-3282954.html首先介绍一下diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。所以必须学会这几个选项。1、diff--------------------NAME diff - find differences between two filesSYNOPSIS diff [options] from-file to-file--------------------简 单的说,diff的功能就是用来比较两个文件的不同,然后 阅读全文
posted @ 2013-09-26 17:10 dolinux 阅读(5476) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-3347599.html此版本uboot在XC2440_uboot_V1.3版本上修改得来,是为我们的一个大客户做的量产工具和智能升级工具。 以前给XC2440核心板烧程序用电脑的USB口,每次还要接上串口,按选项选择烧写功能,电脑上也要频繁操作选择下载的文件。小量的话还好说,就是要费点时间。量大就不能这么干了,有的客户一次要1千套,这么搞会搞死人的。 同时还有个问题一直困扰我,用2440做的产品,如果要更新系统怎么办。而且东西已经卖到了国外,不可能是让客户把东西发过来让我们给更新吧,也不可能让用户自己接. 阅读全文
posted @ 2013-09-25 20:01 dolinux 阅读(950) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-3420080.html给XC2440开发板烧写程序非常灵活,总结起来有这么几种方式:空片烧写(flash中没有任何内容时,或误擦除uboot),仅用于烧写bootloader和裸机程序1. 并口Wiggler JTAG调试板配合HJTAG软件,可以烧写nandflash和norflash,并口速度较慢2. HJTAG USB仿真器配合HJTAG软件,可以烧写nandflash和norflash,速度极快,适用于没有并口的电脑3. Jlink V8仿真器 配合JFlash Arm软件,只能烧写Norflas 阅读全文
posted @ 2013-09-25 19:59 dolinux 阅读(434) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-3347621.html在XC2440开发板上做uboot从nandflash启动时,需要检测硬件启动方式,启动方式是由硬件OM管脚决定的,软件无法检测硬件电平状态,但可以根据CPU的启动特性来检测。通过深入研究2440的启动方式,总结了几点:如果将S3C2440配置成从NANDFLASH启动(将开发板的启动开关拔到nand端,此时OM0管脚拉低)S3C2440的Nand控制器会自动把Nandflash中的前4K代码数据搬到内部SRAM中(地址为0x40000000),同时还把这块SRAM地址映射到了0x0 阅读全文
posted @ 2013-09-25 19:58 dolinux 阅读(368) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-366971.html 在uboot中加入快捷操作菜单的方法非常简单,在论坛发布的uboot201003V1.1的源码包里已经包含了菜单的源码http://www.xcembed.com/bbs/viewthread.php?tid=19&page=1&extra=#pid32效果如下:这个菜单其实就是一个uboot中的命令,uboot启动时,如果进入下载模式,就先运行这个命令。命令的执行内容就是通过串口打印出一个菜单,等待输入数字,再执行相应的动作。新建一个名为:cmd_menu.c的文件 阅读全文
posted @ 2013-09-25 19:57 dolinux 阅读(615) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-3350840.html获得dnw4linux.tar.bz2 源码包,可在xcembed论坛下载:http://www.xcembed.com/forum.php?mod=viewthread&tid=1018&extra=解压源码包:tar xjvf dnw4linux.tar.bz2cd dnw4linux会得到两个目录app driver编译dnw应用程序:cd appmake编译出dnw可执行文件,将它放到/usr/bin目录下sudo cp dnw /usr/bin/这样就可以在 阅读全文
posted @ 2013-09-25 19:56 dolinux 阅读(553) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-3257554.html本文使用uboot2010.03版本,2010.06版本同样适用,在XC2440板上实现显示bmp logo首先需要有LCD的驱动支持,XC2440板的LCD驱动是:drivers/video/xc2440_lcd.c显示LOGO的函数调用流程:在arch/arm/lib/board.c中的start_armboot调用common/stdio.c中的stdio_init如果定义了CONFIG_VIDEO和CONFIG_CFB_CONSOLE,调用drivers/video/cfb_ 阅读全文
posted @ 2013-09-25 19:53 dolinux 阅读(1493) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-22030783-id-3347608.html在XC2440的uboot_V1.3版本中已经支持USB HOST驱动和FAT文件系统,同时支持USB Storage,即U盘关于使用U盘自动更新系统镜像,请看我的这篇博文:http://blog.chinaunix.net/space.php?uid=22030783&do=blog&id=3347599在XC2440.h配置文件中加入这几个配置即可: #define CONFIG_USB_OHCI#define CONFIG_USB_STORAGE#define 阅读全文
posted @ 2013-09-25 19:38 dolinux 阅读(1223) 评论(0) 推荐(0) 编辑
摘要:转:http://www.360doc.com/content/11/1203/09/7378000_169310928.shtml一、devfslinux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。在2.6内核以前一直使用的是devfs,devfs挂载于/dev目录下,提供了一种类似于文件的方法来管理位于/dev目录下的所有设备,我们知道/dev目录下的每一个文件都对应的是一个设备,至于当前该设备存在与否先且不论,而且这些特殊文件是位于根文件系统上的,在制作文件系统的时候我们就已经建立了这些设备文件,因此通过操作这些特殊文件,可以实现与内核进行交互。但是devf 阅读全文
posted @ 2013-09-18 19:17 dolinux 阅读(584) 评论(0) 推荐(0) 编辑
摘要:转:http://www.360doc.com/content/05/0915/14/1429_12641.shtmlBabyLinux制作过程详解作者:GuCuiwen email:win2linux@163.com版权声明:本文档可以在网络上在非商业范围内自由转载,转载请注明出处如果转载版面包含商业广告,请向作者支付至少每千字100园的稿费以书面,书籍形式转载和出版请按至少每千字100园人民币的标准向作者支付稿费一,什么是BabyLinux二,为什么要做这样一个linux三,什么人适合读这篇文档四,应该具备的知识 五,linux系统引导过程简介六,编译内核七,编译busybox八,制作根文 阅读全文
posted @ 2013-09-18 18:49 dolinux 阅读(1391) 评论(0) 推荐(0) 编辑
摘要:转:http://www.360doc.com/content/10/0827/13/496343_49168699.shtml获取帮助环境变量与相关指令U-boot的使用网络命令Nand Flash操作指令内存/寄存器操作指令Nor Flash指令USB 操作指令SD卡(MMC)指令FAT文件系统... 阅读全文
posted @ 2013-09-18 18:11 dolinux 阅读(3199) 评论(0) 推荐(0) 编辑
摘要:当编写驱动程序时,一般情况下不能使用C标准库的函数。Linux内核也提供了与标准库函数功能相同的一些函数,但二者还是稍有差别。类别函数名功能函数形成参数描述字符串转换simple_strtol把一个字符串转换为一个有符号长整数long simple_strtol (const char * cp, char ** endp, unsigned int base)cp指向字符串的开始,endp为指向要分析的字符串末尾处的位置,base为要用的基数。simple_strtoll把一个字符串转换为一个有符号长长整数long long simple_strtoll (const char * cp, 阅读全文
posted @ 2013-09-18 15:42 dolinux 阅读(512) 评论(0) 推荐(0) 编辑
摘要://此函数有以下几点值得注意://1、第一个参数中的const。一般在函数的形参中,如果我们只是希望调用者使用该参数,而不会去改变该参数// 内容(一般是指针指向的内容),则可以声明为const。//2、第二个参数。C语言中函数只能有一个返回值,但是有时候我们希望从函数中得到不止一个返回内容怎么办// 呢?只能通过参数了。一般的参数是用来向函数输入信息的,但是指针型参数可以间接用来从函数输出信// 息。使用时用户只需传入一个相应的指针,函数中会把需要输出的信息地址传给这个指针,这样在函数调用// 完成后,用户即可到endp指针处去取函数传出的值了。这就是用参数实现返回值的方式。但是要注意... 阅读全文
posted @ 2013-09-18 15:35 dolinux 阅读(2716) 评论(0) 推荐(0) 编辑
摘要:转:http://www.embedu.org/Column/Column464.htm作者:曾宏安,华清远见嵌入式学院讲师。u-boot是嵌入式系统中广泛使用的一种bootloader。它不仅支持众多的平台和参考板,而且支持丰富的命令,可以让用户对开发板进行各种操作。关于u-boot使用和移植的资料很多,这里不再赘述。下面用问答的方式介绍u-boot中命令的实现机制。Q1: u-boot中命令的实现代码在什么地方?A1: 在u-boot源码的common目录下。通常一个或多个命令在对应的某个C文件中实现。如果用户要增加一个新命令的话,要在common目录下添加对应的C文件,并在Makefil 阅读全文
posted @ 2013-09-18 14:37 dolinux 阅读(398) 评论(0) 推荐(0) 编辑
摘要:转;http://chenxing777414.blog.163.com/blog/static/186567350201141791224740/下面以添加menu命令(启动菜单)为例讲解U-Boot添加命令的方法。(1) 建立common/cmd_menu.c 习惯上通用命令源代码放在common目录下,与开发板专有命令源代码则放在board/目录下,并且习惯以“cmd_.c”为文件名。(2) 定义“menu”命令 在cmd_menu.c中使用如下的代码定义“menu”命令:_BOOT_CMD( menu, 3, 0, do_menu, "menu - display a men 阅读全文
posted @ 2013-09-18 14:35 dolinux 阅读(3302) 评论(0) 推荐(0) 编辑
摘要:GNU汇编语言结构 主要包括三个常用的段: data 数据段 声明带有初始值的元素 bss 数据段 声明使用0或者null初始化的元素 text 正文段 包含的指令, 每个汇编程序都必须包含此段 使用.section 指令定义段, 如: .section .data .section .bss .section .text 起始点: gnu汇编器使用_start标签表示默认的起始点, 此外如果想要汇编内部的标签能够被外部程序访问, 需要使用.globl 指令, 如:.globl _start 使用通用库函数时可以使用: ld -dynamic-linker /lib/ld-linux.so.2 阅读全文
posted @ 2013-09-18 11:46 dolinux 阅读(657) 评论(0) 推荐(0) 编辑
摘要:第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一. Linux汇编行结构任何汇编行都是如下结构:[:] [} @ comment[:] [} @ 注释Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。【例1】定义一个"add"的函数,返回两个参数的和 阅读全文
posted @ 2013-09-18 11:43 dolinux 阅读(899) 评论(0) 推荐(0) 编辑
摘要:ARM GCC 内嵌(inline)汇编手册关于这篇文档对于基于ARM的RISC处理器,GNU C编译器提供了在C代码中内嵌汇编的功能。这种非常酷的特性提供了C代码没有的功能,比如手动优化软件关键部分的代码、使用相关的处理器指令。这里设想了读者是熟练编写ARM汇编程序读者,因为该片文档不是ARM汇编手册。同样也不是C语言手册。这篇文档假设使用的是GCC 4 的版本,但是对于早期的版本也有效。GCC asm 声明让我们以一个简单的例子开始。就像C中的声明一样,下面的声明代码可能出现在你的代码中。 /* NOP 例子 */asm("mov r0,r0");该语句的作用是将r0移 阅读全文
posted @ 2013-09-18 11:41 dolinux 阅读(871) 评论(0) 推荐(0) 编辑
摘要:这是来自ethernut网站的一篇文章,原文链接:http://www.ethernut.de/en/documents/arm-inline-asm.html另外,据说nut/os是个不错的开源os,对单片机以太网开发感兴趣的可以留意一下。对gcc内联汇编讲解的资料很多,主要也是基于x86架构的,讲解arm的不多。而且,这篇文章对clobber list部分讲得很仔细,包括其他文章很少讲明白的"cc",所以我就果断把它收藏了。ARM GCC Inline Assembler Cookbook About this document The GNU C compiler f 阅读全文
posted @ 2013-09-18 11:39 dolinux 阅读(1916) 评论(0) 推荐(0) 编辑
摘要:转自:http://blogold.chinaunix.net/u2/69404/showart_1922655.htmlARM GCC 内嵌(inline)汇编手册关于这篇文档这篇文章是本人为方便各位业界同仁而翻译,方便大家开发底层代码使用,转载请注明出处,谢谢。要是你E文功底好,本人还是建议阅读E文版的。http://www.ethernut.de/en/documents/arm-inline-asm.html对于基于ARM的RISC处理器,GNU C编译器提供了在C代码中内嵌汇编的功能。这种非常酷的特性提供了C代码没有的功能,比如手动优化软件关键部分的代码、使用相关的处理器指令。这里设 阅读全文
posted @ 2013-09-18 11:38 dolinux 阅读(916) 评论(0) 推荐(0) 编辑