首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

21.Linux-USB键盘驱动(详解)

本节目的:     根据上节的USB鼠标驱动,来依葫芦画瓢写出键盘驱动 1.首先我们通过上节的代码中修改,来打印下键盘驱动数据到底是怎样的 先来回忆下,我们之前的鼠标驱动的id_table是这样:...所以我们要修改id_table,使这个驱动为键盘的驱动,如下图所示: ? 然后修改中断函数,通过printk()打印数据: 我们先按下按键A为例,打印出0x04,如下图: ?...#include #include #include #include #...,比如鼠标,键盘等 然后make uImage 编译内核 将新的键盘驱动模块放入nfs文件系统目录中 5.2然后烧内核,装载触摸屏驱动模块 如下图,当我们插上USB键盘时,可以看到该VID和PID,和电脑的键盘的参数一样...5.4 使用exec 0</dev/tty1测试 (exec命令详解入口地址: http://www.cnblogs.com/lifexy/p/7553228.html) 如下图,就能通过板子的键盘来操作了

7.2K92
您找到你想要的搜索结果了吗?
是的
没有找到

如何在linux系统移植驱动

在嵌入式linux移植LCD(这里指彩色点阵式LCD)的驱动,通常说来,并不是很困难的事。最简单的方法,就是找到linux中,现有的LCD驱动的参数设置的代码,直接修改参数即可。...复杂点的方法,就要添加LCD驱动相关的结构体,设备描述,等。但不管怎么样,LCD的参数设置是最终肯定要面对的问题。...1075083208 如何在linux系统移植驱动以下,就把LCD的参数设置的方法说明一下。 首先,参数设置设置的是什么?其实就是LCD屏的工作频率,垂直扫描频率,撗向扫描时间等等参数。...接下来,如何设置,在linux中,这些参数将会填写到LCD驱动相关的结构体中去。(不同体系的嵌入系统中,这个结构体的名称和所在文件不尽相同) 最后,就是手册中的参数与LCD结构体中的参数的对应关系。...    = 13,      .lower_margin    = 29,         .hsync_len    = 48,        .vsync_len    = 3, 取值和LCD芯片手册的参数的对应关系如下

3.6K10

Linux驱动开发: Ubuntu(PC机)系统编译驱动并加载测试

/linux_c/usb_dev_ubuntu# rmmod spectrometer_usb_drv.ko 关于日志显示的问题: 驱动程序正常会使用printk向终端打印调试信息, 如果驱动安装之后当前终端没有反应...端点号[1]:1 [137747.993113] 端点[1] 输出端点(主机到设备) [137747.993113] 端点[1] 设备支持批量传输. [137747.993114] 端点[1] 传输的数据大小...端点号[2]:2 [137747.993115] 端点[2] 输出端点(主机到设备) [137747.993115] 端点[2] 设备支持批量传输. [137747.993115] 端点[2] 传输的数据大小...端点号[3]:3 [137747.993116] 端点[3] 输出端点(主机到设备) [137747.993116] 端点[3] 设备支持批量传输. [137747.993116] 端点[3] 传输的数据大小...驱动Makefile编译方式 Linux_ADD=/home/wbyq/work/linux-3.5/linux-3.5 app_dev: make -C $(Linux_ADD) M=`pwd` modules

1.2K20

linux设备驱动第二篇:如何一个简单内核驱动

一篇介绍了linux驱动的概念,以及linux下设备驱动的基本分类情况及其各个分类的依据和差异,这一篇我们来描述如何一个类似hello world的简单测试驱动程序。...执行系统调用的系统代码运行在进程上下文中,它代表调用进程执行操作,因此能够访问进程地址空间的所有数据。而处理硬件中断的内核代码和进程是异步的,与任何一个特定进程无关。...内核编程要考虑并发问题的原因:1.linux是通常正在运行多个并发进程,并且可能有多个进程同时使用我们的驱动程序。...4.运行在对称多处理器(SMP),不止一个cpu在运行驱动程序。5.内核代码是可抢占的。 当前进程 内核代码可通过访问全局项current来获得当前进程。current指针指向当前正在运行的进程。...注意,不要在结束初始化之后仍要使用的函数(或者数据结构)使用__init、__initdata标记。这里摘抄网上的一段总结,如下。

