
嵌入式linux driver
文章平均质量分 78
SunRise_2016
专业杂工一枚,混迹于IT、产品周边,继续苦逼的做着残品的梦
展开
-
OK6410之ADC驱动程序 混杂设备
参考mini6410 实现 linux adc驱动详解--muge0913版http://blog.youkuaiyun.com/muge0913/article/details/7059241/*之前自己根据裸机程序改的,给ADC寄存器地址,不行*调试了几天,原因是" Unable to handle kernel paging request at virtual address原创 2012-04-03 15:51:57 · 2107 阅读 · 2 评论 -
linux2.6.36内核配置笔记
1、解压飞凌自己的内核linux2.6.36到/home/ok6410中:root@ubuntu:/mnt/hgfs/FORLINX_share/OK6410/Linux-2.6.36# tar zxvf FORLINX_linux-2.6.36.2.tar.gz -C /home/ok6410/2、在/home/ok6410/linux-2.6.36.2-v1.05中,查看配置文件ls原创 2012-09-07 22:42:29 · 2151 阅读 · 0 评论 -
linux开机自启动,去掉“Please press Enter to activate this console“
在s3c6410中自启动Qt应用程序,最先的想法是有/etc/init.d/rcS加入应用程序或者脚本命令就可以实现开机自动运行,不过出现了问题,启动了Qt应用程序,7寸屏幕界面中,如果点击界面会出现界面叠加的情况,也就是当前界面会被破坏,出现原来的底层界面。于是把Qt应用程序放到/etc/profile中自己开机启动的程序,但是不能自启动,需要在超级终端敲回车,"Please press Ent原创 2012-09-13 09:34:11 · 20950 阅读 · 2 评论 -
深入浅出Linux设备驱动之并发控制
在驱动程序中,当多个线程同时访问相同的资源时(驱动程序中的全局变量是一种典型的共享资源),可能会引发"竞态",因此我们必须对共享资源进行并发控制。Linux内核中解决并发控制的最常用方法是自旋锁与信号量(绝大多数时候作为互斥锁使用)。 自旋锁与信号量"类似而不类",类似说的是它们功能上的相似性,"不类"指代它们在本质和实现机理上完全不一样,不属于一类。 自旋锁不会引起调用者睡眠转载 2012-09-14 11:00:04 · 840 阅读 · 0 评论 -
OK6410之蜂鸣器驱动软件分析---PWM定时器
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-09-14 11:31:52 · 3180 阅读 · 2 评论 -
OK6410之蜂鸣器驱动硬件分析---PWM定时器
在OK6410开发板中,蜂鸣器的IO口为GPF15 关于GPF15的GPIO详细参考S3C6410的PDF手册GPF14 [29:28] 00 = Input 01 = Output 10 = PWM TOUT[0] 11 = CLKOUT[0] GPF15 [31:30] 00 = Input 01 = Output 10 = P原创 2012-09-14 11:12:27 · 2561 阅读 · 0 评论 -
OK6410之ADC驱动软件分析---阻塞与非阻塞IO
首先,学习一下设备的阻塞与非阻塞操作: 阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作,被挂起的进程进入sleep 状态,被从调度器的运行队列移走,直到等待的条件被满足。非阻塞操作的进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直到可以进行操作为止。 阻塞从字面上听起来似乎意味着低效率,实则不然。如果设备驱原创 2012-09-15 16:14:45 · 1572 阅读 · 0 评论 -
OK6410之ADC驱动硬件分析---阻塞与非阻塞IO
在OK6410开发板中,有AD CONVERT部分,接口为XDAC_AIN0 在S3C6410的PDF中:The 10-bit/12-bit CMOS ADC (Analog to Digital Converter) is a recycling type device with 8-channel analoginputs. It converts the analog原创 2012-09-15 16:00:34 · 1505 阅读 · 0 评论 -
OK6410矩阵键盘驱动 linux2.6.36
搞了好几天,终于在网络资料的帮助下,实现了4*4的矩阵键盘驱动,参考文档:http://blog.youkuaiyun.com/xyl_nuaa/article/details/7047897 及相关网友评论需要注明一点的是:void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)函数的位置:arch/arm/ma原创 2012-06-02 22:27:01 · 4700 阅读 · 4 评论 -
简单字符设备驱动——LED驱动
驱动程序ledkey_drv.c#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define DEVICE_NAME "ledke原创 2012-08-28 15:34:24 · 1072 阅读 · 0 评论 -
rmmod: chdir(/lib/modules): No such file or directory 解决方法
使用rmmod会出现 rmmod : chdir(/lib/modules): No such file or directory ? 现在的内核模块在插入卸载时都会要转到/lib/modules/内核版本号/ 这个目录里。所以只要建立这个目录并且把要使用的模块.ko文件复制到这个目录就行了。 mkdir -p /lib/modules/$(uname -r原创 2012-08-28 10:39:45 · 2385 阅读 · 0 评论 -
ok6410之linux2.6.36内核添加logo显示
在OK6410板子启动时并没有显示可爱的小企鹅logo,故进行添加显示并修改成自己喜欢的图片。配置内核:make meunconfig Device Drivers ---> Graphics support ---> Support for frame buffer devices --->原创 2012-09-04 16:08:21 · 1414 阅读 · 0 评论 -
OK6410中断按键 混杂设备驱动
平台:交叉工具链arm-linux-gcc 4.3.2 linux2.6.28request_irq的作用是申请使用IRQ并注册中断处理程序。request_irq()函数的原型如下:/* kernel/irq/manage.c */int request_irq(unsigned int irq,irqreturn_t (*handler)(int, vo原创 2012-04-12 22:34:09 · 1821 阅读 · 0 评论 -
OK6410之ADC驱动程序 字符设备驱动
驱动程序:/* * A adc driver as an example of char device drivers * * The initial developer of the original code is Barry Song * . All Rights Reserved. */#include #include #include #in原创 2012-04-03 19:23:13 · 2311 阅读 · 1 评论 -
S3C6410实时时钟RTC 秒字符设备
/*《linux 设备驱动开发详解》驱动程序 */ #include #include #include #include #include #include #include #include #include #include #include #define SECOND_MAJOR 248 /*预设的second的主设备原创 2012-03-31 20:51:39 · 955 阅读 · 0 评论 -
字符设备驱动模块 之 基本通用模块
#include #include #include #include #include #include #include #include #include #include #include #include /* device_create()*/#define ADC_SIZE 0x1000 /*全局内存最大4K字节*/#defi原创 2012-04-02 15:27:37 · 909 阅读 · 0 评论 -
linux内核input子系统解析
linux内核input子系统解析作者:刘洪涛,华清远见嵌入式学院讲师。Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析转载 2012-05-22 15:42:15 · 977 阅读 · 0 评论 -
linux 驱动学习
关于linux 驱动学习,自从上次编写按键中断驱动,发现很多问题,也由此引出很多问题!比如说一个按键驱动的程序,在驱动中,不可能只是单单实现按键响应的功能吧!肯定要考虑资源占用的问题吧,不可能轮询吧,我觉得异步应该是最好的了。外部中断了,在应用程序中,异步通知的意思是,一旦设备就绪,则主动通知应用程序,这样应用程序根本不需要查询设备的状态。最后,还是自己没有实现按键驱动的,最终还是采用内核中使用了原创 2012-05-05 12:15:44 · 995 阅读 · 0 评论 -
实时时钟RTC之hwclock简介
Linux 中更改时间的方法一般使用 date 命令,为了把 S3C6410内部带的时钟与 linux 系统时钟同步,一般使用 hwclock命令,下面是它们的使用方法: (1) date -s 042916352007 #设置时间为 2007-04-29 16:34 (2) hwclock -w #把刚刚设置的时间存入S3C2440 内部的 RTC (3).开机时使用 hwc原创 2012-09-03 19:56:20 · 1810 阅读 · 0 评论 -
修改内核启动logo的方法
转】修改内核启动logo的方法 内核默认的logo图片路径为drivers/video/logo/logo_linux_clut224.ppm,所以首先先修改目标:覆盖原来的logo_linux_clut224.ppm文件,若有logo_linux_clut224.o和logo_linux_clut224.c文件则一并删除,这样才能在再次编译时使用新的logo_linux_转载 2012-09-03 22:21:37 · 1081 阅读 · 0 评论 -
嵌入式linux上Qt键盘输入实现拼音输入法
在上一篇《OK6410矩阵键盘驱动 linux2.6.36》http://blog.youkuaiyun.com/sun_rise2011/article/details/7626818 中已经详细给出了自定义矩阵键盘的驱动,主要是从内核中分离开来,作为单独的驱动模块,再用insmodsamsung_keypad.ko加载驱动就可以了。按下时,就会出现调试语句,说明驱动能够正常运行。 但原创 2012-12-12 09:36:44 · 7899 阅读 · 2 评论