linux设备驱动程序
文章平均质量分 73
lsnail
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
s3c6410的UART设备驱动(5)
原文地址:s3c6410的UART设备驱动(5)作者:晃煽褐疟犯 s3c6410的UART设备驱动(1)的链接s3c6410的UART设备驱动(2)的链接s3c6410的UART设备驱动(3)的链接地址s3c6410的UART设备驱动(4)的链接地址上一篇中说到了这个函数,源码如下:static ints3c6400_serial_probe(struct platform_de转载 2014-01-26 16:03:11 · 543 阅读 · 0 评论 -
arm-vfp-linux-gnu交叉编译工具安…
将tc-nxp-lnx-armvfp-4.3.2-1.i386.rpm复制到主机,执行 sudo rpm -ivh tc-nxp-lnx-armvfp-4.3.2-1.i386.rpm交叉编译工具被安装到/opt/nxp目录下在命令行中输入gedit ~/.bash_profile在PATH=$PATH:$HOME/bin:后添加/opt/nxp/gcc-4.3.2-glibc-2.7/b原创 2014-01-26 16:01:58 · 799 阅读 · 0 评论 -
Linux内核中的likely()与unlikely(…
在2.6内核中,随处可见likely()与unlikely(),下面就来分析一下他们的区别。首先要明确一点:if(likely(value))等价于if(value);if(unlikely(value))也等价于if(value),也就是说从阅读和理解代码的角度来看,likely()与unlikely()是一样的。在2.6.28内核中,这两个宏的定义如下:#define likely(原创 2014-01-26 16:01:56 · 750 阅读 · 0 评论 -
get_user() ,put_user(),copy_to_u…
get_user(),put_user()的作用:复制的内存是简单类型,如char,int,long等,则可以使用简单的put_user()和get_user()copy_from_user()和copy_to_user()函数的作用:由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成内核空间到用户空间的复制,函数copy_from_user()完原创 2014-01-26 16:01:54 · 710 阅读 · 0 评论 -
(安装cuteftp)Ubuntu安装FTP服务…
我这次是为了用cuteftp软件来访问ubuntu,要能访问必须得开启ftp服务。cuteftp的下载可以下载新春版,不用去注册。 1、安装vsftpdsudo apt-get install vsftpd安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。默认设置下匿名用户可以下载,但不能写入或是上传2、设置原创 2014-01-26 16:01:52 · 855 阅读 · 0 评论 -
try_module_get和module_put
模块在被使用时,是不允许被卸载的。 2.4内核中,模块自身通过MOD_INC_USE_COUNT, MOD_DEC_USE_COUNT宏来管理自己被使用的计数。 2.6内核提供了更健壮、灵活的模块计数管理接口try_module_get(&module),module_put(&module)取代2.4中的模块使用计数管理宏;模块的使用计数不必由自身管理,而且在管理模块使用计数时原创 2014-01-26 16:01:49 · 549 阅读 · 0 评论 -
linux显示文本命令大全(cat/tac/mo…
1、more命令2、cat命令3、tac命令,倒序显示4、head命令,可以指定显示那些内容5、tali命令,可以指定显示那些内容6、less 与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页!1)more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比;# more /etc/pr原创 2014-01-26 16:01:47 · 819 阅读 · 0 评论 -
Linux内核中的等待队列
Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队原创 2014-01-26 16:01:44 · 622 阅读 · 0 评论 -
init_waitqueue_head()
原文地址:init_waitqueue_head()作者:清清init_waitqueue_head() --初始化等待队列头init_completion() -->init_waitqueue_head()初始化等待队列头(wait_queue_head_t):将wait_queue_head_t.task_list域中的两个指针指向其自身(wait_queue_head_t.t转载 2014-01-26 16:01:41 · 3829 阅读 · 0 评论 -
platform 总线下驱动的开发步骤是
从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用platform_driver 进行注册。 Linuxplatform driver 机制和传统的device driver机制(即:通过 driver_r原创 2014-01-26 16:01:38 · 808 阅读 · 0 评论 -
LED驱动,自动创建设备节点 - 嵌入…
http://lttian1068.blog.163.com/blog/static/132150608200911863225866/?fromdm&isFromSearchEngine=yes下面是我写的LED简单驱动代码,Arm平台(lpc3250)如下实现功能:1>把代码编译后,添加到内核模块使LED灭10秒,然后亮10秒2>在/dev目录自动挂载LED设备节点,可以“Echo "1原创 2014-01-26 16:01:36 · 701 阅读 · 0 评论 -
转载:LINUX字符设备驱动程序实例-…
看到驱动程序的实例就转了,谢谢作者pzhsunxu的分享!转载地址:http://blog.youkuaiyun.com/pzhsunxu/article/details/7169800通过UBUNTU10.10测试该驱动程序的,系统内核为linux-2.6.35-22(可使用uname -r命令来查看当前内核的版本号)下载安装LINUX内核,需要下载和本机一样版本的内核源码。1,安装编译内核所需要原创 2014-01-26 16:02:10 · 741 阅读 · 0 评论 -
linux 驱动MINI6410_LEDS编译进内…
内核代码版本 linux-2.6.38工具链:arm-linux-gcc驱动代码: led.c编译进内核: 将led.c放到内核目录的 usr/src/linux-2.6.38/drivers/char/下修改char目录下的Kconfig文件和Makefile文件Kconfig: 下添加config MINI6410_LEDS tristate "LED Suppo原创 2014-01-26 16:02:20 · 683 阅读 · 0 评论 -
linux2.4和2.6在注册设备驱动函数…
2.4内核注册驱动要用:int register_chrdev (unsigned int major,const char *name, struct file_operations*fops);2.4内核注销驱动要用:int unregister_chrdev( unsigned int major,const char *name );2.4内核驱动注册完后,要用以下代码创建设备文原创 2014-01-26 16:02:52 · 829 阅读 · 0 评论 -
设备,驱动,内核,应用程序之间的…
Linux设备驱动程序的代码结构大致可以分为如下几个部分:一个最简单字符驱动程序,由下面7个函数和1个结构体就可组成。Open(),Release,()Write(),Read()Ioctl()Init(),Exit()Struct file_operation原创 2014-01-26 16:01:16 · 653 阅读 · 0 评论 -
Ubuntu 安装JDK方法分享
原文地址:安装JDK方法分享">Ubuntu 安装JDK方法分享作者:寒灵1.命令: sudo sh jdk-6u25-linux-i586.bin2、设置环境变量sudo gedit /etc/environment添加:export JAVA_HOME=/home/jdk1.6.0_25export JRE_Home=/home/jdk1.6.0_25/jre export转载 2014-01-26 16:00:25 · 566 阅读 · 0 评论 -
第一个小程序在开发板上运行成功he…
1、编写Helloworld在/usr/local/arm/real2410下建立hello目录cd /usr/local/arm/real2410mkdir hello编写如下代码,保存在hello目录下,文件名为hello.c#include int main(void){printf(“Helloworld”) ;return 0;}2、编译helloworld原创 2014-01-26 15:58:54 · 999 阅读 · 0 评论 -
linux面试题参考答案三
66.Linux 文件名的长度不得超过 C 个字符。 A 64 B 128 C 256 D512 67.进程有三种状态: C 。 A 准备态、执行态和退出态 B 精确态、模糊态和随机态 C 运行态、就绪态和等待态 D 手工态、自动态和自由态 68. 从后台启动进程,应在命令的结尾加上符号 A 。 A & B @ C # D $ 69. B 不是邮件系统的组成部分。原创 2014-01-26 15:58:48 · 3121 阅读 · 0 评论 -
建立arm-linux-gcc交叉编译环境
建立arm-linux-gcc交叉编译环境 一。准备工作安装linux环境(我的是RED_HAT9 linux2.2的内核) 下载交叉编译文件包 cross-2.95.3.tar.bz2 二。建立目录1.建立交叉编译环境目录 /usr/local/arm/(一定要在这个目录下否则会报错) 三。安装交叉编译环境1.复制安装包到目录下cp/mnt/hgfs/share/cross原创 2014-01-26 15:58:44 · 909 阅读 · 0 评论 -
Red Hat Linux 9安装GCC(一)
Red Hat Linux 9安装GCC(一)说来惭愧,学习嵌入式系统设计与应用已快一学期了,竟然还未用GCC编译个程序,更不用说使用其他编程环境了,其原因在于我的系统上没有GCC,想装一个可是不知道怎样个装法,Google了一下,发现基本上都是介绍系统上已有GCC的那种安装源码形式的GCC,我系统上本来就没有gcc,所以不能安装源码形式的gcc,那怎样解决这种状况呢? 解决方法有两原创 2014-01-26 15:58:29 · 945 阅读 · 0 评论 -
s3c6410的UART设备驱动(5)
原文地址:s3c6410的UART设备驱动(5)作者:晃煽褐疟犯 s3c6410的UART设备驱动(1)的链接s3c6410的UART设备驱动(2)的链接s3c6410的UART设备驱动(3)的链接地址s3c6410的UART设备驱动(4)的链接地址上一篇中说到了这个函数,源码如下:static ints3c6400_serial_probe(struct platform_de转载 2014-01-26 16:03:09 · 638 阅读 · 0 评论 -
Linux设备驱动开发学习笔录-(init…
2009-09-18 09:27:19| 分类: ARM+Linux底层驱 | 标签: |字号大中小 订阅 转:: http://lwj8666.blog.163.com/blog/static/18966939200932864331567/ 之前的我还不知道该如何写init函数和exit函数,所以就尝试着,借鉴一些已有的驱动原创 2014-01-26 16:02:42 · 779 阅读 · 0 评论 -
linux—select详解(转载)
原文地址:linux—select详解(转载)作者:pusguipi<!--@page { margin: 2cm }P { margin-bottom:0.21cm }-->select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,通过socket函数的声明就明白了:转载 2014-01-26 16:02:40 · 548 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程…
手把手教你把Vim改装成一个IDE编程环境(图文)By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.youkuaiyun.com/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商业目的下对原创 2014-01-26 16:01:33 · 1178 阅读 · 0 评论 -
自旋锁 -转载http://www.cnblogs.c…
关于锁,最常使用的便是:自旋锁与信号量。先贴些实例,来点感性的认识。-- include/linux/spinlock_types.h --typedef struct { raw_spinlock_t raw_lock;#ifdef CONFIG_GENERIC_LOCKBREAK unsigned intbreak_lock;#endif#ifdef CONFIG_D原创 2014-01-26 16:01:29 · 642 阅读 · 0 评论 -
open(/dev/ietctl, O_RDWR) 控制…
open函数,open函数用来打开一个设备,他返回的是一个整型变量,如果这个值等于-1,说明打开文件出现错误,如果为大于0的值,那么这个值代表的就是文件描述符。一般的写法是if((fd=open("/dev/ttys0",O_RDWR| O_NOCTTY | O_NDELAY)perror("open");}这个事常用的一种用法fd是设备描述符,linux在操作硬件设备时,屏蔽了硬件的基本原创 2014-01-26 16:01:26 · 682 阅读 · 0 评论 -
写得蛮好的linux学习笔记 linux目…
/ 根目录/bin 常用的命令binary file 的目錄/boot 存放系统启动时必须读取的档案,包括核心(kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk/dev 系统周边设备 /etc原创 2014-01-26 15:59:34 · 479 阅读 · 0 评论 -
搭建开发板—Linux系统的通信环境网…
主机是WinXP,安装了虚拟机,并在虚拟机中安装了Red Hat9.在虚拟机Linux下通过Minicom与开发板建立通讯关系。其中机器的ip设置参考网络介绍如下:虚拟机采用桥接方式虚拟机中Linux的ip: 192.168.253.11 Windows下VMnet1的ip:192.168.253.12 Windows主机的ip: 192.168原创 2014-01-26 15:58:51 · 802 阅读 · 0 评论 -
linux面试题参考答案二
二.单项选择题: 1. 下面的网络协议中,面向连接的的协议是: A 。 A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议 2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备。 A defaults B sw C rw和ro D noauto 3. Linux文件权限一共10位长度,分成四段,第三段表示的内容原创 2014-01-26 15:58:46 · 2018 阅读 · 0 评论 -
linux面试题参考答案一
一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。 4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块和数据存储块。 5. 链接分为: 硬链接 和 符号链接 。 6. 超级块包含了i节点表 和 空闲块原创 2014-01-26 15:58:41 · 733 阅读 · 0 评论 -
Emacs命令
0. M-! 执行shell命令1. 直接在终端中运行emacsemacs -nw2. C-X 表示按住CTRL键, 然后按X, 再把CTRL, X一起放开.3. M-X 等于先按 ESC键, 接著按 X键.4. M-X 等于alt键.5. C-X或 M-X的X没有大小写分别.6. 超过两个以上的按键命令,Emacs会在萤幕最下面一行显示你按过什么.这一行叫作mini buffer原创 2014-01-26 15:58:36 · 561 阅读 · 0 评论 -
Linux下GCC源码方式安装过程
首先呢,就是下源码了,http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/到这儿下一个,我们实验要求是下载这个,所以我就用的它,完全可以下一个最新的玩玩嘛,下完后解压,tar-xvjfgcc-4.1.1.tar.bz2.默认会生成一个gcc-4.1.1的目录。到里面找到install文件夹下打开index.html这上面有详细的安装过程。不过是英文的,它分为五个步骤。第原创 2014-01-26 15:58:34 · 783 阅读 · 0 评论 -
Red Hat Linux 9安装GCC(二)
Red Hat Linux 9安装GCC(二)1 如何在linux中安装gcc编译器? 目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。本文以在RedhatLinux上安装GCC4.1.0为例,介绍了GCC的安装过程。 安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC原创 2014-01-26 15:58:32 · 723 阅读 · 0 评论 -
linux解压缩命令
linux解压缩命令 收 藏tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到原创 2014-01-26 15:58:27 · 557 阅读 · 0 评论 -
Linux 常用命令:
Linux的特点:1.免费 开源2.可移植性,设备平台无关性3.强大的网络功能4.POSIX(可移植操作系统接口)标准5.多任务,多用户操作系统也这是由于这些优点 所以常被应用于 企业服务应用(sina,baidu...)嵌入式系统(ARM,MIPS,PowerPC...)以及个人桌面应用(redhat Ubuntu ...)Linux 常用命令:(我只列出了常用的命令和通常原创 2014-01-26 15:58:21 · 855 阅读 · 0 评论 -
编译器GCC使用
编译器GCC使用1.GCC概述:GCC(GNU C Compile)经过长时间已经发展成是支持C语言C++,java等众多语言的编译器gcc的编译流程分为四步:1.预处理(pre-processing), 2.编译(Compiling),3.汇编(assembling). 4.链接(linking)gcc 根据不同的后缀对他们程序进行分别处理,.c为C原始程序、.C/.cpp为C++语言原创 2014-01-26 15:58:19 · 565 阅读 · 0 评论 -
Linux下文件夹部署详解
Linux下文件夹部署详解linux下的文件结构,看看每个文件夹都是干吗用的/bin二进制可执行命令/dev 设备特殊文件/etc 系统管理和配置文件/etc/rc.d 启动的配置文件和脚本/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件/s原创 2014-01-26 16:00:13 · 1039 阅读 · 0 评论 -
linux下eclipse的安装
如何在Linux使用Eclipse + CDT开发C/C++程序?2011-05-25 23:20A. 为什么要在Linux使用Eclipse开发C/C++程序? Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发。传统在Linux下开发程序,是在文字模式下,利用vi等文字编辑器撰写C/C++程序存盘后,在Com原创 2014-01-26 16:00:23 · 868 阅读 · 0 评论 -
解析 Linux 内核可装载模块的版本…
作者:王华东,系统工程师, 自由职业者王华东,自由职业者,对 Linux、开放源码感兴趣。 简介: 为保持 Linux内核的稳定与可持续发展,内核在发展过程中引进了可装载模块这一特性。内核可装载模块就是可在内核运行时加载到内核的一组代码。通常 ,我们会在两个版本不同的内核上装载同一模块失败,即使是在两个相邻的补丁级(PatchLevel)版本上。这是因为内核在引入可装载模块的原创 2014-01-26 16:01:23 · 674 阅读 · 0 评论 -
Ubuntu 2.6.38-8内核树建立 加载he…
来源:http://www.linuxidc.com/Linux/2011-07/38615.htm先查看自己OS使用的内核版本root@ubuntu:/#~$ uname-r2.6.38-8-generic 如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版本目录。例如下(我是自己下的)root@ubuntu:/usr/src# lslinux-原创 2014-01-26 16:01:20 · 548 阅读 · 0 评论
分享