自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逐波与逆流

共享知识,共同进步。

  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

原创 BUSYBOX下的TFTP介绍

Busybox下的tftp命令可以用来进行单文件传输。使用的时候,是把电脑作为服务器Server,Busybox作为客户端Client,使用tftp命令可以实现从Server下载单个文件到Client,或者从Client上***个文件到Server。    首先来了解一下tftp命令参数,在Busybox下输入tftp –help,得到tftp使用的详细参数,如下图        

2014-04-30 18:14:05 1030

原创 Nand Flash介绍和Nand Flash控制器使用

一、Flash介绍    常用的flash类型有NOR Flash 和Nand Flash 两种;    (1)Nor Flash    1、Nor Flash的接口和RAM完全相同,可以随机访问任意地址的数据,在其上进行读操作的效率非常高,但是擦除和写操作的效率很低,另外,Nor Flash的容量一般比较小,通常,Nor Flash用于存储程序;    2、Nor Flash的块

2014-04-28 23:49:55 6325

原创 TCP打洞与UDP打洞的区别

为什么网上讲到的P2P打洞基本上都是基于UDP协议的打洞?难道TCP不可能打洞?还是TCP打洞难于实现?    假设现在有内网客户端A和内网客户端B,有公网服务端S。    如果A和B想要进行UDP通信,则必须穿透双方的NAT路由。假设为NAT-A和NAT-B。        A发送数据包到公网S,B发送数据包到公网S,则S分别得到了A和B的公网IP,S也和A B 分别建立了会

2014-04-27 00:07:37 2120

原创 TCP打洞技术

//转http://iamgyg.blog.163.com/blog/static/3822325720118202419740/建立穿越NAT设备的p2p的TCP连接只比UDP复杂一点点,TCP协议的“打洞”从协议层来看是与UDP的“打洞”过程非常相似的。尽管如此,基于TCP协议的打洞至今为止还没有被很好的理解,这也造成了对其提供支持的NAT设备不是很多。在NAT设备支持的前提下,基

2014-04-27 00:05:45 1521

原创 UDP打洞原理

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.许多P2P软件比如SKYPE,QQ,电驴之类需要不同内网的两台机子进行通信,而路由器的NAT机制决定了内网访问外网容易,而外网访问内网困难,那如何才能做到这一点呢?有办法------打洞!具体实现方法需要一台服务器,现在假设两台内网PC,A和B想用端口40000通信,网关分别为NATA

2014-04-27 00:01:26 614

原创 解决办法:warning: Clock skew detected. Your build may be incomplete.

由于时钟同步问题,出现 warning:  Clock skew detected.  Your build may be incomplete.这样的警告,解决办法:find . -type f | xargs -n 5 touch

2014-04-18 00:21:26 7187

转载 C++编译器与链接器工作原理

要明白的几个概念:    1、编译:编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。    2、编译单元:根据C++标准,每一个CPP文件就是一个编译单元。每个编译单元之间是相互独立并且互相不可知。    3、目标文件:由编译所生成的

2014-04-17 11:41:59 750

原创 ARM9寄存器~~ARM-thumb 过程调用标准

根据“ARM-thumb 过程调用标准”:1,  r0-r3 用作传入函数参数,传出函数返回值。在子程序调用之间,可以将 r0-r3 用于任何用途。被调用函数在返回之前不必恢复 r0-r3。---如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。2, r4-r11 被用来存放函数的局部变量。如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。3, r1

2014-04-16 23:46:35 1170

转载 Makefile实例

-D:条件选择编译-I :头文件搜索路径-l:连接静态库 AR静态库打包命令的名字,缺省值是ar。ARFLAGS静态库打包命令的选项,缺省值是rv。AS汇编器的名字,缺省值是as。ASFLAGS汇编器的选项,没有定义。CCC编译器的名字,缺省值是cc。CFLAGSC编译器的选项,没有定义。

2014-04-16 10:40:37 684

转载 uboot移植之Makefile分析

转载:u-boot源码结构解压就可以得到全部u-boot源程序。 在顶层目录下有18个子目录, 分别存放和管理不同的源程序。这些目录中所要存放的文件有其规则,可以分为3类。第1类目录与处理器体系结构或者开发板硬件直接相关;第2类目录是一些通用的函数或者驱动程序;第3类目录是u-boot的应用程序、工具或者文档。u-boot的源码顶层目录说明目 录 特 性 解 释 说

