linux
文章平均质量分 68
邹亚鹏
- -!!
展开
-
基于ARM9开发板的按键字符设备驱动实现
摘要:该驱动程序实现4个按键设备在Linux系统中基于QT2410E开发板的工作情况,通过该实例可以了解ARM平台Linux系统下的GPIO程序控制,以及硬件中断程序的工作机制。另外还可以熟悉Linux 2.6内核的模块加载和测试方法。1.了解硬件原理图由于该设备驱动是针对具体硬件设备的,所以一般需要了解它的硬件原理图(如图1),该模块有四个按键分别是S2,S3,S转载 2014-10-27 17:41:41 · 1996 阅读 · 0 评论 -
libcurl官方实例代码(HTTP,FTP,上传下载等等)
http://curl.haxx.se/libcurl/c/example.html复制去Google翻译翻译结果原创 2014-07-21 16:19:53 · 5216 阅读 · 0 评论 -
JFFS2文件系统制作
jffs2文件系统制作过程JFFS2 是一个开放源码的项目(www.infradead.org)。 它是在闪存上使用非常广泛的读/写文件系统,在嵌入式系统中被普遍的应用。1. 安装mkfs工具MTD主页:http://www.linux-mtd.infradead.org/archive/index.html下载MTD:ftp://ftp.uk.linux.org/pu转载 2014-06-06 17:43:33 · 1894 阅读 · 0 评论 -
U-Boot 编译(嵌入式U-BOOT,kernel编译)
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- clean原创 2014-06-06 14:06:52 · 674 阅读 · 0 评论 -
CLOSE_WAIT状态的原因与解决方法
这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移图吧。关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机转载 2014-07-16 15:56:18 · 711 阅读 · 0 评论 -
linux 下端口close_wait 过多
情景描述:系统产生大量“Too many open files” 原因分析:在服务器与客户端通信过程中,因服务器发生了socket未关导致的closed_wait发生,致使监听port打开的句柄数到了1024个,且均处于close_wait的状态,最终造成配置的port被占满出现“Too many open files”,无法再进行通信。 close_wait状态出现的原因是被动关闭方转载 2014-07-16 15:54:54 · 757 阅读 · 0 评论 -
STUN, STUNT, XSTUNT
STUN(From: http://zh.wikipedia.org/w/index.php?title=STUN&variant=zh-cn)STUN(Simple Traversal of User Datagram Protocol through Network Address Translators (NATs),NAT的UDP简单穿越)是一种网络协议,它允许位于NAT(转载 2014-05-16 17:52:17 · 890 阅读 · 0 评论 -
Linux C 编程内存泄露检测工具(二):memwatch
Memwatch简介在三种检测工具当中,设置最简单的算是memwatch,和dmalloc一样,它能检测未释放的内存、同一段内存被释放多次、位址存取错误及不当使用未分配之内存区域。请往http://www.linkdata.se/sourcecode.html下载最新版本的Memwatch。安装及使用memwatch很幸运地,memwatch根本是不需要安装的,因为它只是一组C程序代码转载 2014-05-07 14:20:38 · 9865 阅读 · 0 评论 -
Linux C 编程内存泄露检测工具(一):mtrace
前言所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括:mtracedmallocmemwatch1. mtracemtrace是三款工具之中是最简单易用的,mtrace是一个C函數,在里声明及定义,函数原型为: void转载 2014-05-07 13:56:05 · 1994 阅读 · 1 评论 -
shell算数运算
((i=$j+$k)) 等价于 i=`expr $j + $k`((i=$j-$k)) 等价于 i=`expr $j -$k`((i=$j*$k)) 等价于 i=`expr $j \*$k`((i=$j/$k)) 等价于 i=`expr $j /$k`Let expressions 执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含了空格或其他特殊字符,则必须引起转载 2014-05-06 16:33:31 · 445 阅读 · 0 评论 -
linux下获取本机公网ip
curl http://iframe.ip138.com/ic.asp原创 2014-03-17 16:51:56 · 816 阅读 · 0 评论 -
linux下内存泄露调试
http://www.s135.com/post/419/ http://blog.chinaunix.net/uid-579481-id-163614.html http://blog.chinaunix.net/uid-16135252-id-2752984.html原创 2014-03-24 09:07:52 · 750 阅读 · 0 评论 -
linux下串口通信
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。Lin原创 2014-04-15 15:23:21 · 2464 阅读 · 0 评论 -
Linux下makefile 模板
makefile在Linux下写程序,程序多了,写makefile是有必要的,为了能提高效率,写个模板以后只需要稍微改改!原创 2014-04-30 16:17:45 · 614 阅读 · 0 评论 -
交叉编译openssl
本次任务是要完成嵌入式Linux下对openssl程序的支持。 我的开发环境:ARM9开发板 和 嵌入式Linux操作系统。装有Linux系统(我的是ubuntu9.04)的PC机一台。串口和串口连接线。串口调试软件:minicom。交叉编译工具:arm-unknown-linux-gnu-gcc 下载最新版本的openssl-1.0.0: http://www.op原创 2014-03-27 14:50:12 · 19409 阅读 · 1 评论 -
makefile模板(可执行文件,动态库,静态库)
可执行文件:原创 2014-07-22 15:18:57 · 2509 阅读 · 1 评论 -
nginx中HTTP/1.1 405 Method not allowed 的解决方法
环境:nginx 1.0.10今天调试一个站点时,发现用post方式去请求一个静态页面时,返回 HTTP/1.1 405 Method not allowed 状态,无法正常显示页面。这里提供下网上的一些解决方法,供大家参考。方法一 复制代码代码如下:server{ listen 80; server_name test.bai原创 2014-07-22 17:03:52 · 25673 阅读 · 0 评论 -
strtok_r使用实例
#include#include#define INFO_MAX_SZ 255typedef struct { char level[16]; char ssid[36];}JOSEPH_WIFI_AP_MESSAGE;int main(){ JOSEPH_WIFI_AP_MESSAGE scan_ap_message[10]; char buf[INFO_MAX_SZ]原创 2014-09-09 17:38:22 · 1847 阅读 · 0 评论 -
一个Linux下C线程池的实现(转)
1.线程池基本原理 在传统服务器结构中, 常是 有一个总的 监听线程监听有没有新的用户连接服务器, 每当有一个新的 用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后, 服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。而且在大量用户的情况下, 系统为了开辟和销毁线程将浪费大量的时间和资源。线程转载 2014-09-18 10:13:08 · 898 阅读 · 0 评论 -
linux free命令详解
我的linux执行free命令显示如下: [root@Linux /tmp]# free total used free shared buffers cachedMem: 255268 238332 16936 0 85540 126384-/+ buf转载 2014-08-20 09:58:14 · 782 阅读 · 0 评论 -
linux 下内存泄露检测工具valgrind的使用
内存泄露检测,使用工具valgrind,能够检测具体哪一行代码创建的内存泄露。因该该工具只在程序结束时才统计信息,所以对于我们不退出的程序可以在运行一段时间后,直接ctrl+c停止,valgrind会统计目前的信息。使用以下选项:valgrind --leak-check=yes --trace-children=yes --show-reachable=yes --log-file=原创 2014-08-19 12:51:19 · 1125 阅读 · 0 评论 -
跟一下wpa_supplicant(3-2) connect AP
转:http://blog.chinaunix.net/uid-20514606-id-3260320.html接前面(3-1)继续: 5. 接分支4.authenticate response 来了和前面一样:wpa_driver_nl80211_event_receive到=> process_event 收到 NL80211_CMD_AUTHE转载 2014-06-20 15:12:53 · 1837 阅读 · 0 评论 -
使用libcurl进行文件上传
上篇博文讲到了如何使用multicurl来进行http并发访问,今天继续有关curl的主题,来八一八如何使用curl来上传文件,在介绍具体方法之前了解下目前http文件上传的基本实现。 rfc1867描述了如何使用http协议来上传客户端文件,目前基本上所有的浏览器和web服务器都支持http文件上传,它的使用也十分的简单,具体的来说就是在页面上创建一个form表单,表单的encty转载 2014-07-24 18:06:26 · 13056 阅读 · 0 评论 -
搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用
先下载源码:这里我下载的是1.8.2,因为这个是目前的最稳定版本,(虽然已经有1.9及2.0了)http://opensips.org/pub/opensips/1.8.2/src/opensips-1.8.2_src.tar.gz编译前需要安装如下软件:apt-get install perl libdbi-perl libdbd-mysql-perl libdb转载 2014-06-16 10:01:56 · 1468 阅读 · 0 评论 -
c里面使用libcurl库实现发送post并获取post到的内容
以下是c代码的实现:#include #include #include #include #define POSTURL "http://www.xiami.com/member/login"#define POSTFIELDS "email=myemail@163.com&password=mypassword&autologin=1&submit=登 录&转载 2014-07-25 16:35:47 · 3132 阅读 · 0 评论 -
php curl_init函数用法
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内 容,cURL 是一个功能强大的PHP库。PHP中的CURL函数库(Client URL Library Function)curl_close转载 2014-07-25 09:19:09 · 573 阅读 · 0 评论 -
inet_ntoa在32位机器上没有问题,64位机器又问题
inet_ntoa用法如下:char *inet_ntoa(struct in_addr in); 就是将struct in_addr结构转换为IP地址的形式,struct in_addr这个结构应该不陌生吧,它的定义如下:原创 2014-07-24 11:53:04 · 1114 阅读 · 0 评论 -
嵌入式 uboot、fs、kernel制作和烧录简记-hi3518c
NULL RAM :mkdir ramdisk_test 临时挂在点dd if=/dev/zero of=rootfs.ramdisk bs=1k count=10000 建立空硬盘//15000(15M)losetup /dev/loop0 rootfs.ramdisk 挂在临时硬盘mke2fs -m 0 /dev/loop0 格式化此硬盘mount –原创 2014-06-12 16:07:28 · 5182 阅读 · 1 评论 -
HTTP协议中PUT和POST使用上的区别
http://hi.baidu.com/%CE%A2%D0%A6%C0%E1%CB%AE/blog/item/84fd8e3d93944350241f14cc.html 有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资转载 2014-07-23 11:27:37 · 730 阅读 · 0 评论 -
嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结
1、在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以2、记住在使用printf进行调试的时候,在遇到指针或者字符串的时候最好使用“%x”,以为我不知道指针或者字符串中是否包含不可见字符,如果有不可见字符会导致错误,而且错误不好查找3、对于uboot中的环境变量,其实是放在uboot里面的,也就是环境变量占原创 2014-06-12 16:06:25 · 1962 阅读 · 0 评论 -
Ubuntu 上安装及配置 Cherokee Web 服务器
Cherokee 号称是目前最快的 Web 服务器软件,据说在性能上甚至比 Nginx 还略胜一筹。Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。Cherokee 最具特色的地方在于内置了一个名为 cherokee-admin 的工具,执行转载 2014-07-23 11:08:30 · 841 阅读 · 0 评论 -
Objective-C中的占位符,打印BOOL类型数据
常用的一些占位符:%@:字符串占位符%d:整型%ld:长整型%f:浮点型%c:char类型%%:%的占位符 尽管有那么多的占位符,但是好像没有发现BOOL型的数据的占位符,这也是比较纠结的地方,看了一下别人是怎么解决这个问题的 BOOL studyBool = YES; NSLog(@"打印BOOL型数据%@",studyBool?@"Y原创 2014-03-14 09:20:06 · 9797 阅读 · 0 评论 -
进度条
#include#include #include int main(){ #if 0 int bootdelay = 10; printf("Hit any key to stop autoboot: %2d ", bootdelay); while(1) { printf("\b\b\b%2d ", bootdelay); sleep(1); } return原创 2014-02-26 10:52:23 · 617 阅读 · 0 评论 -
vim 去掉^M
有两种情况,会出现打开的文件都显示^M符号:1. vim被配置为fileformat=unix,而你打开的文件都是dos格式的。unix格式的换行符为0A(ascii码)也就是,dos格式的换行符为 0D 0A(也就是),其实就显示为^M。下面是详细讲解:DOS, Mac 和Unix格式的文件回想计算机的史前史,那时的打字机使用两个字符来开始一个新行。首先是一个字符命令使打印头原创 2014-02-24 13:23:00 · 671 阅读 · 0 评论 -
select用于实现I/O多路复用
阻塞和非阻塞 阻塞函数在完成其指定的任务以前不允许程序调用另一个函数。例如,程序执行一个读数据的函数调用时,在此函数完成读 操作以前将不会执行下一程序语句。当服务器运行到accept语句时,而没有客户连接服务请求到来,服务器就会停止在accept语句上等待连接服务请求 的到来。这种情况称为阻塞(blocking)。而非阻塞操作则可以立即完成。比如,如果你希望服务器仅仅注意检查是否有客户在等转载 2012-07-24 19:03:22 · 1238 阅读 · 0 评论 -
linux 下mysql相关
1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安装路径)2.linux下重启mysql的命令:mysqladmin restart/ect/init.d/mysql restart (前面为mysql的安装路径)3.linux下关闭mysql的命令:mysqladmin shut原创 2013-11-28 16:03:41 · 552 阅读 · 0 评论 -
unbutu安装mysql
sudo apt-get install mysql-server mysql-clientsudo apt-get install libmysqld-devmysql的root密码最好设置以方便以后程序编写。原创 2013-11-26 15:42:43 · 860 阅读 · 0 评论 -
多线程--条件变量
条件变量函数操作相关函数说明初始化条件变量pthread_cond_init 语法基于条件变量阻塞pthread_cond_wait 语法解除阻塞特定线程pthread_cond_signal 语法在指定的时间之前阻塞pthre转载 2013-11-22 15:18:55 · 746 阅读 · 0 评论 -
【转】ioctl 变成了 unlocked_ioctl
kernel 2.6.35 及之前的版本中struct file_operations 一共有3个ioctl :ioctl,unlocked_ioctl和compat_ioctl现在只有unlocked_ioctl和compat_ioctl 了在kernel 2.6.36 中已经完全删除了struct file_operations 中的ioctl 函数指针,取而代之的是u转载 2012-08-09 11:07:27 · 874 阅读 · 0 评论 -
platform设备驱动全透析
http://blog.donews.com/21cnbao/archive/2010/07/14/1581997.aspx1.1 platform总线、设备与驱动在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每 注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总转载 2012-08-23 00:02:32 · 583 阅读 · 0 评论