![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 76
_修_
平凡
展开
-
vi/vim 使用方法讲解
文档操作vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的转载 2012-06-08 08:44:36 · 328 阅读 · 0 评论 -
结构体之位域(位段)
看linux内核代码时遇到问题:unsigned int state_initialized : 1;不明白什么意思。找到的答案:有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进转载 2012-08-09 10:22:19 · 704 阅读 · 0 评论 -
linux实用命令详解(新建删除复制文件夹,挂载)
1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkdir -p mytest/test1/test1_1 NO3. 在创建目录的同时给新建的目录赋权限转载 2012-08-28 14:52:55 · 620 阅读 · 0 评论 -
linux驱动学习笔记(linux驱动头文件说明)
#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include在linux-2.6.31_TX2440转载 2012-09-14 15:46:27 · 887 阅读 · 0 评论 -
I/O驱动相关__raw_readl和__raw_writel
1.S3C2410_GPB5是端口编号,定义在regs-gpio.h中,#define S3C2410_GPIO_BANKB (32*1)#define S3C2410_GPIONO(bank,offset) ((bank) + (offset))#define S3C2410_GPB5 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 5)转载 2012-09-14 15:50:37 · 1868 阅读 · 0 评论 -
Linux命令学习手册-readelf命令
readelf elf-file(s) [功能] 用于显示elf格式文件的信息。 [描述] readelf用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。这里的elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档(这里一般指的是使用ar命令将一些elf文件打包之后生成的转载 2012-10-08 15:09:41 · 570 阅读 · 0 评论 -
linux中profile的执行说明
(1)/etc/profile全局(公有)配置,不管是哪个用户,登录时都会读取该文件。(2)/ect/bashrcUbuntu没有此文件,与之对应的是/ect/bash.bashrc它也是全局(公有)的,bash执行时,不管是何种方式,都会读取此文件。(3)~/.profile若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bas转载 2012-10-22 10:13:48 · 1052 阅读 · 0 评论 -
如何在linux清理磁盘空间
提示 1:清理残余的配置文件 一般而言,当我们从 Ubuntu 系统中删除了一个软件之后,该软件的残余配置文件并没有被删除。如果你确信以后不再使用该软件,那么保留其配置文件实在没有必要,所以我们大可一并删除之。 要删除某个软件的残余配置文件,可以执行下面的操作: 在终端中执行 sudo synaptic,以便启动 Synaptic 包管理工具。 点击 Synaptic 右下转载 2012-10-22 09:40:58 · 2809 阅读 · 0 评论 -
file_operations
struct file_operations{ struct module *owner; // 指向拥有该结构的模块的指针,避免正在操作时被卸载,一般为初始化为THIS_MODULES loff_t (*llseek) (struct file *, loff_t, int);转载 2012-12-21 10:32:15 · 446 阅读 · 0 评论 -
串口驱动(二)
在没有引入UART之前,由于没有OS,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判断程序是否执行成功。 使用串口我们便可以实现开发板最基本的数据的发送和接收,实现同开发板的交互,控制程序的运行,并且在程序运行中打印出一些信息进行debug。实际上bootloader转载 2013-03-14 10:17:47 · 781 阅读 · 0 评论 -
串口驱动(三)
一、终端概述:tty设备设备是指一类字符设备的统称,包括控制台、串口、伪终端。为终端:双向管道控制台:只输出的设备,必须与实际的设备联系二、终端体系 三、数据流:四、串口驱动函数调用流程五、串口驱动程序的原理:1.发送:循环buffer->发送fifo2.接收:接收fifo->filp_buffer产生中断的条件:当发送fifo中的数据低于转载 2013-03-14 10:18:59 · 763 阅读 · 0 评论 -
串口驱动(一)
串行通信可以分为两种类型:同步通信、异步通信。 1.异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式:起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起转载 2013-03-14 10:16:54 · 703 阅读 · 0 评论 -
如何成为优秀的驱动开发工程师
作者:刘旭晖 Raymond转载请注明出处Email:colorant@163.comBLOG:http://blog.csdn.net/colorant/主页:http://sites.google.com/site/rgbbones/ 或许这样的标题,应该是由像Linus或Greg KH这样的大师级的高手才有资格写的吧。但是作为我来说,也许我更想把这个标题作为一个疑问句来使转载 2013-04-02 17:46:55 · 701 阅读 · 0 评论 -
蓝牙BlueZ的移植
一切版权归bluez的作者---同济大学高性能计算中心 Dennis 欢迎各位发邮件给我和我讨论 dennis.he.2005@gmail.com 先介绍一下硬件,我用的是电脑卖场里面随便买到的 USB蓝牙适配器,价格在80元左右,应该是台产的,没有牌子,像一个小一点的U盘。买之前叫卖家在windows下测试一下,带一个带蓝牙的手机过去试试看,确认能用再买。 linux上的转载 2013-05-06 16:28:03 · 2177 阅读 · 0 评论 -
mini2440 蓝牙驱动移植
原文地址:蓝牙驱动移植">mini2440 蓝牙驱动移植我的蓝牙设备是:USB蓝牙,芯片制造商: CSR, 芯片型号:41B14。芯片上贴的是AS6320QA。可见是水货。但在windows下测试可以使用。Linux2.6版本之后的内核一般都有蓝牙模块的配置,所以不用再打补丁了。一般在配置内核的时候选择如下选项:[*] Networking support --->转载 2013-05-06 16:10:13 · 2236 阅读 · 0 评论 -
linux蓝牙驱动成功安装
我的系统是红旗桌面5.0蓝牙适配器: ISSC芯片, USB接口(市面上还有其他的一些品牌,大多没有问题) 蓝牙手机:索爱T628 (我的手机是moto A732的) 1,加载蓝牙适配器 插入USB口之后,可以使用lsusb命令,看到: Bus 004 Device 003: ID 1131:1001 Integrated System Solution Co转载 2013-05-06 16:12:10 · 4343 阅读 · 0 评论 -
多点触控协议(MTP)
Multi-touch (MT) Protocol------------------------- Copyright (C)2009-2010 Henrik Rydberg Introduction------------In order to utilize the full power of thenew multi-touch and mul转载 2013-07-18 16:06:05 · 1175 阅读 · 0 评论 -
Linux驱动子系统之I2C(一)
主要是参考http://blog.csdn.net/cjok376240497/article/details/6972305,对I2C子系统讲解的很透彻的一篇文章,值得一读。1 硬件特性1.1 概述I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2转载 2013-07-18 16:05:09 · 3661 阅读 · 0 评论 -
Linux slab 分配器剖析
良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。动态内存管理内存管理的目标是转载 2012-07-02 09:08:34 · 380 阅读 · 0 评论 -
gpio_request()函数
其原型为 int gpio_request(unsigned gpio, const char *label)先说说其参数,gpio则为你要申请的哪一个管脚,label则是为其取一个名字。其具体实现如下:[cpp] view plaincopyprint?int gpio_request(unsigned gpio, const char *label) {转载 2012-07-10 20:09:25 · 6958 阅读 · 0 评论 -
make 的常见错误信息
make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当makefile本身存在语法错误无法被make解析并执行时,前缀包含了makefile文件名和出现错误的行号。在下述的错误列表中,省略了普通前缀:转载 2012-06-08 09:09:02 · 1139 阅读 · 0 评论 -
如何查看命令ls代码
1. 以搜索ls命令源码为例,先搜索命令所在包,命令如下: lpj@lpj-linux:~$ which ls /bin/ls 2. 用命令搜索该软件所在包,代码如下: lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls 3. 从上一步中可以知道ls命令的实现转载 2012-06-08 09:15:08 · 4193 阅读 · 0 评论 -
ubuntu内核驱动模块变成环境配置
本文是参考了网上多篇帖子而写的算不上什么原创。唯一值得欣慰的只不过在本机上实现罢了。因为毕竟失败了几次。也因为本人是初学驱动编程 很多简单的问题在我来说是相当的困难的。望有识之士不要笑话。最后,希望本文能给刚学驱动而还没开头的人提供一些帮助。刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须 建立内核树。所谓内核树,我的理解和网上资料说的一致就是内转载 2012-06-08 09:25:08 · 757 阅读 · 0 评论 -
minicom的使用
linux下使用超级终端minicom来源: ChinaUnix博客 日期: 2008.11.27 19:10 (共有条评论) 我要评论 Linux下的Minicom的功能与Windows下的超级终端功能相似,适于在linux通过超级终端对嵌入式设备的管理和调试以及对嵌入操作系统的升级,在调试是很方便,比nfs的速度要快,我使用nfs联机时,总是出现nfs warning:m转载 2012-06-08 09:12:01 · 409 阅读 · 0 评论 -
设备驱动中分配的内存空间编译
为glmemory字符设备驱动分配大小为GLMEMORY_SIZE(4k)的内存空间:实现函数有: glmemory_open 文件打开函数 glmemory_release 文件释放函数 glmemory_read 文件读函数 glmemory_writ原创 2012-06-08 10:05:34 · 591 阅读 · 0 评论 -
Ubuntu下编译Linux内核
在ubuntu 10.10上构建内核树 我们平时使用的用户程序和驱动程序不一样,驱动程序作为一个模块连接到内核模块并运行在内核空间里。引用LDD上的一句话“因为2.6内核的模块要和内核源代码树中的目标文件连接,通过这种方式,可得到一个更加健壮的模块加载器,但是需要这些目标文件存在于内核目录树中”。这里提到的内核目录树就是我们在运行我们自己构造的模块前,需要在我们的系统中已经配置好转载 2012-06-08 09:05:49 · 4637 阅读 · 0 评论 -
编译kernel出现Error during update of the kernel configuration解决办法
今天编译kernel报了一个莫名其妙的错误:*** Error during update of the kernel configuration.make[2]: *** [silentoldconfig] 错误 1make[1]: *** [silentoldconfig] 错误 2CHK include/linux/version.hmake[1]: “inclu转载 2012-06-08 09:23:02 · 6421 阅读 · 1 评论 -
Linux下的Source Insight+Ubuntu 10.04使用Wine安装Source Insight
Linux下的Source Insighthttp://rogerer.javaeye.com/blog/755346 在网上看到一朋友写了一篇推荐Linux下代码阅读工具Source Insight 。我想更细化一下,也做做笔记,方便日后使用。方法是:wine + Windows下的Source Insight安装文件。 环境是:Ubuntu 9.10。依赖包转载 2012-06-08 08:47:31 · 651 阅读 · 0 评论 -
ubuntu pdf 乱码 原理
中文PDF在Linux下的显示很容易出问题,最典型的症状是用evince(文档阅读器)打开文件后,凡是应该显示中文的地方都显示是一个个的小方块。PDF的特点是便携性和跨平台,但为什么会出现这样的问题呢?本文将简单的分析原因,并解决这个问题1. PDF的组成关于PDF的详情,可以到wiki(http://en.wikipedia.org/wiki/Portable_Docum转载 2012-06-08 09:13:53 · 567 阅读 · 0 评论 -
Linux kernel oops
在Linux上,oops即Linux内核的行为不正确,并产生了一份相关的错误日志。许多类型的oops会导致内核错误,即使系统立即停止工作,但部分oops也允许继续操作,作为与稳定性的妥协。这个概念只代表一个简单的错误。当内核检测到问题时,它会打印一个oops信息然后杀死全部相关进程。oops信息可以帮助Linux内核工程师调试,检测oops出现的条件,并修复导致oops的程序错误。Linu转载 2012-06-25 16:22:15 · 2899 阅读 · 0 评论 -
Inotify
Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。 使用 inotify 很简单:创建一个文件描述符,附加一个或多个监视器(一个监视器 是一个路径和一组事件),然后使用 read 方法从描述符获取事件。read 并不会用光整个周期,它在事件发生之前是被阻塞的。转载 2012-06-26 15:50:04 · 562 阅读 · 0 评论 -
CFS 调度器学习笔记
[转http://blog.csdn.net/peimichael/archive/2010/01/20/5218335.aspx]首先声明,本文参考了网上很多CFS的文章,包括:《 使用完全公平调度程序(CFS)进行多任务处理》 --Avinesh Kumar《 Linux进程管理之CFS组调度分析》 --ericxiao转载 2012-06-26 14:18:07 · 1441 阅读 · 0 评论 -
linux ssize_t与size_t
ssize_t是signed size_t,而size_t是标准C库中定义的,应为unsigned int。socket_t:数据类型"socklen_t"和int应该具有相同的长度.否则就会破坏 BSD套接字层的填充.POSIX开始的时候用的是size_t, Linus Torvalds(他希望有更多的人,但显然不是很多) 努力向他们解释使用size_t是完全错误的,因为在64位结构转载 2012-07-10 19:14:49 · 669 阅读 · 0 评论 -
copy_to_user和copy_from_user两个函数的分析
在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函转载 2012-07-10 19:46:39 · 626 阅读 · 0 评论 -
copy_to_user和copy_from_user两个函数的分析
在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函转载 2012-07-10 20:12:43 · 649 阅读 · 0 评论 -
基于linux-2.6.35的class_create(),device_create解析
从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用法如下:struct class *myc转载 2012-07-10 21:03:06 · 326 阅读 · 0 评论 -
Android驱动例子(LED灯控制)
本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导。要达到的效果:通过android的应用,调用驱动程序,在开发板上控制4个LED的亮灭。 一、硬件原理 如上图,通过4个IO口控制这LED,低电平L转载 2012-07-10 21:16:52 · 465 阅读 · 0 评论 -
cdev结构体及其相关函数
1、在Linux2.6内核中一个字符设备用cdev结构来描述,其定义如下: struct cdev { struct kobject kobj; struct module *owner; //所属模块 const struct file_operations *ops; //文件操作结构,转载 2012-06-08 09:10:24 · 2411 阅读 · 0 评论