- 博客(43)
- 资源 (4)
- 收藏
- 关注
转载 linux下如何用c语言调用shell命令
C程序调用shell脚本共有三种法子 :system()、popen()、exec系列函数 system()不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程,然后exec 自己的命令。popen() 也可以实现执行你的命令,比system 开销小1.system (shell命令或shell脚本路径)system()会调用fork
2014-08-31 20:55:39 1208
转载 udev和sysfs简介
Libudev和sysfs指南 这是一篇译文,原文在:http://blog.csdn.net/fjb2080/article/details/7528894 在unix和类unix系统中,硬件设备可以通过/dev目录下的特殊文件进行访问,这些文件又被称为设备文件或设备节点。通过操作普通文件一样读写这些文件可以利用内核设备驱动程序与硬件设备通信,而这个过程不
2014-08-31 20:37:20 1249
转载 【转】跟我一起写udev规则(译)
目录 介绍 关于本文档 更新历史概念 术语: devfs, sysfs, nodes, etc. 为什么? 内置固定命名设计编写规则 规则文件和语义 规则语法 基本规则 sysfs匹配属性 设备级联结构 字符串替换 字符串匹配从sys
2014-08-31 20:35:03 636
转载 Linux┊详解udev
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的。
2014-08-31 20:32:02 601
转载 linux驱动加载命令和驱动模块信息查看
驱动操作命令: insmod / modprobe 加载驱动 rmmod 卸载驱动 lsmod 查看系统中所有已经被加载了的所有的模块以及模块间的依赖关系 modinfo 获得模块的信息
2014-08-30 19:46:38 3677
转载 Linux常用命令大全
h 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU
2014-08-30 19:43:11 557
原创 solidworks2012 打不开STEP格式文件
sw是可以直接打开STP文件的,不过STP文件所在的路径应该是全英文的才行,如果含有中文目录的话就打不开
2014-08-29 20:39:56 11228
转载 Linux驱动模块编译进内核中
BQ27501驱动编译进内核一、 驱动程序编译进内核的步骤在 linux 内核中增加程序需要完成以下三项工作:1. 将编写的源代码复制到 Linux 内核源代码的相应目录;2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项;3. 在目录的 Makefile 文件中增加对新源代码的编译条目。
2014-08-28 15:56:48 669
转载 linux 内核模块的编译(用于驱动开发)
最近在入门linux的设备驱动,开始时连一个最简单的helloworld的驱动都编译失败,开始时走了很多弯路,最后经过几天反复的研究上网查询,算是有点点的经验吧。 1.驱动的编写 驱动的编写通常是模式化的,这里首先就用最简单的一个设备驱动来说明一下。 #include #include #include stat
2014-08-28 13:42:20 1136
转载 linux 内核源码树的建立
刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须 建立内核树。先前的内核只需要有一套内核头文件就够了,但因为2.6的内核模块吆喝内核源码树中的目标文件连接,通过这种方式,可得到一个更加健壮的模块装载器,但也需要这些目标文件存在于内核目录树中。所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形式。那怎么建立呢?为此上网“翻云覆雨”起来而结果却是
2014-08-28 13:29:34 735
转载 深入浅出Linux设备驱动编程之内核模块
Linux设备驱动属于内核的一部分,Linux内核的一个模块可以以两种方式被编译和加载:(1)直接编译进Linux内核,随同Linux启动时加载;(2)编译成一个可加载和删除的模块,使用insmod加载(modprobe和insmod命令类似,但依赖于相关的配置文件),rmmod删除。这种方式控制了内核的大小,而模块一旦被插入内核,它就和内核其他部分一样。下面我们给出一个内
2014-08-28 10:56:33 659
转载 linux设备驱动程序之简单字符设备驱动
一、linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序:1、字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。2、块设备:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。 每一个字符设备或
2014-08-27 10:21:11 525
转载 Linux I2C驱动分析与实现(一)
====本文系本站原创,欢迎转载! 转载请注明出处:http://blog.csdn.net/yyplc====本文基于内核版本linux-2.6.30.4分析.Linux中i2c子系统框图如下:•客户驱动即I2C设备驱动,每个客户驱动可以为一个或多个I2C设备服务,并向用户空间提供相应的访问接口函数。客户驱动需要向总线注册并通过i2c-core
2014-08-26 18:17:31 665
转载 Linux I2C驱动分析与实现(二)
====本文系本站原创,欢迎转载! 转载请注明出处:http://blog.csdn.net/yyplc====通过上篇《Linux I2C驱动分析与实现(二)》,我们对Linux子系统已经不陌生,那么如何实现I2C驱动呢?编写客户驱动的方法在内核中有两种方式的i2c客户驱动的编写方法,一种叫legacy传统方式,另一种是newstyle方式. 前一种legacy是一种
2014-08-26 18:17:08 594
转载 Linux下PCI设备驱动程序详解
PCI 是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。 Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。一、PCI总线系统体系结构PCI是外围设备互连(Peripheral Component
2014-08-26 16:18:15 2441
转载 基数树(radix tree)
基数(radix)树Linux基数树(radix tree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。IDR(ID Radix)机制是将对象的身份鉴别号整数值ID与对象指针建立关联表,完成从ID与指针之间的相互转换。IDR机制使用radix树状结构作为由id进行索引获取指针的稀疏数组,通过使用位图可以
2014-08-26 15:26:08 640
转载 Linux设备驱动之I2C架构分析
一、前言 I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而 I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识
2014-08-26 09:56:34 842
转载 Linux I2C驱动完全分析(二)
博主按:大热的天,刚刚负重从五道口走到石板房,大约4公里吧。终于让我找了一个咖啡屋休息一下,继续写这篇驱动分析。单身的生活就是这样无聊啊。 不发牢骚了,活出个样儿来给自己看!千难万险脚下踩,啥也难不倒咱!继续整!~ 先说一下,本文中有个疑惑,一直没有搞懂,写在这里,望高人指点一二,不胜感激!#define I2C_M_NOSTART 0x4000 /* if I2C_FU
2014-08-25 18:32:27 665
转载 Linux I2C驱动完全分析(一)
版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。 博主按:其实老早就想写这个I2C的了,期间有各种各样的事情给耽误了。借着五一放假的时间把这个写出来,供同志们参考。以后会花一些时间深入研究下内核,虽然以前对内核也有所了解,但是还不系统。I2C的硬件结构并不复杂,一个适配器加几个设备而已。Linux下驱动的体系结构看着挺复杂,实际也是比较简单的。在本文中我还是使
2014-08-25 18:31:36 764
转载 Linux的i2c驱动详解
1 简介 I2C 总线仅仅使用 SCL 、 SDA 两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和 PCB 板布线空间的占用。因此, I2C 总线被非常广泛地应用在 EEPROM 、实时钟、小型 LCD 等设备与 CPU 的接口中。Linux I2C GPIO驱动是在没有专用I2C芯片的情况下,用GPIO口来模拟I2C总线时序,完成Linux与I2C设备的通信过程。用两根
2014-08-25 18:29:04 769
转载 FT5406触摸屏驱动
1.首先,分析下FT5406的基本电路接口[html] view plaincopyExternal Interface I2C/SPI: an interface for data exchange with host INT: an interrupt signal to inform the host proces
2014-08-25 11:54:22 1356
转载 基于FT5x06嵌入式Linux电容触摸屏驱动
***************************************************************************************************************************作者:EasyWave
2014-08-25 11:50:43 1862
转载 去掉文件中^M的方法
1、 cat filename1 | tr -d "\r" > newfile2、 [url=javascript:;]sed[/url]-e "s/^V^M//" filename > outputfilename3、vi: 用vi打开文件1. 按ESC键2. 输入 :%s/^M//g确定 ^M是使用 "CTRL-V CTRL-M" 而不是字面上的 ^M。这个正则式将
2014-08-21 21:22:13 1420
转载 Sed使用的变量里含有转义字符的解决
最近写脚本的时候碰到了这方面的问题,到网上搜了半天也没找到好一点的方案或总结。今天我把自己的摸索写一下。 首先是Sed里使用变量的问题网上有人总结了四种方案:1. eval sed 's/$a/$b/' filename2. sed "s/$a/$b/" filename3. .sed 's/'$a'/'$b'/'
2014-08-21 15:18:54 2380
转载 收集整理比较全 shell sed 命令与实例教程
在每一行后面增加一空行sed G将原来的所有空行删除并在每一行后面增加一空行。这样在输出的文本中每一行后面将有且只有一空行。sed '/^$/d;G'在每一行后面增加两行空行sed 'G;G'将第一个脚本所产生的所有空行删除(即删除所有偶数行)sed 'n;d'在匹配式样“regex”的行之前插入一空行sed '/regex/{x;p;x;}'
2014-08-21 15:09:59 774
转载 如何将Linux命令的结果作为下一个命令的参数
符号:`名称:反引号,上分隔符位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,与(~)在同一键上,不要将其同单引号(’)混淆作用:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分举例:[eshizhan@localhost usr]$ echo `date
2014-08-21 14:44:40 1150
转载 shell编程之给变量赋值的五种方法
1. Shell中的变量类型Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、2. 环境变量Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由系统统一命名。部分系统变量的值由系统设定,部分环境变量的值可以由用户给定。环境变量的名称由大写字母组成,常用的Shell环境变量如下所示:
2014-08-21 10:24:13 3514
转载 Linux Shell之sed命令
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般
2014-08-21 10:07:01 522
转载 Linux bash shell 逐行读取文件的三种方法
方法一,指定换行符读取:#! /bin/bash IFS=" " for LINE in `cat /etc/passwd` do echo $LINE done 方法二,文件重定向给read处理:#! /bin/bash cat /etc/passwd | while read LINE
2014-08-20 21:01:10 1020
转载 shell脚本,每次读取文件的一行,逐行读取并处理
shell脚本,每次读取文件的一行,逐行读取并做显示处理,如需其它处理,自行修改即可。写法一:Example12345#!/bin/bashwhileread linedo echo$line #这里可根据实际用途变化done
2014-08-20 20:56:21 5565
转载 Shell脚本调试技术
本文全面系统地介绍了shell脚本调试技术,包括使用echo, tee, trap等命令输出关键信息,跟踪变量的值,在脚本中植入调试钩子,使用“-n”选项进行shell脚本的语法检查, 使用“-x”选项实现shell脚本逐条语句的跟踪,巧妙地利用shell的内置变量增强“-x”选项的输出信息等。3 评论:曹 羽中 (caoyuz@cn.ibm.com), 软件工程师
2014-08-20 08:54:05 796
转载 Linux Shell编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell
2014-08-19 20:37:09 581
转载 EOF与feof()
判断文件结束有两种方法:EOF和feof()查看stdio.h可以看到如下定义:#define EOF (-1)#define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF)由此可以看出,这两种方式的原理是不同的。有人说EOF只能用于文本文件,其实不然,还要看定义的变量的类型。下面这段程
2014-08-18 17:12:31 655
转载 fread和fwrite用法详解
1、fwrite的用法。原型:size_t fwrite( const void* buffer, size_t size, size_t count, FILE* stream);原型说明:buffer 是数据缓冲的地址。指明将要写入文件的是那些数据,数据的地址是什么。size 是数据项item的大小,这里需要说明的是
2014-08-18 16:08:46 2197 1
转载 linux串口传文件程序
今天下午写了个串口传文件的程序,发现每次接收时读串口得到的大小都是8个字节左右,不知道什么原因?以下程序演示了怎样通过串口传文件编译后先执行./receive在另一个终端./send tt.txt(单机测试连串口2,3脚,tt.txt是我当前目录下的一个文件)这样会在当前目录下生成副本serialdata文件两个程序的源代码如下:/*------------------
2014-08-18 15:14:05 1670
转载 lnux下open()与fopen()
open(打开文件)相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件#include#include#include定义函数 int open( const char * pathname, int flags);int open( const char * pathname,i
2014-08-18 15:09:09 533
转载 Linux常见文件结构体全面解释
1.1 struct file struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct file的指针通常被命名为fi
2014-08-18 15:06:07 885
转载 Linux下实现应用层串口库函数
//serialport.h[cpp] view plaincopy/************************************************************* FileName : serialport.h FileFunc : 定义头文件 Version : V0
2014-08-18 11:23:31 1582
转载 linux串口驱动分析
linux串口驱动分析硬件资源及描述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)端口,每个端口都可以在中断模式或 DMA 模式下操作。UART 使用系统时钟可以支持最高 115.2Kbps 的波特率。每个 UART 通道对于接收器和发送器包括了 2 个 64 位的 FIFO。寄存器
2014-08-18 10:59:51 928
转载 uboot默认参数的修改
由于没有设置uboot参数的分区,只能在uboot源码中修改默认参数以使uboot正常工作。boot/u-boot/include/configs/ap123.h:#define __gen_cmd(n, a, f, ec, cc, el)\#n "=tftp 0x80060000 ${dir}" #f "&&"\#ec " " #a " " #el "&&"\
2014-08-18 10:08:03 1537
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人