2014-04-16 10:16:49 672

原创 uboot中用到的linux命令

uname是什么意思?$man uname$man unameUNAME(1) User Commands UNAME(1) NAME uname - print system information SYNOPSIS uname [OPTION]...

2014-04-16 09:29:24 1010

转载 config.mk 文件详细分析

网友有这么一种说法“u-boot根目录下自带一个config.mk文件,应 该说这才是真正的Makefile,以上介绍的两个脚本Makefile和mkconfig完成了环境配置之后,在该文件中才定义具体的编译规则,所以你会发现在各个子模块(board、 cpu、lib_xxx、net、disk...)目录中的Makefile第一句就是:include $(TOPDIR)/config.mk

2014-04-15 23:49:00 10179

转载 Makefile中指示符“include”、“-include”和“sinclude”的区别

指示符“include”、“-include”和“sinclude” 如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜

2014-04-15 23:41:00 718

转载 makefile的选项LDFLAGS和LIBS的区别

LDFLAGS是选项,LIBS是要链接的库。都是喂给ld的,只不过一个是告诉ld怎么吃,一个是告诉ld要吃什么。网上不难搜索到上面这段话。不过“告诉ld怎么吃”是什么意思呢?看看如下选项:LDFLAGS = -L/var/xxx/lib -L/opt/mysql/libLIBS = -lmysqlclient -liconv这就明白了。LDFLAGS告诉链接

2014-04-15 23:37:45 1379

转载 UBOOT版本

u-boot版本情况网站:http://ftp.denx.de/pub/u-boot/1、版本号变化:2008年8月及以前按版本号命名:u-boot-1.3.4.tar.bz2(2008年8月更新)2008年8月以后均按日期命名。目前最新版本:u-boot-2011.06.tar.bz2(2011年6月更新)2、目录结构变化:u-bo

2014-04-15 14:11:37 1298

转载 u-boot中.lds链接脚本文件的分析

