
linux
文章平均质量分 79
阿特图
这个作者很懒,什么都没留下…
展开
-
Linux Shell Script 编写小结
PS:闲来无事,稍微总结一下shell脚本的简单编写方法,虽然不能涵盖Shell Script的全部,但是普通的shell脚本的编写差不多都翻了一遍,全当复习,高手莫喷 Linux知识复习:Locale查看本地语系变量系统默认语系存放点:etc/sysconfig/i18n Declare/typeset宣告环境变量的类型:原创 2012-02-15 13:42:01 · 2032 阅读 · 0 评论 -
内存与I/O访问
本章节带大家一起来探讨一下Linux驱动中的内存与I/O访问CPU与内核和I/OI/O空间:在X86处理器中存在着I/O空间的概念,I/O空间是相对于内存空间而言的。它通过特定的指令in、out来访问指令格式:IN 累加器,{端口号|DX}OUT {端口号|DX},累加器注意:目前大多数嵌入式微控制例如ARM、PowerPC等不提供I/O空间,而仅存在内原创 2012-04-06 11:20:57 · 5788 阅读 · 0 评论 -
platform设备驱动简介
简介:目的:说白了就是为了将设备与驱动分离,通过platform总线进行连接废话不多说:相关结构介绍:1.platform设备结构体structplatform_device{const charname;/*设备名*/u32 id;/*设备id*/struct device dev;/*设备*/u32 num_resourc原创 2012-04-14 09:21:49 · 15786 阅读 · 1 评论 -
Linux驱动阻塞与非阻塞IO之等待队列
上次我和大家一起探讨了Linux驱动中的竞态问题,本环节为们来探讨一下Linux驱动编写中的阻塞与非阻塞I/O阻塞与非阻塞I/O简介阻塞操作:是指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作的条件后再进行操作,被挂起的进程会进入休眠状态,被从调度器的运行队列中移除,直到条件被满足。非阻塞操作:是指在执行设备操作时,若不能获得原创 2012-03-22 20:42:17 · 3841 阅读 · 0 评论 -
OK6410按键驱动程序(改)亲测可以运行
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include #define原创 2012-04-30 10:30:27 · 6440 阅读 · 7 评论 -
Linux usb驱动程序全注释
/* * USB Skeleton driver - 2.0 */#include #include #include #include #include #include #include #include #include #include /* Define these values to match your devices */原创 2012-04-18 15:17:12 · 2791 阅读 · 0 评论 -
在Linux内核中增加驱动选项
在linux内核中增加驱动程序要完成3个方面的工作1.将编写的源代码拷贝到Linux内核源代码相应目录2.在目录的Kconfig文件中增加关于源代码的相应目录3.在目录的Makefile文件中增加对新源代码的编译条目扫盲点:Makefile:分布在Linux内核源代码中的Makefile,定义Linux内核的编译规则Kconfig:给用户提供原创 2012-04-15 16:07:19 · 2530 阅读 · 0 评论 -
Source Insight建立Linux内核代码工程的方法
用Source Insight建立一个Linux内核代码工程具体步骤如下:(一)打开Source Insight,单击【项目】按钮,弹出下拉菜单。(二)单击【新项目】按钮,弹出【新项目】对话框,输入项目名和存放路径,单击【确定】按钮。(三)弹出【添加删除文件】对话框,在内核源代码路径下选择全部 2.6.25内核代码,单击【关闭】按钮。转载 2012-04-23 21:18:01 · 5446 阅读 · 1 评论 -
基于platform的ok6410按键中断实验
plat_btn_device.c#include #include #include #include #include #include #include #include #define DEVICE_NAME "ok6410_plat_btn"/*平台资源的定义,按键中断*/static struct resource s3c_buttons_resou原创 2012-05-09 10:16:45 · 1917 阅读 · 0 评论 -
Linux bus总线模型试验
bus.c#include #include #include #include #include MODULE_AUTHOR("Sola");MODULE_LICENSE("Dual BSD/GPL");static char *Version = "$Revision: 1.9 $";static int my_match(struct device *dev,原创 2012-05-08 16:10:46 · 1101 阅读 · 0 评论 -
ok6410增加工作队列的platform按键驱动程序
plat_btn_device.c#include #include #include #include #include #include #include #include #define DEVICE_NAME "ok6410_plat_btn"/*平台资源的定义,按键中断*/static struct resource s3c_buttons_resourc原创 2012-05-10 18:09:44 · 1117 阅读 · 0 评论 -
在没有Jlink的情况下进行裸机调试
OK6410裸机程序(用超级终端下载)转自:http://blog.youkuaiyun.com/eagle_lzt/article/details/6364692上面已经解决 了几个问题。现在我们的状态:可以在PC - OK6410 之间进行tftp传输,确定了一下可用的地址 空间,下面我们来说一下printf调试 、因为没有jlink,只能用printf调试,你也许会问转载 2012-05-29 23:01:37 · 855 阅读 · 0 评论 -
ok6410LCD测试程序
1.在屏幕上分别显示红绿蓝三个长方形: #ifndef LCD_APP_H#define LCD_APP_H/*自定义结构体用来在用户空间里管理帧缓冲的信息*/typedef struct fd_dev{ int fd;//帧缓冲设备文件描述符 void *pfb;//指向帧缓冲映射到用户空间的首地址 int xres,yres,siz;//一帧图像的宽度、高度和大小 i原创 2012-05-15 17:50:11 · 2805 阅读 · 0 评论 -
Linux等待队列简介
转载自:http://www.360doc.com/content/10/1009/13/1317564_59573185.shtml相信很多写程序的人都写过 socket 的程序。当我们 open 一个 socket 之后,接着去 读取这个 socket,如果此时没有任何资料可供读取,那 read 就会 block 住。(这是 没有加上 O_NONBLOCK 的情形),直到有转载 2012-03-22 10:25:40 · 1362 阅读 · 0 评论 -
Linux Platform Device and Driver
原文出自:http://linux.chinaunix.net/techdoc/develop/2008/12/23/1054402.shtmlLinux Platform Device and Driver日期:08-06-27 从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。 Linux中转载 2012-04-09 11:50:27 · 694 阅读 · 0 评论 -
Linux内核编译小结
作者:sola Linux内核的编译根据不同情况会有不同的步骤,主要步骤分为:内核配置、建立依存关系、建立内核 1. 内核配置主要是用户用来为目标板选择处理器架构的选项,不同的处理器架构会有不同的处理器选项,所以在此之前必须确保在根目录中akefile里“ARCH”的值已经设置为目标板类型如:ARCH := arm 进原创 2012-02-15 13:48:03 · 827 阅读 · 0 评论 -
Linux文件及文件属性
Linux文件及文件系统一. 文件类型Linux文件主要分为四类:普通文件、目录文件、连接文件和设备文件 (1) 普通文件如同Windows下文件一样,是用户最常用的文件 (2) 目录文件知识复习:索引节点:Linux每个文件都被赋予一个唯一的数值,而这个数值被称作为索引节点,索引节点存储在一个称为索引节点表(Node Table)中,该表在磁盘格式化时被分配。原创 2012-02-16 14:26:22 · 622 阅读 · 0 评论 -
Linux目录结构
此处以Red Hat Enterprise4AS为例 1. /bin :bin是“二进制的英文缩写”。在这里存放前面Linux常用的操作命令的执行文件,如“cd mkdir ls”这个目录的内容和/usr/bin里面的内容是一样的,他们都是放置一般用户使用的执行文件2. /boot :这个目录存放操作系统启动时所要用到的程序,如启动grup就会用到/boot/grup子原创 2012-02-16 14:22:35 · 484 阅读 · 0 评论 -
Linux阻塞与非阻塞I/O之poll与select
轮询操作 轮询操作的概念与作用: 使用非阻塞I/O的应用程序通常会使用select()和poll()系统调用查询是否可对设备进行无阻塞的 访问。select()和poll()系统调用最终会引发设备驱动中的poll()函数被执行 应用程序中的轮询编程 应用程序中最广泛用到的BSD UNIX中引入的select()系统调用。原型为:原创 2012-03-27 22:20:05 · 2093 阅读 · 0 评论 -
异步操作之异步通知编程
我们前面介绍了阻塞与非阻塞的相关操作,其中poll()函数提供了较好的解决设备访问的基址,但是如果有了异步通知的整套基址就更加完整了。这次我就和大家一起来探讨一下Linux驱动开发中的异步操作 异步操作的概念与作用: 概念:一旦设备准备就绪,则主动通知应用程序,这样应用程序就不需要查询设备状态了 ,这一点与硬件上的"中断"概念非常相似 在原理上一个进程收到一原创 2012-03-29 20:35:51 · 883 阅读 · 0 评论 -
Linux异步IO操作
Linux异步IOLinux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠。可移植操作系统接口(P转载 2012-03-30 15:35:26 · 16842 阅读 · 3 评论 -
异步I/O之用户空间
Linux2.6异步I/O AIO的基本思想: 允许进程发起很多I/O操作,而不用阻塞或等待任何操作完成,稍后或在 接收到I/O操作完成通知时,进程可以检索I/O操作结果 在异步非阻塞I/O中,我们可以同时发起多个传输操作,这需要每个传输操作都有唯一的上下文 ,这样我们才能在他们完成时区分到底是哪个传输操作完成了,这个 工作可以通过aiocb结构体进行原创 2012-03-30 17:34:24 · 3824 阅读 · 0 评论 -
linux字符设备驱动简介
Linux字符设备驱动用到的结构体cdev:既然要编写字符设备驱动,根据编程思想,需要把字符设备给抽象出来,在Linux2.6内核中,使用cdev结构体描述一个字符设备struct cdev{struct koject kobj;/*内嵌kobject对象*/struct module *owner;/*所属模块(详细请见我的“内核对象简介”)*/str原创 2012-03-15 12:55:54 · 1036 阅读 · 0 评论 -
Linux内核对象概念简介
最近研究Linux驱动开发,一直苦于一个词汇"内核对象",何为内核对象,现在就带大家一起来探讨一下Kobject是Linux2.6内核中引入的,用来表示驱动模型的核心对象机制:kobject将dentry(表示文件系统中的一个目录项)作为一个字段,这样就可以方便的kobject映射到一个dentry上,也就是说kobject与/sys下的任何一个目录或文件对应起来,形成与sysfs原创 2012-03-15 12:01:12 · 3196 阅读 · 0 评论 -
linux中两种主要的设备文件系统
1.devfs设备文件系统 起源:Linux2.4内核引入 优点:(1)可以通过程序在设备初始化时在/dev目录下创建设备文件,卸载时删除 (2)设备程序可以指定设备名、所有者和权限位,并且用户空间程序可以修改它们 (3)不再需要为设备驱动程序分配主设备号以及处理次设备号,程序中通过register_chrdev()传递0,以获取可用的主设备号(在2.6内核中常使用regi原创 2012-03-15 10:51:10 · 3307 阅读 · 1 评论 -
Linux中断处理驱动程序编写
本章节我们一起来探讨一下Linux中的中断中断与定时器:中断的概念:指CPU在执行过程中,出现某些突发事件急待处理,CPU暂停执行当前程序,转去处理突发事件,处理完后CPU又返回原程序被中断的位置继续执行中断的分类:内部中断和外部中断内部中断:中断源来自CPU内部(软件中断指令、溢出、触发错误等)外部中断:中断源来自CPU外部,由外设提出请求屏蔽原创 2012-04-02 18:18:25 · 19591 阅读 · 4 评论 -
用中的linux驱动 platform_device
原文出自:http://blog.youkuaiyun.com/ghostyu/article/details/6908805一个现实的linux设备和驱动通常要挂接在一种总线上,像pci,usb,iic,spi等都是总线结构,这当然不是问题,但是嵌入式系统中,Soc系统集成的独立外设控制器,挂接在soc内存空间的外设等却不依附于此类总线。基于这个背景,linux发明了一种虚拟总线:platfor转载 2012-04-05 22:26:54 · 6612 阅读 · 0 评论 -
Linux驱动之并发与竞态
并发控制与竞态: 并发是指多个单元同时、并行被执行,而并发执行单元对共享资源的访问 很容易导致竞态。 竞态的解释: 假设有一个设备,执行单元A对其写入3000个字符'a'而另一个执行单元B对 其写入4000个'b',第三个执行单元C读取globalmem的所有字符,如果执行单元A 、B对于设备的写入操作同时发生,此时就会造成竞态 竞争状态的分类:原创 2012-03-20 17:43:31 · 2370 阅读 · 0 评论 -
Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意...转载 2018-03-25 10:43:34 · 4858 阅读 · 0 评论