linux设备驱动(嵌入式高级)
L--黑色柳丁--R
从事嵌入式啊 喜欢IT
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
“手把手教你学linux驱动开发”OK6410系列之01---模块编程
一、实验环境 开发机环境 操作系统:ubuntu 9.10 交叉编译环境:arm-linux-gcc 4.2.2 ,安装位置 /usr/local/arm/4.3.2/ 6410板子内核源码路径:/work/linux-2.6.36.2-v1.05/ 目标板环境:OK6410-A linu转载 2012-12-13 13:19:00 · 345 阅读 · 0 评论 -
设备驱动之二----字符设备驱动
一:字符设备开发的基本步骤 1.确定主设备号和次设备号主设备和号是内核识别一类设备的标识。整数(占12位)一般1-255次设备号由内核使用,用于正确确定设备文件所指的设备。整数(20位)一般0-255设备编号的内部表示dev_t类型(32位)用来保存设备编号(包括主设备号(12位)和次设备号(20位))从dev_t获得主设备号和次设备号:MAJOR(d原创 2012-12-13 12:32:15 · 328 阅读 · 0 评论 -
设备驱动之三----几个关键函数的实现
打开int open(struct inode *inode,struct file *filp);模块使用计数加1识别次设备号硬件操作检查设备相关错误(诸如设备未就绪或类似的硬件问题)如果设备是首次打开,则对其初始化如果有中断操作,申请中断处理程序关闭int release(struct inode *inode,struct file *filp);模块使用计数减1释放由o原创 2012-12-13 12:34:06 · 385 阅读 · 0 评论 -
字符设备驱动开发流程(总结)
准备工作:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include//#include#原创 2012-12-13 19:53:44 · 1009 阅读 · 0 评论 -
Linux头文件中s3c2410 GPIO的宏
一、GPIO寄存器定义1.#define GPCON(x) __REG2(0x56000000, (x) * 0x10)这句是定义2410的GPIO的控制寄存器,注意:__REG2的参数是寄存器的物理地址,这个物理地址经_REG2宏转换为虚拟地址,对照2410的手册可以得到一下对应关系:GPCON(1) ------ PORT A 0x56000000GPCON(转载 2012-12-13 13:29:39 · 615 阅读 · 0 评论 -
ARM11、OK6410_Linux、系统移植 和 驱动加载
今天可以说是很开心的一天,因为我终于完成了从一个基础内核到 ARM嵌入式内核的学习和移植工作,加上自己的uboot和根文件系统,呵呵。虽然是菜鸟的成果,但我依旧很开心,从我发表那一篇ARM_Linux 项目拉力正式开始的一周内,我还算是有了一个好的开始了,我做到了,呵呵。 我的开发环境是VMware 虚拟机 Ubuntu10.10 ,飞凌OK6410开发板,最终移植的内核为L转载 2012-12-13 13:27:02 · 546 阅读 · 0 评论 -
“手把手教你学linux驱动开发”OK6410系列之03---LED字符设备驱动
上一篇文章我们介绍了字符设备驱动程序的框架,本篇文章我们将操作真实的硬件---LED。 作者:沧海猎人 出处:http://blog.youkuaiyun.com/embedded_hunter 转载请注明出处 嵌入式技术交流QQ群:179012822 一、实验环境 开发机环境 操作系统:ubuntu 9.10转载 2012-12-13 13:20:44 · 457 阅读 · 0 评论 -
设备驱动之六---- LED驱动GPIO相关头文件简要分析
在简要介绍了led驱动相关头文件的基础上(参考:点击打开链接),可以发现这些头文件里面包含了很多gpio的宏定义和gpio的操作函数。利用这些宏定义和操作函数,我们就能够很好地控制gpio以达到我们的目的。GPIO相关的的头文件包括、和。下面是对这些头文件进行简单的分析,如有不正确,希望留言指正:一、头文件:[cpp] view plaincopy转载 2012-12-13 13:06:08 · 935 阅读 · 0 评论 -
设备驱动之五----LED驱动程序相关头文件简单介绍
在解读OK6410官方提供的LED驱动程序源码的过程中,发现很多没见过的宏和函数。例如S3C64XX_GPM(0)、S3C64XX_GPM_OUTPUT(0)、__raw_writel(tmp,S3C64XX_GPMPUD)、__raw_writel(tmp,S3C64XX_GPMCON)等。而这些都包含在一些头文件里面。另一方面,我们自己动手编写LED的驱动程序也必须知道相关的头文件有哪些,对我转载 2012-12-13 13:03:46 · 715 阅读 · 0 评论 -
设备驱动之一---Helloworld
helloworl.c#include#includeMODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk("hello world"); return 0;}static void hello_exit(void){ printk("exit the he原创 2012-12-13 12:30:10 · 340 阅读 · 0 评论 -
“手把手教你学linux驱动开发”OK6410系列之02---虚拟字符设备
上一篇文章我们介绍了如何在linux下编写一个模块,并加载到内核空间。通过实验我们了解了大体的流程以及模块的工作原理。本篇文章我们将介绍如何编写一个虚拟的字符设备驱动程序。 之所以称之为虚拟字符设备驱动程序,主要原因是该驱动程序并没有真正操作外部设备,只是一个字符设备驱动程序框架,这为后面我们开发正是设备的驱动程序(LED、蜂鸣器等)奠定了基础。 作者:沧海转载 2012-12-13 13:19:48 · 361 阅读 · 0 评论 -
设备驱动之四----BEEP驱动
linux-2.6.32.内核重要文件目录:linux-2.6.32.2/arch/arm/mach-s3c2410/include/mach/regs-gpio.hlinux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.clinux-2.6.32.2/linux/asm-generic/io.hlinux-2.6.32.2/include/linux/wait原创 2012-12-13 12:36:50 · 1172 阅读 · 0 评论 -
设备驱动之七----s3c6410 GPIO驱动总结
上一节对GPIO相关的三个主要头文件进行了简单分析(见http://blog.youkuaiyun.com/qingyu2431/article/details/6904869),在此基础上对GPIO的操作进行简单的总结:1、查看gpio状态:头文件中int gpio_request(unsigned gpio, const char *label); ,该函数的功能是通过查看该gpio保存的记录标志转载 2012-12-13 13:07:42 · 433 阅读 · 0 评论
分享