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设备驱动
程序——read()、write()以及ioctl()
read()函数(关于read()函数的主要的内容来源于L《
LInux设备驱动
程序》和网上的别人的博客中的内容)关于函数的原型:#includessize_tread(int
若虚_似水年华
·
2020-08-17 15:19
Linux设备驱动
程序——I/O端口和I/O内存
在我学习Linux驱动的过程中,有个和我一块儿学习驱动的同学,他比要我更早开始学习
Linux设备驱动
程序,我们在学习
Linux设备驱动
的时候有些不同的观点,我认为学习驱动程序的时候还需要对内核中的一些重点的知识比如说
若虚_似水年华
·
2020-08-17 10:40
我自己的学习日志
Linux驱动相关
内核代码不可直接访问用户空间数据
按照
linux设备驱动
书本上的说法,我的理解,三个原因描述如下。其一,驱动程序架构不同或者内核的配置不同,用户空间数据指针可能运行在内核模式下根本就是无
kerneler_
·
2020-08-17 10:25
linux
kernel
《linux内核设计与实现》读书笔记(未完成)
读书目的:了解内核编程基础,为学习《
Linux设备驱动
程序》和《深入理解Linux内核》做铺垫读书收获:心得进程1进程管理1.1进程进程:处于执行期的程序以及相关资源的总称1.2进程描述符及任务结构进程描述符包含的数据能完整地描述一个正在执行的程序
carver_x
·
2020-08-17 10:34
读书笔记
MFC Windows应用
程序学习
之处
怎么说呢,如果说是MFC倒不如说是MFCWindows应用程序(他们到底是什么关系,网上是这样认为的:Windows程序设计一般是指用c语言编写windows应用程序,或叫做win32编程,MFC程序设计是利用C++,以MFC为基础编写windows应用程序;VC是一个开发工具,在这个开发工具里,可以进行win32编程和MFC程序设计)首先我们要知道windows应用程序是由Windows系统和程
shenzhuan7
·
2020-08-17 02:39
Windows编程
图形引擎(一):创建Windows应用程序
图形引擎(一):创建Windows应用
程序学习
了Real-Time3DRenderingwithDirectXandHLSL(点击查看书籍对应的翻译博客)一书之后我们开始创建一个小巧但功能齐全的图形渲染引擎
chenjinxian_3D
·
2020-08-17 00:19
Rendering
with
DirectX
&&
HLSL
哪些服务和企业最适合做微信小程序?
「H5程序俱乐部」是一个专注微信小
程序学习
交流,相关外包/招聘需求信息发布的微信公众号应该说,不是所有的服务都适用小程序,但大部分的服务和几乎所有的初创业务都是可以接入小程序的。
weixin_jack
·
2020-08-16 16:57
Linux驱动之platform模型
其实是
Linux设备驱动
模型为了保持设备驱动的统一性而虚拟出来的总线。因为对于usb设备、i2c设备、pci设备、spi设备等等,他们与cpu的通信都是直接挂在相应的总线下面与我们的cpu进行数据交
_始梦少(青)年°
·
2020-08-16 14:58
Android 底层驱动开发步骤——linux内核层、HAL层、JNI层
这里编写一个字符设备cdev驱动,详情请看
linux设备驱动
学习(二)——字符设备编写及测试2.Linux内核驱动测试建立globalmemTest测试文件,
苍白的咏叹调
·
2020-08-16 13:16
android
linux
PCL点云
程序学习
这是本人写的第一篇博客,对PLC程序进行了初步了解,如有不正确的地方还请提出,下面则是我对PCL的初步理解和学习1.下面编辑一段简单的代码cloud_viewer_PointXYZ.cpp,将其在新建的工程中粘贴过去,保存#include#include#include#includeintuser_data;voidviewerOneOff(pcl::visualization::PCLVisu
shengxiamei
·
2020-08-16 08:08
pcl
linux设备驱动
程序之低级led驱动
首先,内核开发人员需要明白的是,我们要做的是在内核里写一些函数,这些函数是在内核中,所以它不能用到应用程序空间的所提供的一些函数,如printf()等;其次,这些设备驱动函数,目的是提供一种为底层的物理设备(如led,按键等)实现某种操作的策略,注意,是策略而不是机制,如果想要实现某种机制,请把实现这种机制的方法放到应用程序空间;同时,设备驱动函数也向上一层提供了一些系统调用接口供应用程序空间使用
心.跳
·
2020-08-16 03:16
linux驱动
蜕变成蝶~
Linux设备驱动
之异步通知和异步I/O
在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动主动通知应用程序进行访问。因此,使用无阻塞I/O的应用程序无需轮询设备是否可访问,而阻塞访问也可以被类似“中断”的异步通知所取代。异步通知类似于硬件上的“中断”概念,比较准确的称谓是“信号驱动的异步I/O"。1、异步通知的概念和作用影响:阻塞--应用程序无需轮询设备是否可以访问非阻塞--中断进行通知即:由驱动发起,主动通知应用程序2、li
George_Fal
·
2020-08-16 02:23
实例浅议
linux设备驱动
程序的编写
我是2012年2月份在亚马逊买了《
Linux设备驱动
程序》一书,期间断断续续的读了好几次,前几章都读烂了,最后终于在去年完整的读完了一遍,期间的感受就是难,主要难在对于一个初学者,不是那么容易去实践,可能也是由于
tomyoung
·
2020-08-15 23:54
Linux
Device
Drivers
MATLAB IMU
程序学习
笔记(1)
MATLABIMU
程序学习
笔记(1)——matlab面向对象编程资料网上整理最近在看一个十分庞大的imu程序,为了看完忘了之后能找到笔记,所以在这里写点东西。如有错误,希望大家可以批评指正,谢谢!
m0_37820073
·
2020-08-15 21:28
matlab
微信小
程序学习
第二课:微信小程序自定义顶部导航栏(兼容适配所有机型)
1、将constvm=thisstatusBarHeight:wx.getSystemInfoSync()['statusBarHeight']titleBarHeight:wx.getSystemInfoSync()['titleBarHeight']wx.getSystemInfo({success:function(res){console.log(res);lettotalTopHeigh
微道道
·
2020-08-15 18:06
小程序
微信
微信小
程序学习
笔记五(持续更新)---小程序上传文件
项目中需要用户上传图片,需要实现,上传按钮默认为一个,在上传一张图片之后,自动增加一个上传按钮,上传三张图片后按钮消失。实现思路:1、图片路径存储在一个数组中,增加和删除图片是对数组进行操作;2、仅一个按钮,添加计数器,num=1;当num==3时,设置按钮隐藏。直接上代码:.wxml文件:+添加图片.wxss代码:.uploader{position:relative;width:175rpx;
ankuaji8631
·
2020-08-15 18:51
微信小
程序学习
笔记四(持续更新)---征服scroll-view下拉刷新
贴图大概实现这种使用swiper做tab切换,数据页面下拉刷新的效果。官方提供的scroll-view作为容器,如果在scroll-view使用onPullDownRefresh实现下拉刷新,会存在页面刷新卡,并且刷新会出现在tab之上,用户体验极差。这里先来一波参考文档:scroll-view微信官方文档scroll-view下拉组件---来自其他大神自己封装的组件,强推!实现思路还是scrol
ankuaji8631
·
2020-08-15 18:51
json
linux设备驱动
——中断、定时器的用法
中断申请中断intrequest_irq(unsignedintirq,irq_handler_thandler,unsignedlongirqflags,constchar*devname,void*dev_id)irq为中断号,在与board相关的头文件中定义,2440在Irqs.hinclude\asm-arm\arch-s3c2410\Irqs.h中handler为中断处理函数irqfla
zhang648462189
·
2020-08-15 17:28
linux设备驱动
模型之 device(设备)原理与实例分析
1、设备描述Linux系统中的每个设备由一个structdevice描述:structdevice{....................................structkobjectkobj;charbus_id[BUS_ID_SIZE];/*在总线上唯一标识该设备的字符串*/structbus_type/*设备所在总线*/*bus;structdevice_driver*driv
yinjiabin
·
2020-08-15 17:31
linux驱动学习
第7章
Linux设备驱动
中的并发控制之一(并发与竞态)
本章导读
Linux设备驱动
中必须解决的一个问题是多个进程对共享资源的并发访问,并发的访问会导致竞态(竞争状态)。Linux提供了多种解决竞态问题的方式,这些方式适合不同的应用场景。
静能生悟
·
2020-08-15 17:21
Linux驱动开发
ldd(
linux设备驱动
程序)scull驱动
1.下载源代码:http://download.csdn.net/detail/wjf201003050643/94942652.参考书中第三章:
linux设备驱动
程序3.下面将附上驱动源代码。
八点之前
·
2020-08-15 17:52
嵌入式LINUX驱动开发
Linux设备驱动
-模块
【1】模块文件在文件系统中可以被直接插入到内核的文件【2】模块三要素模块加载函数(必须)当在文件系统中使用insmod或者该模块在内核被执行的时候,自动执行该函数函数方式:1)缺省方式intinit_module(void){//资源的申请,初始化代码return0;}2)用户自定义inttest_init(void){//资源的申请,初始化代码return0;}module_init(test_
松鼠松鼠松鼠
·
2020-08-15 16:04
Linux设备驱动开发
手把手教你写
Linux设备驱动
---定时器(一)(基于友善之臂4412开发板)
这个专题我们来说下Linux中的定时器。在Linux内核中,有这样的一个定时器,叫做内核定时器,内核定时器用于控制某个函数,也就是定时器将要处理的函数在未来的某个特定的时间内执行。内核定时器注册的处理函数只执行一次,即不是循环执行的。如果对延迟的精度要求不高的话,最简单的实现方法如下---忙等待:Unsignedlongj=jiffies+jit_delay*HZ;While(jiffies||3
weixin_34279579
·
2020-08-15 16:13
runtime
数据结构与算法
Linux设备驱动
之IIO子系统——Triggered buffer support触发缓冲支持
Triggeredbuffersupport触发缓冲支持在许多数据分析应用中,能够基于某些外部信号(触发器)捕获数据是比较有用的。这些触发器可能是:数据就绪信号连接到某个外部系统的IRQ线路(GPIO或其他)处理器周期性中断用户空间在sysfs中读/写特定文件IIO设备驱动程序与触发器完全无关。触发器可以初始化一个或多个设备上的数据捕获。这些触发器用于填充缓冲区,然后作为字符设备暴露给用户空间。可
weixin_30567471
·
2020-08-15 16:25
[Linux笔记]platform_set_drvdata和platform_get_drvdata用法
在用到
Linux设备驱动
的platform框架时,常常会遇到两个函数platform_get_drvdata和platform_set_drvdata。
weixin_30508241
·
2020-08-15 16:22
驱动开发笔记--platform_set_drvdata & platform_get_drvdata分析
概述在用到
Linux设备驱动
的platform框架时,常常会遇到两个函数platform_get_drvdata和platform_set_drvdata。
我前年买了个表
·
2020-08-15 16:38
android驱动开发
【原创】【专栏】《
Linux设备驱动
程序》--- LDD3源码目录结构和源码分析经典链接
【原创】【专栏】《
Linux设备驱动
程序》---LDD3源码目录结构和源码分析经典链接【专栏】
Linux设备驱动
程序学习
(总目录)【专栏】LDD3源码分析链接(总目录)1.LDD3源码分析之hello.c
GENGLUT
·
2020-08-15 16:50
Linux
---
内核驱动
Linux设备驱动程序学习
linux设备驱动
开发中内核线程和timer的使用
记录工作成长中的点滴2012-12-12在最近公司的一个项目中,突然发现ep阶段的代码能正常复位3G模块,发现并创建设备节点,但PP阶段的板子出来后,同样的代码复位3G模块失败。分析原理图发现在PP阶段3G模块的供电新增了延时电路,示波器测量也验证了开机6S后,3G模块才上电。而EP阶段的代码执行3G模块复位的时间大概是在开机5s左右,而此时PP阶段的3G模块都还没有供电,自然也就无法复位成功。也
sherwin_df
·
2020-08-15 15:22
Linux驱动
linux设备驱动
makefile入门解析
对于一个普通的
linux设备驱动
模块,以下是一个经典的makefile代码,使用下面这个makefile可以完成大部分驱动的编译,使用时只需要修改一下要编译生成的驱动名称即可。只需修改obj-m的值。
shanzhizi
·
2020-08-15 15:18
Linux
并发和竞态(
Linux设备驱动
程序)
设备中断是异步事件,也会导致代码的并发执行。内核还提供了许多可延迟代码执行的机制,比如workqueue(工作队列)、tasklet(小任务)以及timer(定时器)等,这些机制使得代码可在任何时刻执行,而不管当前进程在做什么。大部分竞态可通过使用内核的并发控制原语,并应用几个基本的原理来避免。竞争通常作为对资源的共享访问结果而产生。仔细编写的内核代码应该具有最少的共享。这种思想的最明显应用就是避
s651665496
·
2020-08-15 15:34
Linux编程学习
高级字符驱动程序操作(
Linux设备驱动
程序)
一个实际可用的设备除了提供同步读取和写入之外,还会提供更多的功能。ioctl系统调用是用于设备控制的公共接口。除了读取和写入设备之外,大部分驱动程序还需要另外一种能力,即通过设备驱动程序执行各种类型的硬件控制。比如,用户空间经常会请求设备锁门、弹出介质、报告错误信息、改变波特率或者执行自破坏等等。这些操作通常通过ioctl方法支持,该方法实现了同名的系统调用。在用户空间,ioctl系统调用具有如下
s651665496
·
2020-08-15 15:34
Linux编程学习
Linux设备驱动
模型之platform总线深入浅出(加入设备树)
在Linux2.6以后的设备驱动模型中,需关心总线,设备和驱动这三种实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。对于依附在USB、PCI、I2C、SPI等物理总线来这些都不是问题。但是在嵌入式系统里面,在Soc系统中集成的独立外设控制器,挂接在Soc内存空间的外设等却不依附在此类总线。基于这
KurdtCobain
·
2020-08-15 15:17
Linux设备驱动分析
Linux设备驱动
子系统第二弹 - SD卡
1.总论2.主控制器3.协议层4.块设备1.总论1.1概念MMC-MultiMediaCardSD-SecureDigitalCard1.2分类按存储大小,普通SD卡(2GB,dev.driver_data下实现设备驱动的功能函数,如mmc->ops=&pxamci_ops;申请中断函数request_irq()注册设备,即注册kobject,建立sys文件,发送uevent等其他需求,如在/pr
聚优致成
·
2020-08-15 15:42
linux设备驱动
file_operations结构体
以下读书笔记内容,摘自宋宝华《
Linux设备驱动
开发详解》一书。(1)llseek()函数用来修改一个文件的当前读写位置,并将新位置返回,在出错时,这个函数返回一个负值。
天糊土
·
2020-08-15 14:41
零散内容
linux设备驱动
程序第二版 编写和运行模块
第2章编写和运行模块非常高兴现在终于可以开始编程了。本章将介绍模块编程和内核编程所需的所有必要的概念。我们将要不多的篇幅来编写和运行一个完整的模块。这种专业技术(expertise)是编写如何模块化设备驱动程序的基础。为了避免一下子给你很多概念,本章仅介绍模块,不介绍任何类别的设备。这里介绍的所有内核内容(函数,变量,头文件和宏)也将在本章最后的参考部分再次介绍。如果你已经座不住了,下面的代码是一
menuconfig
·
2020-08-15 14:38
Linux/os
Linux设备驱动
程式学习(10)-时间、延迟及延缓操作
度量时间差时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据HZ值来设定,HZ是个体系依赖的值,在中定义或该文档包含的某个子平台相关文档中。作为通用的规则,即便假如知道HZ的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核研发者,他们已选择了最适合的HZ值,最好保持HZ的默认值。对用户空间,内核HZ几乎完全隐藏,用户HZ始终扩展为100。当用户空间程式包
luckdog01
·
2020-08-15 14:05
Linux相关
Linux设备驱动
程式学习(13)-Linux设备模型(总线、设备、驱动程式和类)
文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。总线总线是处理器和一个或多个设备之间的通道,在设备模型中,任何的设备都通过总线相连,甚至是内部的虚拟"platform"总线。总线能够相互插入。设备模型展示了总线和他们所控制的设备之间的实际连接。在Linux设备模型中,总线由bus_type结构表示,定义在:structbus_type{constchar*name;/*总线类型
luckdog01
·
2020-08-15 14:05
Linux相关
Linux设备驱动
程式学习(8)-分配内存
Linux设备驱动
程式学习(8)-分配内存内核为设备驱动提供了一个统一的内存管理接口,所以模块无需涉及分段和分页等问题。
luckdog01
·
2020-08-15 14:34
Linux相关
Linux设备驱动
程式学习(2)-调试技术
今天进入《
Linux设备驱动
程式(第3版)》第四章调试技术的学习。一、内核中的调试支持在前面已建议过:学习编写驱动程式要构建安装自己的内核(标准主线内核)。
luckdog01
·
2020-08-15 14:33
Linux相关
Linux设备驱动
程式学习(7)-内核的数据类型
由于前面的学习中有用到第十一章内核数据结构类型的知识,所以我先看了。要点如下:将linux移植到新的体系结构时,研发者碰到的若干问题都和不正确的数据类型有关。坚持使用严格的数据类型和使用-Wall-Wstrict-prototypes进行编译可能避免大部分的bug。内核数据使用的数据类型主要分为3个类型:标准C语言类型、确定大小的类型和特定内核对象的类型。标准C语言类型当需要“一个2字节填充符”或
luckdog01
·
2020-08-15 14:33
Linux相关
linux
struct
list
数据结构
编译器
alignment
Linux设备驱动
程式学习(4)-高级字符驱动程式操作[(1)ioctl and llseek]
今天进入《
Linux设备驱动
程式(第3版)》第六章高级字符驱动程式操作的学习。
luckdog01
·
2020-08-15 14:33
Linux相关
linux内核外部驱动模块编译报错ERROR: "******" [drivers/**.ko] undefined!
我往linux内核里添加一个驱动模块,根据《
linux设备驱动
》第三版,修改Makefile如下:obj-m:=GobiNet.oGobiNet-objs:=GobiUSBNet.oQMIDevice.oQMI.o
默默努力的小熊
·
2020-08-15 14:05
Linux开发
Linux Device和Driver注册过程,以及Probe的时机
这是整个
LINUX设备驱动
的基础,PLATFORM设备,I2C上的设备等诸设备的注册最终也是调用本文讲述的注册函数来实现的。LinuxDevi
iteye_1261
·
2020-08-15 14:44
File_operations 介绍
读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了
Linux设备驱动
程序的工作。
huangyong7795
·
2020-08-15 14:26
linux
程序开发
《
Linux设备驱动
程序》学习2—高级字符设备驱动ioctl
天进入《
Linux设备驱动
程序》第六章高级字符设备驱动程序操作的学习,学习的过程和简单字符设备驱动程序的学习是一样的,看书,看程序,然后就是看Tek的博客笔记。
平凡的人
·
2020-08-15 14:50
linux
Linux设备驱动
程序工作原理
Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这
逆水寒
·
2020-08-15 14:08
Linux驱动
linux设备驱动
中关于竞态与并发的API
中断屏蔽(适合与自旋锁连用,下面会叙述到)local_irq_disable(void)local_irq_enable(void)上述只能禁止和使能本cpu内的中断,不能解决SMP多cpu引发的竞态local_irq_save(unsignedlongflags)local_irq_restoreunsignedlongflags)上述除了禁止中断外还保存了目前cpu的中断信息。对于ARM而言,
wyjing181204
·
2020-08-15 13:45
嵌入式
Linux设备驱动
开发详解--笔记1--
Linux设备驱动
入门
什么是驱动?最通俗的解释就是“驱使硬件设备行动”作用?设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件号数据计算机系统的硬件主要有cpu、存储器、外设组成。但是随着IC制造工艺的发展,目前,芯片的集成度越来越高,往往cpu内部就
dingyuanpu
·
2020-08-15 13:44
Linux
Linux设备驱动
之中断---tasklet使用示例
前几篇文章介绍了中断的原理、基本框架、上下部使用之工作队列、线程化中断,这篇文章介绍另一种方法—线程化中断tasklet。此方法运行在中断上下文,不可休眠,延时。我使用的硬件是imx6q,原理都一样。原来的beep引脚是output模式,电路上把它改成了按键。下面程序的文件名为interrupt_tasklet.c#include#include#include#include#include#i
cxiaolei1992
·
2020-08-15 13:53
linux
device
driver
Linux设备驱动
程序学习
-USB 驱动程序(一)
内核使用2.6拓扑结构上,一个USB子系统并不是以总线的方式来分布;它是一棵由几个点对点连接构成的树。这些连接是连接设备和集线器的4线电缆(地,电源,和2个差分信号线),如同以太网的双绞线。USB主控制器负责询问每个USB设备是否有数据需要发送。由于这个拓扑结构,一个USB设备在没有主控制器要求的情况下不能发送数据.也就是说:USB是单主方式的实现,主机轮询各外设。但是设备也可以要求一个固定的数据
hccheng
·
2020-08-15 13:17
Linux技术
上一页
12
13
14
15
16
17
18
19
下一页
按字母分类:
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
其他