1.6K90

Linux用EclipseC++程序

我厂很多同学使用VC在windows编写linux的C/C++程序,然后再传的开发服务器,然后再编译和调试。如果有修改,可能会直接用vi去改了,然后再把源代码同步回来。其实这样做挺折腾的。...也有大神全盘vim设置emacs,想来也是极好的。 但是,也有另外一个方案,就是在 Linux安装个C/C++程序的IDE,这样可以直接编写、编译、运行、上传SVN,非常方便。...其实要做到这点,也很简单: 你需要一个虚拟机来运行一个带GUI的LINUX,这样IDE才能运行起来,当然也可以直接在开发服务器安装GUI程序,然后WINDOWS的办公PC这里设置个SSH的X转发,装个...这样就能很方便的从windows的主机上和虚拟机交换数据了,这些功能虚拟机软件都带。...对于服务端代码的同学来说,绝对值得尝试!

3.4K70

数据驱动运营决策-框架与方法(

文章包含非常多的干货,我们将分、下两次在公众号中与大家分享,上半部分主要与大家分享如何在企业内建立合理的量化项目价值的框架,下半部分会主要与大家分享如何基于合理的框架去评估项目的价值,下面进入正文。...如果大家在一线做算法或者分析,基本上工作时间基本都花在具体的项目推进和优化上面。...而且我讲的不是管理学的经验,而是科学的、数据驱动的方法论。比如,在海外,对标竞争对手的司乘体验水平,如果要达到 x% 的 market share 最少需要多少在线司机和发单?...滴滴的优势在于利用互联网大数据、精细化运营的手段极大程度上降低了交易成本:把司机和乘客从线下搬到了线上,通过秒级的分单调度匹配司机与乘客,通过平台统一定价节省了司机与乘客之间议价的成本,并通过司机服务分...---- 如果大家周围有对数据分析&数据挖掘感兴趣的朋友,欢迎在朋友圈分享&转发一下,让更多的朋友加入我们。有好的文章也可以联系我与大家分享,需要获取代码转载本公众号文章,可以直接在者文章下方留言。

1K20

linux设备驱动第三篇:如何一个简单的字符设备驱动

linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何一个简单的字符设备驱动。...本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分配的一些内存。 下面就开始学习如何一个简单的字符设备驱动。...2、重要的数据结构 注册设备编号仅仅是完成一个字符设备驱动的第一步。下面介绍大部分驱动都会包含的三个重要的内核的数据结构。...2.2、文件结构struct file struct file, 定义于 , 是设备驱动中第二个最重要的数据结构。文件结构代表一个打开的文件....当文件还没有为那种存取而打开时读或的企图被拒绝, 驱动甚至不知道这个情况 loff_t f_pos:当前读写位置. loff_t 在所有平台都是 64 位。

2K150

Linux】虚拟地址空间 --- 虚拟地址、空间布局、内存描述符、时拷贝、页表…

它的优点是使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间)。而实际,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器,在需要时进行数据交换。...3.进程之间代码和数据能够解耦,保证进程独立性的特征(时拷贝:什么数据被修改,就拷贝什么数据) 下面的讲解可以更加具体的解惑,在文章开头时,代码运行结果引出的虚拟地址问题 1....当进程的任何一方,尝试写入某些数据时,操作系统会先进行数据的拷贝,然后更改页表映射,最后再让尝试写入的进程对数据进行修改,操作系统这样的技术被称之为时拷贝。 2....每个进程都有自己独立的内核数据结构,也就是独立的PCB,独立的虚拟地址空间,独立的页表,操作系统通过时拷贝这种技术,使得进程之间的数据也达到独立。 4....多提一嘴,代码是代码(英文),数据数据(数字),他们组成程序。 5. 时拷贝是一种可以推迟甚至免除拷贝数据的技术。 内核此时并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝。

1.4K20

Linux一个进度条小程序