作者:冯老师,华清远见嵌入式学院讲师。对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。SECTIONS {        ...        secname start BLOCK(align) (NOLOAD) : AT ( ldadr )        { contents } >region :phdr =fill

2014-04-15 10:44:01 732

转载 uboot第一阶段详细分析

作者:程老师,华清远见嵌入式学院讲师。uboot的第一阶段设计的非常巧妙,几乎都是用汇编语言实现的,下面我们一起来看看它的精妙之处吧!首先我们来看一下它的链接脚本,通过它我们可以知道它整个程序的各个段是怎么存放的。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")        O

2014-04-15 10:41:36 788

转载 位置无关代码(PIC)的思考

应用程序必须经过编译、汇编和链接后才变成可执行文件,在链接时,要对所有目标文件进行重定位(relocation),建立符号引用规则,同时为变量、函数等分配运行地址。当程序执行时,系统必须把代码加载到链接时所指定的地址空间,以保证程序在执行过程中对变量、函数等符号的正确引用,使程序正常运行。在具有操作系统的系统中,重定位过程由操作系统自动完成。  在设计Bootloader程序时,必须在裸机环境中进

2014-04-15 10:07:18 711

转载 lowlevel_init.S 分析

在我迷迷糊学看了lowlevel_init.S中的代码之后,有一个感觉就是,要想读懂其中的代码首先得看一下你所用的芯片手册,因为里面有比较详细的存储器控制(MemoryController)描述。我用的是s3c2440手册里写得十分清楚,总共有8个块(Banks)(Bank0~Bank7),每个块对应着不同的控制与地址线,其实这些Bank很大一部分是对应着的控制寄存器的地址,这个要看实际的芯片与板

2014-04-14 20:01:42 795

转载 利用jlink command 烧写uboot到mini2440 nand flash方法

//说明:我的板子是mini2440 有2M的s29al016j nor flash 和一块 256M的 k9f2608u0b nand flash。//这篇文章并非全部原创,只是把网友“sblpp”在http://bbs.eeworld.com.cn/thread-144846-1-1.html 的帖子修改了并附图。需要说明的是uboot.bin这个文件必须支持nand flash

2014-04-14 16:18:48 2171

转载 mini2440 uboot-2011.12 学习笔记 之01 采用JLink+ADS1.2调试uboot的方法

本文转载自:刚开始想通过Nor Flash中的supervivi+DNW的“Download & Run 功能”将uboot.bin下到SDRAM进行调试,但是由于笔记本已经被装成ubuntu + Virtualbox(Windows XP),将supervivi阶段的USB下载设备分配进Virtualbox(Windows XP)后提示“不能分配 USB设备 System MCU SEC

2014-04-14 16:17:13 1016

转载 relocate

BOOT的核心就是relocate,目前见到的典型嵌入式系统,除了处理器,至少都有ROM(norflash,nandflash)RAM(SDRAM),一般把Bootloader代码放在norflash里面,而nandflash因为本身硬件原因不能随机访问,一般只是用来放应用程序.在系统加电或复位后,CPU通常由CPU制造商预先安排上地址取指令,arm体系下一般都是0x0地址取它的第一条指令,即PC

2014-04-14 10:12:59 1188

转载 ARM remap与重定位摘抄

本文引自:http://blog.csdn.net/dog0138/archive/2007/05/10/1603794.aspx(一)关于ARM处理器Remap的理解0.什么是Remap    我的理解是:在ROM从0x0用几句指令引导系统之后,把RAM映射到0x0就是Remap。1.Remap的作用    当ARM处理器上电或者Reset之后,处理器从0x0取指。因此,

2014-04-14 10:04:21 1143

原创 PIC----代码无关设计

编译器在编译一段程序时,要经过三个步骤:编译,链接和加载。在链接时,要对所有目标文件进行重定位,建立符号引用规则,同时为变量,函数等分配地址。程序执行时,把代码加载到链接时指定的地址空间,以保证程序在执行过程中对变量,函数等符号的正确引用,是程序正常运行。但是,在操作系统中,一个进程通常从硬盘等二级存储设备拷贝到内存中去执行,这两者的地址是不同的,因此操作系统要对这个进程进行重定位,才能正确运

2014-04-13 21:38:17 875

转载 uboot移植过程中的运行地址和装载地址的区别

uboot移植涉及到底层硬件的设置,因此需要掌握UART、系统时钟频率、NOR FLASH、NAND FLASH、SDRAM、网卡、存储控制器等硬件的功能及配置,这些都可以参照相应开发板的芯片手册来完成,没有什么大的问题。在移植过程中,一直困扰我的是PIC(代码无关性)问题,即运行地址和加载地址的区别,看过网上很多关于这两者的介绍,感觉懂一点,却一直不知所然。在参考大量的文献下,算是得了一点心得。

2014-04-13 19:42:09 671

原创 s3c2440存储控制

NandFlash和NorFlash都是Flash的一种,都是散存,都是磁盘存储介子,但是NandFlash一般比较大,而NorFlash都比较小,并且NorFlash比较贵,并且NorFlash写的速度比较慢,但读的速度比较快 ,而NandFlash读的速度比较慢,写的速度比较快。NOR Flash是总线型设备,可在芯片内执行(XIP,eXecute In Place),应用程序可以直接

2014-04-13 17:12:39 902

转载 Linux内核驱动在Tx2440上的移植详解(七、LCD背光驱动移植)

2010-08-10 17:38:20|  分类: 默认分类|举报|字号 订阅  开发板中,LCD背光是通过 CPU的 LCD_PWR引脚来控制的,当 LCD_PWR  输出为高电平“1”时,将打开背光;当输出为低电平“0”时,将关闭背光(注意:这里只是打开和关闭背光,而并没有背光亮度的调节作用)。我们需要增加一个简单的背光驱动,以便能够通过软件便可简单的控

2014-04-09 10:09:52 1024

转载 TX2440 ARM开发板Uboot移植 (六、实现启动快捷菜单)

1、在common目录下新增cmd_menu.c文件,内容为:#include #include static char awaitkey(unsigned long delay, int* error_p){    int i;    char c;    if (delay == -1) {        while (1) {

2014-04-09 10:08:47 686

转载 TX2440 ARM开发板Uboot移植(五、yaffs2文件系统的支持)

Yaffs/yaffs2文件系统的设计充分考虑到Nand Flash以页为存取单位等的特点,将文件组织成固定大小的段(Chunk)。以528B的页为例,Yaffs/yaffs2文件系统使用前512B存储数据和16B的额外空间存放数据的ECC和文件系统的组织信息等(称为OOB数据)。通过OOB数据,不但能实现错误检测和坏块处理,同时还可以避免加载时对整个存储介质的扫描,加快了文件系统的加载速度。

2014-04-09 10:07:54 832

转载 TX2440 ARM开发板Uboot移植(四、对DM9000网卡的支持)

1、在drivers/net/ 目录下有DM9000的驱动代码,在dm9000x.h中对CONFIG_DRIVER_DM9000宏的依赖,dm9000x.c中对CONFIG_DM9000_BASE宏、DM9000_IO宏、DM9000_DATA等宏的依赖,所以首先修改 include/configs/smdk2440.h ,在文件中加入这些宏的定义:/* * Hardwar

2014-04-09 10:06:49 1014

转载 TX2440 ARM开发板Uboot移植(三、添加Nand Flash的有关操作支持)

在上一节中我们说过,通常在嵌入式bootloader中,有两种方式来引导启动内核:从Nor Flash启动和从Nand Flash启动,但不管是从Nor启动或者从Nand启动,进入第二阶段以后,两者的执行流程是相同的。当u-boot的start.S运行到“_start_armboot: .word start_armboot”时,就会调用lib_arm/board.c中的start_armboot

2014-04-09 10:06:03 1035

转载 TX2440 ARM开发板Uboot移植(二、让u-boot从nandFlash动起来)

接上:让u-boot从norFlash动起来完成上面工作后,u-boot中还没有对2440上Nand Flash的支持,以及u-boot从Nand Flash上启动,这些得我们一步步去实现了。1、修改配置文件 include/configs/smdk2440.h :1.1、新增宏 CONFIG_CMD_NAND (大概在95行)#define

2014-04-09 10:04:44 1497

转载 TX2440 ARM开发板Uboot移植(-、让u-boot从norFlash动起来)

移植环境主    机:VMWare--Ubunt 10.04 Kernel:2.6.34 开发板:Tx2440--256MB Nand编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-1.3.4移植步骤本次移植的功能特点包括:Nand Flash读写Nor/Nand 自动选择启动DM9000网卡支持

2014-04-09 10:03:20 1413

原创 汇编语言和C语言的混合使用

汇编语言和C语言的混合使用 在C语言中怎样使用汇编语言呢?这个问题在不同的编译器中,具体实现方法是不同的。但是在实现大方上也但是就是有两种,而且各种编译器的实现方法也是大同小异。一种是在C语言中嵌入汇编语言代码,另一种是让C语言从外部调用汇编。下面我们就以Borland格式为例来说一说具体用法。但是,GCC和Microsoft的实现方法的和Borland只在格式上有点区分。当然,GCC的嵌入汇

2014-04-08 22:18:45 4399

原创 linux堆栈汇编

为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈http://www.cnblogs.com/myblesh/archive/2012/04/07/2435737.html之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。    而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有堆栈指针初始化这个动作。但是,从来只

2014-04-08 22:14:57 1352

转载 uboot代码解析

目录[+] 1.1       U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:       (1)第一阶段的功能Ø  硬件设备初始化Ø  加载U-Boot第二阶段代码到RAM空间Ø  设置好栈Ø  跳转到第二阶段代码入口       (2)第二阶段的功能Ø  初始化本阶段使用的硬件设备Ø  检测系统

2014-04-08 18:49:16 1691

原创 U-boot移植出现的错误

鄙人,话了三天用来移植uboot到FL2440更换过各种版本的uboot和交叉编译器最终在arm-linux-gcc 4.4.3版本和uboot-1.3.4版本的情况先移植成功。先面介绍一下我遇到的各种错误及解决方案:错误一:main.c:51:error:inline function 'show_boot_progress' cannot bedecleared weak

2014-04-01 10:59:58 2307

max7665的stm32程序

经验证可用的MAX7665 的STM32程序

2014-12-12

捷联惯导系统初始对准中Kalman参数优化方法

捷联惯导系统初始对准中Kalman参数优化方法

2014-03-24

C++实现多项式求和

基本操作包括多项式的创建,多项式的显示和多项式的加减乘等运算。多项式的创建是由一个结点数组组成多项式链表。

2013-11-22

ADS使用方法

这是一个很基础的教程教你如何用ADS下载程序到开发板。

2013-10-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除