- 博客(26)
- 资源 (12)
- 收藏
- 关注
原创 tcpdump使用说明
tcpdump -t -e -i eth0 -a 将网络地址和广播地址转变成名字; -d 将匹配信息包的代码以人们能够理解的汇编格式给出; -dd 将匹配信息包的代码以c语言程序段的格式给出; -ddd 将匹配信息包的代码以十进制的形式给出; -e 在输出行打印出数据链路层的头部信息; -f
2011-12-27 09:32:05 539
原创 linux系统读写u-boot环境变量
u-boot将环境变量保存到flash分区中,linux也可以读取设置该flash中的环境变量,可以使用u-boot源码目录下的tool/env中的fw_printenv 、fw_setenv及fw_env.config。此做法要考虑安全性。(考虑env分区是否显示可以被其他命令调用) 部分环境变量被限制修改,可通过更改fw_printenv 的实现代码即可。
2011-12-27 09:11:27 1514
转载 linux内核pktgen用法
pktgen是内核的一个模块,用来发送大量的报文,由于pktgen工作在内核状态下,因此,pktgen可以具有很高的发报效率。在开发测试底层网卡性能时,通常需要使用smartbits等专业测试工具来测试,但smartbits通常都非常昂贵,不是一般小公司或个人可以负担,这时,你可以使用pktgen来做近似的测试。 使用pktgen,首先需要加载pktgen模块,如果你的内核没有把pkt
2011-12-26 14:11:59 8826
原创 u-boot增加对jffs2分区的识别与加载
lyq 2011-10-16记录 mail: lianyq1986@163.com u-boot源码中的相应开发板配置头文件中增加以下内容 //jffs2 partitions support#define CONFIG_CMD_JFFS2 //增加JFF
2011-10-16 16:58:17 4693
原创 SMP系统linux下的进程绑定指定cpu
小注:SMP系统linux下的进程绑定指定cpu #include#include#include#include#include#define __USE_GNU#include#include#includeint main(int a
2011-09-27 19:43:01 922
转载 文摘
摘自某个论坛,具体的忘记了(以后再补上吧) 到了今天这个环境下,其实无论使用什么样的芯片都可以达到目的。但是为什么至今没有出现所谓的集大成的片子来供所有人使用呢。我想,至少有这样几个原因:一个是需求的多样性;一个是性价比;甚至还应该有技术上的原因。譬如说功耗,
2011-08-08 09:40:43 449
转载 C语言里面的内联函数(inline)与宏定义(#define)探讨
C语言里面的内联函数(inline)与宏定义(#define)探讨 先简明扼要,说下关键:1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快。2、内联函数可以调试,而宏定义是不可以调试的。
2011-08-08 08:55:23 881
原创 u-boot编译方法
u-boot默认的编译方式将编译过程中产生的文件与源码混合存放,这样看起来比较混乱。可以通过以下两种方式来编译以解决这个问题。 By default the build is performed locally and the objects are savedi
2011-08-06 11:42:15 483
转载 嵌入式Linux下常用的交叉编译方法
嵌入式Linux下常用的交叉编译方法关键字: embedded linux 要在嵌入式Linux下使用动态语言,首先要解决的是语言解释器或执行引擎的交叉编译问题。 交叉编译通常有以下几种途径: 1. 直接通过交叉编译工具,手工配置交叉编译。交叉编译工具可以
2011-08-05 11:02:47 621
原创 diff与patch使用
diff命令常用来比较文件,目录,也可以用来制作补丁文件。所谓“补丁文件”就是“修改后的文件”与“原始文件”的差别。 常用的选项如下:1 “-u” 表示在比较结果中输出上下文中一些相同的行,这有利于人工定位。2 “-r” 表示递归比较各个子目录下的文件。3
2011-08-05 10:59:18 560
原创 buildroot制作交叉编译工具链
buildroot制作powerpc交叉编译工具链 buildroot主页http://buildroot.uclibc.org/链接http://buildroot.uclibc.org/downloads/buildroot-2011.05.tar.gz
2011-08-05 10:54:55 1373
原创 linux的I2C驱动架构分析记录
Lianyiquan2011-7-25I2C驱动框架:总线驱动和设备驱动总线驱动的两个数据结构:i2c_adapter、i2c_algorithm设备驱动的两个数据结构:i2c_driver、i2c_client以上四个数据结构的定义在linux内核根目录下i
2011-08-05 10:42:26 753
原创 linux系统free命令
free是显示的当前内存的使用,-m的意思是M字节来显示内容.[root@localhost ~]# free -hfree: invalid option -- husage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay]
2011-08-05 09:59:40 641
原创 crosstool-ng制作交叉编译工具链(powerpc-linux)
2011-08-01lianyiquancrosstool-ng主页http://crosstool-ng.org/crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者。使用crosstool最多只能编译gcc 4.1.1 g
2011-08-01 17:15:01 7068
原创 shell命令笔记
shell 编程之2>&1作者:NinGoo http://www.ningoo.net/html/2007/shell_scripts_stderr_stdout.html1. 标准输入的控制语法:命令 说明:将文件做为命令的输入。例如:mail -s “mail test” test@163.com 2. 标准输出的控制语法:命令 > 文件说明:将命令的执行结果送至指定的文件中。例如:ls -l > list 将执行“ls -l” 命令的结果写入文件list 中。语法:命令 >! 文件说明:将命令的执行
2011-05-20 16:46:00 593
原创 volatile的作用
<br />例:<br />#define A (* (volatile unsigned long *) 0x48000000 )<br /><br /> 对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存映射,那就方便的多了。<br /> 举个例子,比如像寄存器A(地址假定为0x48000000)写入数据0x01,那么就可以
2011-04-26 14:25:00 614 1
原创 串口设备驱动层次结构
<br />串口设备驱动层次结构<br /> <br />终端设备层:向上提供统一的接口,使用户不必关心具体的终端类型。<br />行规程 :指数据交换的“规矩”,比如流量控制,对输入的数据进行变换处理等。<br />串口抽象层:将各个串口的共性概括出来,是低层串口驱动的核心部分,比如设置串口类型,串口波特率等。<br />串口芯片层:向串口抽象层提供串口芯片所用的资源,比如访问地址,串口中断号等。对于标准串口,主要移植内容在芯片层。
2011-04-21 11:55:00 730
原创 字符设备驱动程序
<br />字符设备驱动程序<br />1.linux操作系统将所要的设备都看成文件,以操作文件的方式访问设备。应用程序只能通过系统调用函数来调用硬件驱动程序,而不能直接操作硬件。<br />2.系统调用函数在glibc库函数中定义。对于字符设备驱动程序,与系统调用函数对应的函数集合定义在file_operations类型的数据结构中。该结构在linux内核的inlclude/linux/fs.h中定义。<br />3.从某个角度说,编写字符设备驱动程序,就是为具体硬件的file_operations结构编
2011-04-21 10:27:00 445
原创 linux设备驱动的大致流程
linux设备驱动的大致流程:1.查看原理图,数据手册,了解设备的操作方法2.在内核中找到相近的驱动程序,以他为模板进行开发,有时需从零开始3.实现驱动程序的初始化及退出,如向内核注册和注销这个这个驱动程序(module_init(),module_exit())4.设计所要实现的操作,如open,close,read,write等函数5.实现中断服务,并不是每个驱动程序所必须的6.编译该驱动程序到内核,或动态加载到内核(如insmod,modprobe)7.编写代码测试驱动程序
2011-04-21 10:26:00 698
原创 linux进程间通信方式
<br />linux进程间通信方式<br />一、管道<br />无名管道:只能建立具有亲缘关系的进程之间<br />1.用pipe创建的管道两端处于一个进程中,由于管道主要应用于不同进程间通信的,因此在实际应用中没有多大意义。实际上,通常先创建一个管道,然后通过fork函数创建一个子进程,该子进程继承父进程所创建的管道,这样才能通过pipe管道进行通信。<br /> <br />2.用popen建立基于文件流的管道。<br /><br />有名管道:突破亲缘关系进程,可以使两个不相关的进程实现彼此通信。
2011-04-13 11:43:00 1890 1
原创 JFFS
JFFS Journalling Flash File System(闪存设备日志型文件系统,JFFS)最初是由瑞典的 Axis Communication AB 开发,其目的是作为嵌入式系统免受宕(dang)机和断电危害的文件系统。然而用于NAND设备上JFFS已被JFFS2大量取代。jffs2 JFFS2是JFFS的后继者,由Red Hat重新改写而成。JFFS2的全名为Journalling Flash File System Version 2(闪存日志型文件系统第2版),其功能
2011-04-12 14:18:00 790
原创 YAFFS文件系统简介
YAFFS文件系统简介YAFFS(Yet Another Flash Filing System)是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备;并且是在GPL(General Public License)协议下发布的,可在其网站免费获得源代码。 YAFFS 是基于日志的文件系统,提供磨损平衡和掉电恢复的健壮性。它还为大容量的Flash 芯片做了很好的调整,针对启动时间和RAM 的使用做了优化。它适用于大容量的存储设备,已经在Linux 和WinCE 商业产品中使用。
2011-04-12 14:13:00 532
原创 cramfs文件系统的特性
cramfs文件系统的特性1 .cramfs的特点CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3.在嵌入式的环境之下,内存和外存资源都需要节约使用。如果使用RAMDISK方式来使用文件系统,那么在系统运行之后,首先要把外存(Flash)上的映像文件解压缩到内存中,构造起RAMDISK环境,才可以开始运行程序。但是它也有很致命的弱点。在正常情况下,同样的代码不仅在外存中占据了空间(以压缩后的形式存在),而且还在内存中占用
2011-04-12 13:44:00 726
原创 ubuntu环境下基本开发工具
apt-get install tftp xinetd vsftpd vim /etc/vsftpd.conf #write_enable --> write_enableapt-get install sambaapt-get install openssh-serverapt-get install nfs-kernel-server portmap
2011-04-12 13:09:00 627
原创 samba服务配置
ubuntu10.04环境下的samba配置:1.apt-get install samba 为系统安装samba2.cp /etc/samba/smb.conf /etc/samba/smb.conf_bak 备份配置文件3.vim /etc/samba/smb.conf 修改配置文件 102 security = user 用户访问 267
2011-03-16 17:49:00 413
转载 堆、栈和静态区
<br />堆(heap):由malloc系列函数分配的内存,其生命周期由free决定。在没有释放之前一直存在,直到程序结束。其特点是使用灵活,空间比较大,但容易出错。<br /> <br />栈(stack):保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。<br /> <br />静态区:保存自动全局变量和static变量(包括static全局和局部变量)。静态区的内容在整个程序的生命周期内都存在,由编译器在编译的时候分配。
2011-03-07 14:52:00 684 2
嵌入式Linux应用程序开发详解.rar
2011-03-09
UNIX环境高级编程
2011-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人