嵌入式linux
文章平均质量分 58
David_xtd
这个作者很懒,什么都没留下…
展开
-
在busybox的sh中循环计数
问题:目标板使用rt5350芯片,在目标板的shell脚本中要实现计数功能,但是不能使用declare -i idx和let语句。解决办法:1. 考虑使用expr运算符来计算。#!/bin/shidx=0List="1 2 3"### while [ $idx -lt 5 ]for j in $Listdo #here do something if原创 2013-11-15 18:24:27 · 6698 阅读 · 0 评论 -
linux中shell变量$#,$@,$0,$1,$2的含义解释
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出转载 2013-11-27 15:34:17 · 1190 阅读 · 0 评论 -
浅析 Linux 中的时间编程和实现原理
引子我们都生活在时间中,但却无法去思考它。什么是时间呢?似乎这是一个永远也不能被回答的问题。然而作为一个程序员,在工作中,总有那么几次我必须思考什么是时间。比如,需要知道一段代码运行了多久;要在 log 文件中记录事件发生时的时间戳;再比如需要一个定时器以便能够定期做某些计算机操作。我发现,在计算机世界中,时间在不同场合也往往有不同的含义,让试图思考它的人感到迷茫。但值得庆幸的是,Linu转载 2014-01-14 08:34:04 · 4385 阅读 · 0 评论 -
写给Web开发人员看的Nginx介绍
译者注:不知道其他开发者是否和我一样,参与或者写了很多Web项目,但是却没有真正的去完整的部署应用,很多时候都是交给ops即运维的同学帮忙来做。而作为一个有节操的开发者,我认为了解一些服务器方面的知识是很有必要的,读了这篇文章之后,自己对nginx也有了一个初步的认识,对自己很有帮助,不敢独享,遂译之。如果你是一名Web开发人员,那么你很有可能听过nginx(读音听起来像engine-x)转载 2013-11-26 17:16:04 · 16974 阅读 · 0 评论 -
thttpd安装与调试
http://www.acme.com/software/thttpd/thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,在其官方网站上有一个与其他web server(如Apache, Zeus等)的对比图+Benchmark,可以参考参考。此外,thttpd 也类似于lighttpd,对于并发请求不使用fork()来派转载 2014-02-04 22:01:44 · 2122 阅读 · 0 评论 -
三个轻量级WebServer--lighttpd,thttpd,shttpd介绍
国内绝大部分的web server不是IIS就是Apache,而论市场占有率,我认为Apache是大赢家了,至少是占据了半壁江山。但除了IIS/Apache外,其实我们有很多选择,对于高负载/大并发的网站而言,高性能、轻量级的web server是一剂良药。最近手头一台Server 的负载太高,居然将swap吃光导致机器非常缓慢,后来一查,原来是Apache耗掉了几乎所有资源,当时apac转载 2014-02-05 17:15:46 · 2107 阅读 · 0 评论 -
关于pthread_mutex_t的初始化
class MyLock{private: pthread_mutex_t m_lock;public: MyLock() {// m_lock = PTHREAD_MUTEX_INITIALIZER; //使用这种方法初始化时GCC编译无法通过 pthread_mutex_init(&m_lock,NULL);转载 2014-02-07 09:29:43 · 14491 阅读 · 0 评论 -
嵌入式linux下usb驱动开发方法--看完少走弯路
嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至少需要个把月的时间,不信?那是你没做过。本人做过2年的嵌入式驱动开发,usb占了一大半的时间。期间走了不少弯路,下面将我的血的经验教训总结下,为要从事和正在从事的战友们做一点点贡献吧:)首先,扫盲;要做的是阅读usb Spec(英文的哦,其实很多文章、书籍和资料真有水平的还是原创的好,就像食品转载 2014-04-29 15:51:46 · 10385 阅读 · 0 评论 -
wpa_supplicant介绍与使用
1.什么是wpa_spplicantwpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命转载 2013-11-13 16:12:09 · 1422 阅读 · 0 评论 -
Sed学习笔记
Sed学习笔记作者:Jims of 肥肥世家jims.yang@gmail.com>Copyright © 2004,2005, 本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。发布时间:2004年09月20日最近更新:2005年12月22日,增加小技巧章节。转载 2013-11-27 15:24:33 · 852 阅读 · 0 评论 -
SHELL脚本编程的常识
SHELL脚本编程的常识七种文件类型正则表达式字符类描述shell的引号类型变量设置时的不同模式:条件测试命令执行顺序脚本调试一些常用的小TRICK打印一些头信息创建一个长度为0的空文件一些常用的shell变量$0的使用Shift的运用用head或tail指令指定查阅的行数AWK使用规则第一个 awk多个字段外部脚本B转载 2013-11-27 15:40:47 · 1600 阅读 · 0 评论 -
linux expr命令参数及用法详解---linux手工命令行计数器
名称:expr ### 字串长度 shell>> expr length "this is a test" 14 ### 数字商数 shell>> expr 14 % 9 5 ### 从位置处抓取字串 shell>> expr substr "this is a test" 3 5转载 2013-11-15 18:26:15 · 2346 阅读 · 0 评论 -
C文件操作函数
一、标准文件的读写 1.文件的打开fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了。当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开转载 2013-11-16 13:20:16 · 1191 阅读 · 0 评论 -
使用c99编译出warning: implicit declaration of function ‘popen’
问题:ubuntu中使用gcc 4.6.3编译代码。源代码中使用了popen()和pclose()函数,当源代码没使能c99选项前,编译结果不报warnings;使能c99选项后(gcc -std=c99),编译时出现warnings:controller.c:482:5: warning: implicit declaration of function ‘popen’ [-Wi原创 2013-11-03 13:23:05 · 14882 阅读 · 0 评论 -
正确使用pthread_create,防止内存泄漏
近日,听说pthread_create会造成内存泄漏,觉得不可思议,因此对posix(nptl)的线程创建和销毁进行了分析。分析结果:如果使用不当,确实会造成内存泄漏。产生根源:pthread_create默认创建的线程是非detached的。预防方式:要么创建detached的线程,要么线程线程的start_routine结束之前detached,要么join转载 2013-11-20 10:32:06 · 11460 阅读 · 0 评论 -
程序报错误Illegal instruction的解决办法
问题:目标板是rt5350,使用mipsel-linux-gcc 3.4.2编译器,源程序由C++转换到C语言。程序中有3个线程:主线程、接受消息队列的线程和上传采集数据的线程;当把上传采集数据的线程启动时,程序运行给出Illegal instruction的错误提示并退出;而屏蔽掉启动上传采集数据线程后,程序能正常运行,所有与上传采集数据无关的功能都是正常的;解决办法:1原创 2013-11-07 09:53:06 · 8552 阅读 · 0 评论 -
c语言中字符串比较易错的地方
问题:源代码由C++代码转化而来,所以对于C风格字符串的比较,仍然使用C++中比较C风格字符串的方式char* pstr = "enable";if (pstr == "enable") { PerformTask();}但在程序运行的时候,发现PerformTask()始终没有被调用到。解决办法:1. 在C++中,问题中所用的字符串比较方式是可行的。原创 2013-11-09 11:00:28 · 13391 阅读 · 3 评论 -
在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
fork ( /directory/script.sh)fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本.运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。sub-shell执行完毕后返回parent-shell. sub转载 2013-11-09 18:34:59 · 1338 阅读 · 0 评论 -
Ubuntu系统中使用apt-get安装Nginx服务器
在上篇文章说完用supervisor来管理进程之后,自然就要说到用nginx来管理由前者启动程序所监听的端口。 首先是安装nginx,环境依然是ubuntu12.04(64位),通过下面命令:sudo apt-get install nginx安装好之后就是启动,目前我知道的在ubuntu下有两种启动方式:sudo /etc/init.d/nginx start #转载 2013-11-26 17:06:00 · 7138 阅读 · 0 评论 -
真正把Ubuntu装到移动硬盘里
“你的名字是什么?”这个随便,启动后会显示在桌面的右上角;“您想用什么名字作为登录名?”这个是你开机登录时要输入的用户名;“自动登录”建议不要选择,选择“需要密码以登入”。填写完毕,点“Forward”。14、重点来了!其实上面的步骤都跟正常安装基本一样,要使移动硬盘里的Ubuntu能正常启动,重点就在后面这几步:准备安装前,点“高级”。15、在转载 2014-04-28 10:00:23 · 11636 阅读 · 0 评论 -
《Linux内核修炼之道》 之 高效学习Linux驱动开发
这本《Linux内核修炼之道》已经开卖(网上的链接为: 卓越、当当、china-pub ),虽然是严肃文学,但为了保证流畅性,大部分文字我还都是斟词灼句,反复的念几遍才写上去的,尽量考虑到写上去的每段话能够让读者产生什么疑惑,然后也都会紧接着尽量的去进行解释清楚,中间的很多概念也有反复纠结过怎么解释能够更容易的理解,力求即使对于初学者也可以有很少阻碍的一气读完。同时我也把书中一部分自己的感悟抽出来转载 2014-05-04 13:36:15 · 1012 阅读 · 0 评论 -
linux umount命令介绍与device is busy解决方法
原文地址:http://blog.51osos.com/linux/linux-umount-device-is-busy/转载 2014-08-28 14:21:42 · 4650 阅读 · 0 评论 -
浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程
原文地址:http://www.ibm.com/developerworks/cn/linux/1307_liuming_linuxtime1/转载 2014-08-27 14:47:54 · 1196 阅读 · 0 评论 -
linux驱动学习:1.内核树的建立
首先,为什么要建立内核树呢?因为我们知道驱动可以编译进内核进行执行,也可以以模块的方式加载到内核里进行执行。编写驱动程序在2.6版本的内核与 2.4版本的内核有所不同,2.4版本的内核只需要有一套内核头文件就够了,而2.6的内核的模块则要和内核源代码树中的目标文件相连接,这样,就需要一个建立一个内核树,来提供上面这些目标文件。所以首先我们要建立一个内核源代码树,而这个内核源代码树的建立有两种方式:转载 2014-08-27 18:25:06 · 1002 阅读 · 0 评论 -
rmmod: chdir(/lib/modules): No such file or directory 解决方法
必须创建/lib/modules/2.6.30.4这样一个空目录,否则不能卸载ko模块.# rmmod nls_cp936rmmod: chdir(/lib/modules): No such file or directory但是这样倒是可以卸载nls_cp936,不过会一直有这样一个提示:rmmod: module 'nls_cp936' not found转载 2014-08-28 15:32:05 · 3373 阅读 · 0 评论 -
内核定时器 struct timer_list
原文地址:转载 2014-09-01 14:02:56 · 3045 阅读 · 0 评论 -
交叉编译生成模块的makefile写法
原文地址:http://www.cnblogs.com/wuyuegb2312/archive/2012/08/07/2626281.html转载 2014-08-28 14:58:09 · 2770 阅读 · 0 评论 -
6410的GPIO使用
一,每组GPIO的数目: #define S3C64XX_GPIO_A_NR (8) #define S3C64XX_GPIO_B_NR (7) #define S3C64XX_GPIO_C_NR (8) #define S3C64XX_GPIO_D_NR (5) #define S3C64XX_GPIO_E_NR (转载 2014-08-30 17:40:19 · 1199 阅读 · 0 评论 -
浅析 Linux 中的时间编程和实现原理,第 2 部分: 硬件和 GLibC 库的细节
引子熟悉了基本的编程方法之后,我们的兴趣就在于,计算机如何实现这一切的呢?在那些应用层 API 和底层系统硬件之间,操作系统和库函数究竟做了些什么?首先看下 Linux 时间处理的一般过程:图 1. 时间处理过程应用程序部分已经在第一部分详细介绍过了,在第二部分我将介绍硬件和 GlibC 相关实现的一些概况。回页首硬件PC 机转载 2014-08-27 11:09:39 · 1071 阅读 · 0 评论 -
openSUSE 13.1 更换国内源
最近准备戒dota,于是把自己的笔记本装成了opensuse,用的最新版本13.1。用的官方源,每次安装和更新都跟乌龟一样。于是就想到更换的国内的源,速度果然快了很多。操作办法如下: 首先要禁用官方源和DVD光盘源,启用国内源 使用DVD光盘安装好openSUSE 13.1之后,软件安装源中默认存在一个名称为"openSUSE-13.1-1.10转载 2014-08-21 09:25:44 · 14860 阅读 · 0 评论 -
Linux内核配置与编译
1.内核配置 编译内核之前要先配置。为了正确、合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,主要有以下4个方面需要考虑。 ● 尺寸小。自己定制内核可以使代码尺寸减小,运行将会更快。 ● 节省内存。由于内核部分代码永远占用物理内存,定制内核可以使系统拥有更多的可用物理内存。 ● 减少漏洞。不需要的功能编译进入内核可能会增加被系统攻击者利用转载 2014-05-21 19:19:15 · 3866 阅读 · 0 评论 -
汇总rsync使用中错误信息
该贴中收集rsync使用当中可能出现的错误。错误一: @ERROR: auth failed on module xxxxx rsync: connection unexpectedly closed (90 bytes read so far) rsync error: error in rsync protocol data stream (code 12) at原创 2013-10-18 10:04:42 · 15562 阅读 · 0 评论 -
目标板挂载NFS时“rpcbind: server localhost not responding, timed out”解决
问题:工作环境:解决办法:原创 2014-05-08 09:14:43 · 10206 阅读 · 3 评论 -
使用 rsync 服务(二)
内容提要掌握两种运行 rsync 服务的配置方法熟悉配置文件 rsyncd.conf 的常用参数掌握在生产服务器上同时运行 rsync 服务的配置方法掌握在备份服务器上运行 rsync 服务的配置方法重点掌握匿名 rsync 服务的配置方法rsync 服务简介上一节讲述了使用 rsync 客户命令进行同步和备份的内容。rsync转载 2013-08-21 15:41:05 · 14927 阅读 · 1 评论 -
rsync一:工作模式及语法
前段日子在网上找rsync daemon的filter等过滤规则的详解,怎么也找不到,哥一怒之下,决定自己动手翻译,于是有了本文… 本文内容翻译自rsync的官方文档:http://rsync.samba.org/ftp/rsync/rsync.html,以及http://rsync.samba.org/ftp/rsync/rsyncd.conf.html,非完整的全文翻译,并且按照我的转载 2014-05-12 11:28:49 · 1821 阅读 · 0 评论 -
Linux系统下超强远程同步备份工具Rsync使用详解
服务器之间常常要保持些文件或目录的一致,比如一些大的软件下载网站,它们通常使用多台服务器来提供下载服务。当一台服务器上的文件更新后,其它的服务器也需要更新,而且 在更新的时候应该是只对新增或是修改过的文件进行更新,否则会造成网络带宽和时间的浪费。rsync就是能有效的保持文件及目录的一致的优秀软件。 rsync,remote synchronize 顾名思意就知道它是一款实现远程同步功转载 2013-08-21 15:33:04 · 2676 阅读 · 0 评论 -
Linux环境下使用 USB转串口驱动
原文地址:转载 2014-04-26 16:43:59 · 18720 阅读 · 0 评论 -
Dnw下载工具还是Linux下的好(For OK6410)
原文地址:http://www.cnblogs.com/lixiaoming90/archive/2013/03/21/2973837.html转载 2014-05-17 18:10:17 · 9663 阅读 · 3 评论 -
使用 rsync 同步(一)
内容提要熟悉 rsync 的功能及其特点掌握 rsync 语法及常用选项的功能掌握 rsync 命令的三种基本使用方法掌握如何筛选 rsync 的传输目标掌握使用 rsync 进行镜像和增量备份的方法rsync 简介rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之转载 2013-08-21 13:00:34 · 21784 阅读 · 2 评论 -
linux下USB转串口的设置
原文地址:http://sjsky.iteye.com/blog/1060342转载 2014-04-26 16:50:51 · 13230 阅读 · 0 评论