![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux 应用
蜗牛人生牛
这个作者很懒,什么都没留下…
展开
-
进程间同步---system v ipc 对象信号灯集
一、信号灯简介Linux支持System V的信号灯(semaphore),是一种进程间通信的方式,只不过它和管道、FIFO或者共享内存不一样,信号灯主要用于同步或者互斥对共享资源的访问,它的发明来源于火车运行系统中的"信号灯",利用信号灯可以实现"PV"操作这种进程间同步进制。P操作时获得资源,将信号灯的值减1,如果结果不为负则执行完毕,进程获得资源,否则进程睡眠以等待的进程转载 2014-08-10 11:20:40 · 542 阅读 · 0 评论 -
Linux2.6.32.2移植到Mini2440
前几天一直在移植U-Boot2009.8,基本的移植已经结束,不过的使用tftp下载内核时还是有点问题,现在有点迫不及待的先移植了LInux2.6.32.2内核,先使用友善之臂的supervivi,下载引导Linux内核,算是给自己一点鼓励,成功后再使用U-Boot引导Linux内核。主要参考了友善之臂的移植文档。自从Linux-2.6.31开始,Linux内核就已经官方支持了mini2440转载 2015-05-23 12:16:40 · 571 阅读 · 0 评论 -
DMA基本概念及mini2440下DMA驱动程序编写与测试
转自:http://blog.techbulo.com/tech/artical/1462.html1、基本概念DMA即Direct Memory Access(直接存储器存取),那么为什么要引入这么个东东呢?它的作用又是什么呢?我们通过一个例子来说明:比 如当我们要往内存里面拷贝一块很大的数据时,由于CPU同一时间只能做一件事情,这样在一段很长的时间里就不能再处理转载 2015-07-30 15:28:48 · 1042 阅读 · 0 评论 -
Linux 下三种方式设置环境变量
在Linux系统下,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现 “command not found ” 的提示内容。 如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了。 这涉及到环境变量path的设置问题,而Path 的设置也是在Linux下定制环境变量的一个组成部分Linux下环境变量设置的三种方法:如想将一个路径加入到$PATH中,可以像下面转载 2015-11-07 10:28:50 · 396 阅读 · 0 评论 -
Linux服务器开发初步
服务器开发需要考虑的内容很多,比如服务器的架构、稳定性、性能以及负载能力等等。事实上,在开发服务器的过程中,需要综合考虑各种因素,比如就客户端连接时间较短却又比较频繁的服务器(例如HTTP服务器)而言,在可选的服务器结构中,预先派生进/线程的结构就要比并发式结构高效,这一点将在后续的文章中对其进行详细的介绍。然后就是服务器实现方面的细节,比如是否需要支持跨平台的能力、采用什么样的开发语言和开发工具转载 2015-12-15 10:31:57 · 1489 阅读 · 0 评论 -
ALSA中PCM参数配置
步骤如下:1) PCM设备的句柄.2) 指定同时可供回放或截获的PCM流的方向3) 提供一些关于我们想要使用的设置选项的信息,比如缓冲区大小,采样率,PCM数据格式等4) 检查硬件是否支持设置选项. 4.1) 初始化PCM变量 4.2) 分配hwparams结构 4.3) 打开PCM设备 4.4) 以声卡的全部设置选项空间来初始化hwparams转载 2016-06-19 19:30:19 · 2333 阅读 · 0 评论 -
SMS短信的PDU编码规则
目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信,也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发转载 2016-09-01 14:18:52 · 582 阅读 · 0 评论 -
makefile分析学习
1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的Makef转载 2016-10-26 15:30:17 · 209 阅读 · 0 评论 -
makefile 中 $@ $^ %< 使用
1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器。 下面我们以一个实例来说明如何使用gcc编译器。假设我们有下面一个非常简单的源程序(hello.c):int main(int argc,char **argv){printf("Hello Linux\n");}要编译这个程序,我们只要在命令行下执转载 2016-10-26 15:59:45 · 252 阅读 · 0 评论 -
RT3070网卡驱动在ferdora 9中的安装
第一步:下载RT3070的无线网卡驱动;解压得到/opt/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO 第二步:由于是在虚拟机里面安装,所以不存在驱动移植的问题,一般源码包里面就已经支持了,直接make,在/opt/2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5原创 2015-01-16 10:03:34 · 1061 阅读 · 0 评论 -
mips mplayer移植
pc:ubuntu 13.10开发板:龙芯1Bgcc版本:gcc 4.8.1交叉编译环境:mipsel-linux下载源码包:libmad-0.15.1b.tar.gz、MPlayer-1.0rc2.tar.bz2、yasm-0.8.0.tar.gz1.移植libmad解码器tar zxvf libmad-0.15.1b.tar.gzcd libmad-0转载 2015-05-28 11:16:04 · 1068 阅读 · 0 评论 -
在mipsel-linux平台上的编译应用SQLite-3.5.9
MIPS是一个RISC的处理器体系结构,与之类似的还有x86,arm等,今天我们介绍如何在Ubuntu下搭建MIPS交叉编译环境:1.下载:在 http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2 下载buildroot:tar -jxvf buildroot-snaps转载 2015-04-28 16:41:29 · 662 阅读 · 0 评论 -
串口termios结构体的详细设置
termios结构体内容:成员 描述-------------------------------------------c_cflag 控制模式标志c_lflag 本地模式标志c_iflag 输入模式标志c_oflag 输出模式标志c_line line disciplinec_cc[NCCS] 控制字符c_ispeed 输入波特率c_ospeed 输出波特率 在te转载 2015-04-17 15:09:18 · 1551 阅读 · 0 评论 -
Linux C线程池
大多数的网络服务器,包括Web服务器都具有一个特点,就是单位时间内必须处理数目巨大的连接请求,但是处理时间却是比较短的。在传统的多线程服务器模型中是这样实现的:一旦有个请求到达,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服转载 2014-08-11 00:13:23 · 309 阅读 · 0 评论 -
飞鸽传书(IPMSG)协议(翻译稿)
协议声明: 本协议是由日本人Shirouzu Hiroaki (白水 启章)先生编写。 wanpengcoder翻译于Mr.Kanazawa英文文档,转载请注明出处。转载 2014-08-23 23:19:21 · 857 阅读 · 0 评论 -
RT5350原厂SDK及AP移植步骤详解
标签: rt5350 rt5350ap移植 rt5350原厂sdk编译 rt5350内核编译romfs文件系统分类: ARM_LINUX嵌入式最近想搞一下rt5350,所以找了个原厂的SDK包进行了编译,很快路由器就可以用了,把我的编译操作步骤写了下分享给更多的爱好者,供大家参靠,下一步准备移植摄像头玩玩。转载 2015-01-09 16:44:26 · 1414 阅读 · 0 评论 -
嵌入式数据库--SQLite简单应用
简介 嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。嵌入式数据库的一大好处就是在你的程序内部不需要网络配置,也不需要管理。因为客户端和服务器在同一进程空间运行。SQLite 的数据库权限只依赖于文件系统,没有用户帐户的概念。SQLite 有数据库级锁定,没有网络服务器。它需要的内存,其它开销很小,适合用于嵌入式设备。你需要做的仅仅是把它正确的编译到你的程序。接转载 2014-12-31 10:45:09 · 596 阅读 · 0 评论 -
arm-linux-gcc/ld/objcopy/objdump参数总结
分类: LINUXarm-linux-gcc -wall -O2 -c -o $@ $-o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件-Wall 指定产生全部的警告信息-O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项,可以使生成的执行文件的执行效率提高-c 表示只要求编译器进行编译,而不要进行链接,生成以源文件的文件名命名但把其后缀由 .c 或转载 2015-03-01 19:54:49 · 343 阅读 · 0 评论 -
IO中同步、异步与阻塞、非阻塞的区别
一、同步与异步同步/异步, 它们是消息的通知机制1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数转载 2015-04-10 09:06:28 · 325 阅读 · 0 评论 -
linux消息队列编程实例
转自:linux 消息队列实例前言: 消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向其中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息函数:1.创建新消息队列或取得已存在消息队列原型:int msgget(key_t key, int msgflg);参数:转载 2015-04-20 10:38:24 · 318 阅读 · 0 评论 -
P2P之UDP穿透NAT原理
首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。 最开始NAT是运行在路由器上的一个功能模块。 最先提出的是基本的NA转载 2014-11-28 09:10:21 · 621 阅读 · 0 评论 -
PF_NETLINK应用实例:NETLINK_KOBJECT_UEVENT的实现
udev的文档介绍: 1. dynamic replacement for /dev。作为devfs的替代者,传统的devfs不能动态分配major和minor的值,而major和minor非常有限,很快就会用完了。 udev能够像DHCP动态分配IP地址一样去动态分配major和minor。 2. device naming。提供设备命名持久化的机制。传统设备命名方式不具直观转载 2015-04-09 16:01:40 · 1524 阅读 · 0 评论 -
netlink机制和udev实例
LINUX netlink机制 用户空间的程序与设备通信的方法,主要有以下几种方式: 1 通过ioperm获取操作IO端口的权限,然后用inb/inw/ inl/ outb/outw/outl等函数,避开设备驱动程序,直接去操作IO端口。(没有用过) 2 用ioctl函数去操作/dev目录下对应的设备,这是设备驱动程序提供的接口。像键盘、鼠标和触摸屏等输入设备一般都是转载 2015-04-09 16:16:50 · 2079 阅读 · 0 评论 -
C语言中fflush函数的使用方法
此函数包含在stdio.h头文件中,用来强制将缓冲区中的内容写入文件。函数原型:int fflush(FILE *stream) ;函数功能:清除一个流,即清除文件缓冲区,当文件以写方式打开时,将缓冲区内容写入文件。也就是说,对于ANSI C规定的是缓冲文件系统,函数fflush用于将缓冲区的内容输出到文件中去。函数返回值:如果成功刷新,fflush返回0。指定的流没有缓冲区或者只读打转载 2015-04-09 14:56:41 · 14737 阅读 · 0 评论 -
struct sockaddr_nl 结构体 由来、含义以及使用——获取Linux路由表
Linux 用户态与内核态的交互 在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交互就全部使用了netlink,著名的内核包过滤框架Netfilter在与用户空间的通读,也在最新版本中改变为netlink,无疑,它将是Linux用户态与内核态交流的主要方法之一。它的通信依据是一转载 2015-04-09 15:25:00 · 447 阅读 · 0 评论 -
Linux信号(signal) 机制分析
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。【关键字】软中断信号,signal,sigaction,kill,sig转载 2015-04-17 15:40:23 · 357 阅读 · 0 评论