一、前言 在 Linux 写下一个简易的进度条小程序。 成品展示 : 今天的内容比较轻松,只需要了解两个知识点,这个小程序就很容易写出来了,让我们开始今天的学习。...而在我们平时打字时,一行满了需要换行,但是新起一行有很多种,例如: 这样虽然新起一行了,但是不是我们想要的结果。...1、提出问题 首先先了解一下两个库函数: sleep :Linux 下的休眠函数,单位是秒。...hello xxx\r"); fflush(stdout); sleep(3); return 0; } 现象: 观察现象,我们发现当我们使用 fflush 主动刷新缓冲区后,数据就显示在了屏幕...倒计时就是在屏幕不断显示数字,每次在同一位置显示,并将之前的数据覆盖。 既然是每次要从头开始覆盖,那么就可以用 ‘\r’ 来实现每次回到行首,并且可以通过相应的格式化控制显示多位打印。

1.5K10

【超详解PPT】元数据驱动的微服务架构(

很高兴能与大家分享“元数据驱动的微服务架构”。 本次分享有两个部分:1、微服务架构需要元数据,2、介绍微服务与元数据的关系。下期会分享:微服务中元数据的价值。...另一方面是模型化架构式的发展,模型驱动工程也在不断发展,从MDA(模型驱动架构)全面的完全模型自动化,到DSM(特定领域建模)针对特定领域的建模,再发展到DDD(领域模型驱动设计),模型的作用变得更加特定化和轻量化...而微服务间的“语言”的目标与传统不同,用元数据作为“语言”驱动整个微服务架构是不错的选择。 我们看看元数据表示了什么内容,我在之前一篇文章中从心理学的角度详细说明了元数据是什么。...我们可以看到每个层次的一层是下一层的模型,本层次的描述语言在它的一层模型中。 我们今天重点关注M1层元数据,也就是通常说的“数据模型层”。...多数建模方法都建立在可视化语言的基础。比如UML实体-关系图建模,这就是最常见的语义模型建模方法。

3K70

如何在 Linux 驱动器进行分区和格式化

在大多数的计算机系统Linux 或者是其它,当你插入一个 USB 设备时,你会注意到一个提示驱动器存在的警告。...lsblk 命令是无损的,仅仅用于检测,所以你可以放心的使用而不用担心破坏你驱动数据。...现在,这个驱动器已经被卸载了,尝试使用下面的命令: # echo 'hello world' > /dev/sdx 你已经可以将数据写入到块设备中,而无需将其挂载到你的操作系统,也不需要一个文件系统。...再把刚写入的数据取出来,你可以看到驱动的原始数据: # head -n 1 /dev/sdx hello world 这看起来工作得很好,但是想象一下如果 “hello world” 这个短语是一个文件...,如果你想要用这种方法写入一个新的文件,则必须: 知道第 1 行已经存在一个文件了 知道已经存在的文件只占用了 1 行 创建一种新的方法来在后面添加数据,或者在第 2 行的时候重写第 1 行 例如:

1.6K10

解析 | 大数据驱动智能制造,实现制造强国之梦(

来源:中国工业评论 导读: 推动智能制造的并不是大数据本身,而是大数据的分析技术。大数据給了我们一个看世界的新角度,成为创新驱动核心动力的来源。...全文目录: 大数据驱动智能制造,实现制造强国之梦()01、大数据以及工业大数据的特性 02、大数据与智能制造的关系 03、推动智能制造的三驾马车 04、资产智能管理是一种强大的数据来源 05、工业物联网平台...大数据驱动智能制造,实现制造强国之梦() 制造业是一个国家综合国力最重要的表现,在国民经济中占有重要份额,也是决定民众生活质量的重要条件。...事实,制造业企业不缺数据,问题在于数据质量低下,采集手段不科学。造成的现象是数据丰富但信息贫乏。目前表现出两大问题:第一是数据的有效利用率很低;第二是缺乏分析能力,需要大量的工具。...由此可见,推动智能制造的并不是大数据本身,而是大数据的分析技术。工业大数据给了我们一个看世界的新角度。通过360度全景的数字视角,可能给我们带来新的优势,这就是它成为创新驱动核心动力的来源。

89580
领券