E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux驱动学习
Linux驱动学习
(编写一个最简单的模块)
在Linux中想做驱动开发,那么一定要先熟悉module的使用和编写一、什么是module从名字上看就是模块的意思,我个人的理解就是一个一个的小程序,可以进行动态的安装和卸载,而在这里面就实现一些功能,其中驱动就是在module中。二、编写一个最简单的module编写一个最简单的module只需要两个文件即可:Makefile和xxx.c(1)Makefile1#ubuntu的内核源码树,如果要编
小清奈
·
2017-08-09 15:00
嵌入式Linux应用学习(一)------QT控制LED设备硬件
Windows下QTCreator版本为5.3.2Linux下QTCreator版本为5.6首先,在Windows下编译好应用程序:控制LED,当然要有LED小灯的驱动了,在这里:嵌入式
Linux驱动学习
笔记
风筝丶
·
2017-07-31 00:00
Linux应用
Linux驱动学习
—— 在/sys下面创建目录示例
有时我们需要在/sys下面创建一些目录,下面给出了一个示例。在加载驱动模块后,在/sys下面会创建一个名为sysfs_demo的目录,并在其中在创建几个文件和目录。[root@tiny4412mnt]#ls-R/sys/sysfs_demo/ /sys/sysfs_demo/: node_onenode_twosysfs_demo_2 /sys/sysfs_demo/sysfs_demo
摩斯电码
·
2016-12-24 15:00
linux驱动开发的经典书籍
0推荐
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
gtkknd
·
2016-11-07 14:07
linux
编程
Linux驱动学习
笔记之一——高精度定时器2
定时器初始化之后,进行设定定时器的到期时间,并启动定时器,函数声明代码hrtimer_start(structhrtimer*timer,ktime_ttim,constenumhrtimer_modemode),timer代表将要被添加的定时器,tim代表到期时间,mode代表定时器模式。如果启动成功,则返回0,否则返回1。如果要取消一个设置好的定时器,可以使用inthrtimer_cancel
chinazhangzhong123
·
2016-06-07 13:20
Linux驱动学习
笔记(3)字符设备驱动
今天对程序进行编译,结果出现make-C/lib/modules/3.3.2-6.fc16.x86_64/buildM=/home/jqzeng/workSpace/ldd3/ldd3-samples-1.0.0/scullLDDINC=/home/jqzeng/workSpace/ldd3/ldd3-samples-1.0.0/scull/../includemodulesmake[1]:Ent
u014353386
·
2016-04-01 01:00
Linux驱动学习
步骤
1.学会写简单的makefile2.编一应用程序,可以用makefile跑起来3.学会写驱动的makefile4.写一简单char驱动,makefile编译通过,可以insmod,lsmod,rmmod.在驱动的init函数里打印helloworld,insmod后应该能够通过dmesg看到输出。5.写一完整驱动,加上read,write,ioctl,polling等各种函数的驱动实现。在ioct
sonn日向
·
2016-01-06 18:00
Makefile分析基础
http://blog.csdn.net/ghostyu/article/details/6866863 在我前一篇写的【
linux驱动学习
(一)Makefile基础】中,Makefile写的中规中矩
·
2015-11-13 15:28
makefile
Linux驱动学习
记录
[转] 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内核驱动注册完后,要用以下代码创建
·
2015-11-13 02:25
linux
【
Linux驱动学习
】SD卡规范学习
摘要: 学习SD卡的相关规范,包括定义,硬件特性,数据传输,命令系统等。不涉及代码。 文章针对Linux驱动开发而写,以助于理解SD卡驱动,不会涉及过多硬件内容。 纲要: 1. SD卡介绍 2. SD卡硬件规范 3. SD卡指令规范 4. SD卡寄存器 1. SD卡介绍 1.1 各类型储存卡/接口 首先了解一下我们在SD卡驱动学习中会碰到
·
2015-11-12 09:16
linux
树莓派
linux驱动学习
之hello world
最近想学习一下linux驱动,看了一些书和教学视频,大概了解了一下,不过要想深入,肯定需要实践。手上有几块linux的板子,最终选择了树莓派作为我的实验平台,资料比较丰富,接口也比较简单。 程序员的入门经典当然就是hello world程序了,我的第一个实验就是要搭建实验环境和工具链,
·
2015-11-08 14:40
world
hello
linux驱动学习
(2)-beep驱动
今天拿beep程序练手,主要学习linux driver的开发流程和内核编程相关的重要接口。 弄完之后就要写uart驱动了。 参考书籍:《华清远见 linux驱动开发详解》 开发板:tq2440 下面是tq2440的蜂鸣器电路的电路图: 核心板: 可知,通过对TOUT0/GPB0进行编程可控制蜂鸣器 而对于s3c2440的gpio来说,只需要设置config
·
2015-11-02 11:56
linux
linux驱动学习
(1)-环境及hello world程序
2011年4月19日 20:30 驱动开发使用的是tq2440的开发板,linux内核版本为linux-2.6.30.4。 首先解压linux源码,拷贝配置文件cp -f config_EmbedSky_W35_256MB .config (否则会出现version magic '2.6.30.4 mod_unload modversions ARMv5 ' shou
·
2015-11-02 11:55
Hello world
linux驱动学习
(4)--阻塞和非阻塞
直接从blog上摘一段下来了。 以串口的应用程序为例: 阻塞地都取串口一个字符 非阻塞地都取串口一个字符 char buf; fd = open("/dev/ttys",O_RDWR); .. .. res = read(fd,&buf,1); //当串口上有
·
2015-11-01 14:44
linux
linux驱动学习
(3)--同步、信号量和自旋锁
在驱动程序中,当多个线程同时访问相同的资源时(驱动程序中的全局变量是一种典型的共享资源) ,可能会引发“竞态” ,因此我们必须对共享资源进行并发控制。Linux内核中解决并发控制的最常用方法是自旋锁与信号量(绝大多数时候作为互斥锁使用) 。 自旋锁与信号量“类似而不类” ,类似说的是它们功能上的相似性, “不类”指代它们在本质和实现机理上完全不一样,不属于一类。 自旋锁不会引起调用者睡眠,
·
2015-11-01 14:44
linux
linux驱动开发的经典书籍
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver 3rd Edition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
·
2015-10-30 11:54
linux
Linux内核及驱动、 ARM体系结构 学习视频分享
ARM体系架构与编程 优酷上的视频 http://v.youku.com/v_playlist/f4148307o1p0.html
Linux驱动学习
方法和关键技术 http://v.youku.com
·
2015-10-21 11:29
linux
linux驱动学习
1---Hello World模块
目的:主要用于熟悉驱动程序编写及调试基本流程。1.准备 操作系统:ubuntu12.04LTS2.源码#include #include staticinthello_init(void) { pr_info("Hello,World.\n"); return0; } staticvoidhello_exit(void) { pr_info("Goodbye,cruelword\
finewind
·
2015-08-02 11:00
Linux驱动学习
-----Ubuntu12.04构建Linux源码树
LDD3中第二章:构造和运行模块中讲到,要想为2.6.x及以上版本构造模块,还必须在自己的系统中配置并构造好内核树。先前的版本只要求有一套内核头文件就够了。因为2.6内核的模块要和内核源代码树中的目标文件链接,通过这种方式可得到一个更加健壮的模块装载器,但也要这些目标文件存在于内核目录树中。这样,读者首先应该准备好一个内核源代码(可以是来自kernel.org的纯源码,也可以是发行版的内核,不过推
csdnJACK_
·
2015-07-29 15:15
Linux驱动学习
-----Ubuntu12.04构建Linux源码树
LDD3中第二章:构造和运行模块中讲到,要想为2.6.x及以上版本构造模块,还必须在自己的系统中配置并构造好内核树。先前的版本只要求有一套内核头文件就够了。因为2.6内核的模块要和内核源代码树中的目标文件链接,通过这种方式可得到一个更加健壮的模块装载器,但也要这些目标文件存在于内核目录树中。这样,读者首先应该准备好一个内核源代码(可以是来自kernel.org的纯源码,也可以是发行版的内核,不过推
csdnJACK_
·
2015-07-29 15:15
树莓派
linux驱动学习
之hello world
http://blog.csdn.net/hcx25909/article/details/16860055最近想学习一下linux驱动,看了一些书和教学视频,大概了解了一下,不过要想深入,肯定需要实践。手上有几块linux的板子,最终选择了树莓派作为我的实验平台,资料比较丰富,接口也比较简单。 程序员的入门经典当然就是helloworld程序了,我的第一个实验就是要搭建实验环境和工具链,通
zdf511391565
·
2015-01-21 15:00
驱动学习之模块编程(转)
原文出处:http://www.cnblogs.com/xiaoya901109/archive/2012/10/30/2746596.html
linux驱动学习
----模块编程写在前面的话:linux
wsclinux
·
2014-12-02 23:00
linux驱动学习
:1.内核树的建立
首先,为什么要建立内核树呢?因为我们知道驱动可以编译进内核进行执行,也可以以模块的方式加载到内核里进行执行。编写驱动程序在2.6版本的内核与2.4版本的内核有所不同,2.4版本的内核只需要有一套内核头文件就够了,而2.6的内核的模块则要和内核源代码树中的目标文件相连接,这样,就需要一个建立一个内核树,来提供上面这些目标文件。所以首先我们要建立一个内核源代码树,而这个内核源代码树的建立有两种方式:一
David_xtd
·
2014-08-27 18:00
linux驱动
ARM-
linux驱动学习
:led驱动程序编写练习(2014-8-22)
LED驱动程序:led_dev.c#include#include#include#include#includestaticvolatileunsignedint*GPJ2CON,*GPJ2DAT;staticintmajor=0;staticintled_open(structinode*pi,structfile*pf)//主要用于初始化{printk("leddriverfileopen.
我是黄老邪
·
2014-08-22 20:16
ARM学习笔记
ARM-
linux驱动学习
:led驱动程序编写练习(2014-8-22)
LED驱动程序:led_dev.c#include #include #include #include #include staticvolatileunsignedint*GPJ2CON,*GPJ2DAT; staticintmajor=0; staticintled_open(structinode*pi,structfile*pf)//主要用于初始化 { printk("leddriv
dezhihuang
·
2014-08-22 20:00
ARM-LINUX驱动学习
linux驱动学习
之内核线程分析
内核线程和普通的进程间的区别在于内核线程没有独立的地址空间,它只在内核空间运行,从来不切换到用户空间去;并且和普通进程一样,可以被调度,也可以被抢占。 一线程的创建[plain]viewplaincopyprint? struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char
Wilsonboliu
·
2014-03-27 09:00
linux驱动开发的经典书籍
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
u010406724
·
2014-03-18 09:00
unix
设计
经验
嵌入式系统
Linux内核线程 kthread_run函数-使用 理解学习
可以参考另外篇博客:
linux驱动学习
之内核线程分析http://blog.csdn.net/fontlose/article/details/8291674以下转自:http://www.linuxidc.com
huofeng_2008
·
2014-03-13 16:41
linux
内核
Linux驱动学习
之:WDT(watchdog)驱动
第一部分:WDT驱动原理WDT在内核中通常都实现为misc驱动。WDT介绍一个WatchdogTimer(WDT)是一个在软件出错的时候可以复位计算机系统的硬件电路。通常一个用户空间守护进程会在正常的时间间隔内通过/dev/watchdog特殊设备文件来通知内核的watchdog驱动,用户空间仍然正常。当这样的一个通知发生时,驱动通常会告诉硬件watchdog一切正常,然后watchdog应该再等
dayu1980
·
2014-03-08 18:43
linux
watchdog
[置顶] Linux驱动开发经典书籍
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
xiaocainiaoshangxiao
·
2013-12-28 11:00
linux
书籍
驱动
Linux驱动学习
13(初步认识ioremap)
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:(1)I/O映射方式(I/O-mapped)典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的IN和OUT指令)来访问
King_BingGe
·
2013-12-26 14:00
ioremap
linux驱动-i2c驱动架构-留存
《
linux驱动学习
(八)i2c驱动架构(史上最全)davincdm368i2c驱动分析》:http://blog.csdn.net/ghostyu/article/details/8094049
eric41050808
·
2013-12-09 14:00
linux驱动
树莓派
linux驱动学习
之LED控制
前面我们编写了helloworld的程序,接下来继续研究GPIO功能,通过GPIO来控制LED的亮灭,这在单片机中应该算是十分简单的一个程序了,但是在Linux系统中控制GPIO没有那么简单,难点就在于GPIO地址的获取,也是我一直在纠结的问题。一、GPIO地址 我看了中嵌的嵌入式开发视频,里面使用三星2440控制LED的亮灭,但是驱动程序中没有写清楚具体的底层是如何实现的,这也是我
hcx25909
·
2013-11-21 14:00
树莓派
linux驱动学习
之hello world
最近想学习一下linux驱动,看了一些书和教学视频,大概了解了一下,不过要想深入,肯定需要实践。手上有几块linux的板子,最终选择了树莓派作为我的实验平台,资料比较丰富,接口也比较简单。 程序员的入门经典当然就是helloworld程序了,我的第一个实验就是要搭建实验环境和工具链,通过交叉编译的方式,在上位机完成helloworld驱动程序的编写,最终在板子上运行。一、安装树莓派系
hcx25909
·
2013-11-21 14:00
Linux驱动学习
1(框架梳理)
一、内核执行流程内核初始化设备驱动的过程:第一个C函数从main.c(kernel\init)开始,暂且不论汇编文件start_kernel()->rest_init()->do_basic_setup()->do_initcalls()函数do_initcalls如下:staticvoid__initdo_initcalls(void) { initcall_t*fn; /*循环调用__ini
King_BingGe
·
2013-11-18 09:00
android
框架
MTK
linux驱动开发的经典书籍
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
angelbosj
·
2013-11-01 14:00
linux
android
Linux内核――并发与竞争
[-]一信号量定义操作函数读者写者旗帜二互斥体三完成量的用法四自旋锁五原子变量六位变量
linux驱动学习
之信号量和互斥体在驱动程序中,当多个线程同时访问相同的资源时(全局变量或硬件资源),可能会引发竞态因此我们必须对共享资源进行并发控制
lvzg2005
·
2013-10-31 10:06
linux
内核
竞争
(转载)Linux 配置文件简介/登录注销,文件系统,系统管理,守护进程,用户程序配置文件/Understanding Linux configuration files
UnderstandingLinuxconfigurationfiles huawei_d 我的网易微博被推荐日志最新日志xilinx培训参加感想【转载】linux中的platform【转载】linux 实时时钟(RT【转载】linux lcd 基础知识【转载】
linux
wangxueang224
·
2013-09-04 10:00
linux驱动学习
——怎么自动创建设备文件
linux驱动学习
——怎么自动创建设备文件 本文转载自边缘之火《
linux驱动学习
——怎么自动创建设备文件》 在学习linux驱动开发中,我们可以将驱动编进内核,也可以编成模块
wangxueang224
·
2013-09-04 10:00
linux驱动学习
之异步通知
http://blog.csdn.net/fontlose/article/details/8257201 异步通知是设备状态改变后主动通知应用程序,这样应用程序就不需要阻塞或查询设备了。应用通过信号来处理内核的异步通知,上次使用pollselect来查询设备的可读状态,下面这个例子类似,不同的是当设备有数据时主动通知应用去读数据。 应用的C代码很简单,主要设置对信号的处理方式,内核有数据时
cjsycyl
·
2013-07-02 09:00
linux驱动学习
--第二十五天:第十三章:Linux 块设备驱动(二):gendisk(通用磁盘) 结构体
gendisk结构体在Linux内核中,使用gendisk(通用磁盘)结构体来表示1个独立的磁盘设备(或分区)。gendisk结构体1structgendisk2{3intmajor;/*主设备号*/4intfirst_minor;/*第1个次设备号*/5intminors;/*最大的次设备数,如果不能分区,则为1*/6chardisk_name[32];/*设备名称*/7structhd_str
吴守春的春天
·
2013-06-30 22:48
linux驱动开发
Linux驱动学习
心得
一、前言 来公司学习驱动也将近一个半月了,在研一时候也学习过linux驱动,但是不够系统,或者说是没有针对性。随着时间的迁徙,很多知识也就忘掉了,所以现在也就不能信手拈来。 一切又等于说是从头学起,学习是一个漫长的过程,这其中有快乐也有痛苦。二、SVN 拉代码的工具 svnco:从svn服务器上拉代码到本地 svncommit:提交代码,然后填写
chen198746
·
2013-05-22 13:00
【linux】——
linux驱动学习
笔记(一)——驱动编译的两种方式
http://blog.csdn.net/bull_liu/article/details/7084576驱动程序可以和内核一起编译,也可以作为一个模块单独编译。但为了方便调试驱动程序,一般将以模块化的方式对驱动进行编译。 一、以模块化的方式编译驱动程序 板子是FL2440,linux内核是2.6.12的,以led驱动程序为例。源文件为:驱动程
cjsycyl
·
2013-05-06 14:00
linux驱动开发的经典书籍
linux驱动开发的经典书籍作者:彩阳日期:2012-5-168:29:00
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》
jimmy2013_1_1
·
2013-04-27 12:00
linux驱动学习
路线
Linux系统目前主要维护2.4和2.6两个内核版本,在http://www.kernel.org/网站上已经可以下载到最新的2.6内核linux-2.6.38.6,及最新的2.4内核linux-2.4.37.11。稳定版本号基本上是1~3月更新一次,如:2.6.35至2.6.36,升级版本号每1~2周更新一次,如:2.6.35.1至2.6.35.2。升级后的高版本内核并不完全兼容低版本内核,所以
yangjin_unique
·
2013-03-17 16:00
linux驱动开发的经典书籍
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
yxnyxnyxnyxnyxn
·
2013-03-11 10:00
高人指点 linux 学习之路
Linux驱动学习
的最大困惑在于书籍的缺乏,市面上最常见的书为《linux_device_driver3rdEdition》,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上
井然有序
·
2013-03-02 11:03
linux
学习
Linux驱动学习
――Hello World
1.第一个Linux驱动,源码如下: // hello.c #include #include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "hello world!\n");
fatheadfish
·
2013-03-01 15:42
linux
linux驱动之helloworld(开始将自己的arm+
linux驱动学习
分享一下)
hello.c#include #include MODULE_LICENSE("DualBSD/GPL"); staticinthello_init(void) { printk(KERN_EMERG"helloworld!\n"); return0; } staticvoidhello_exit(void) { printk(KERN_EMERG"goodbye!\n"); } mod
半个黑客
·
2013-01-28 03:00
helloworld
linux驱动
linux驱动学习
之并发和竞争控制
linux驱动学习
之信号量和互斥体 在驱动程序中,当多个线程同时访问相同的资源时(全局变量或硬件资源),可能会引发竞态因此我们必须对共享资源进行并发控制。
fontlose
·
2012-12-20 15:00
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他