自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

转载 用户态和内核态的区别

1.操作系统需要两种CPU状态内核态(Kernel Mode):运行操作系统程序,操作硬件用户态(User Mode):运行用户程序2.指令划分特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O 内存清零 修改程序状态字 设置时钟 允许/禁止终端 停机非特权指令:用户程序可以使用的指令。 举例:控制转移 算数运算 取数指令 访管指令(...

2019-08-13 20:18:45 1512

转载 代码重定位的理解

转自:https://blog.csdn.net/myselfzhangji/article/details/80379887 ...

2019-08-12 23:00:58 412

转载 卡尔曼滤波,最最容易理解的讲解.找遍网上就这篇看懂了(转载)

学习卡尔曼滤波看了4天的文章,硬是没看懂.后来找到了下面的文章一下就看懂了.我对卡尔曼滤波的理解,我认为,卡尔曼滤波就是把统计学应...

2019-07-29 10:35:59 213

转载 __I、 __O 、__IO volatile是什么?怎么用?(作者写的太棒了,给赞)

__I、 __O 、__IO是什么意思? 这是ST库里面的宏定义,定义如下:#define __I volatile const /*!< defines ‘read only’ permissions / #define __O volatile /!< defines ‘write on...

2019-04-24 17:18:39 530 1

转载 STM32启动文件初探之startup_stm32f10x_hd.s(Reset_Handler函数)

转自:https://blog.csdn.net/qq_34706280/article/details/77823219

2019-03-21 15:00:56 1048

转载 linux usb驱动中的urb详解

linux&amp;amp;nbsp;内核中的 USB 代码和所有的 USB 设备通讯使用称为 urb 的东西( USB request&amp;amp;nbsp;block). 这个请求块用 struct urb 结构描述并且可在 include/linux/usb.h 中找到.&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&am

2019-03-03 17:31:59 2322

原创 第1.5节_摄像头驱动_USB摄像头驱动框架

在上一节视频中我们写了一个虚拟摄像头驱动程序,里面的数据是我们虚构出来的,本节我们要写USB摄像头程序了,它里面就涉及硬件的操作,比如说我们要设置亮度的时候,需要把亮度的参数发给硬件,我们要去得到真正的视频数据的时候,需要去访问硬件,得到数据。但是他们(虚拟摄像头和USB摄像头)的框架应该是一样的。1.写一个USB摄像头驱动程序当我们把usb设备接到电脑或板子上去时,如果这个设备能够被usb...

2019-02-22 09:35:16 569 1

原创 第1.4节_摄像头驱动_从零写一个虚拟驱动

1.1th(搭建起虚拟摄像头驱动框架)/* 仿照vivi.c */#include &amp;lt;linux/module.h&amp;gt;#include &amp;lt;linux/delay.h&amp;gt;#include &amp;lt;linux/errno.h&amp;gt;#include &amp;lt;linux/fs.h&amp;gt;#include &amp;lt;linux/ke

2019-02-22 09:29:08 644 1

原创 第三期摄像头之第一章 USB摄像头驱动之第1.3节_USB摄像头驱动彻底分析

在上两节视频里面分析了v4l2的框架,然后安装了一个测试程序来测试虚拟驱动的程序vivi.c,但对这个框架的分析并没有深入里面的结构。比如说它有很多ioctl,并没有分析哪些ioctl是必须的,也没有分析这个测试程序怎样去获得里面的摄像头数据。本节就结合摄像头的测试程序xawtv的源码及根据虚拟驱动vivi的使用过程彻底分析摄像头驱动。然后在第4节里面来从头写一个虚拟摄像头驱动程序。这样就可以彻底...

2019-02-20 09:32:55 460

原创 第三期摄像头之第一章 USB摄像头驱动之第1.2节_虚拟驱动vivi测试

1.准备工作(必须保证ubuntu可以上网)1.1在ubuntu中安装xawtv(ubuntu摄像头测试软件)sudo apt-get install xawtv(ubuntu中安装软件格式:sudo apt-get install +软件名称)源码xawtv-3.95.tar.gz: http://www.kraxel.org/releases/xawtv/1.2 若出现无法安装ubun...

2019-02-18 16:28:33 477

原创 第三期摄像头之第一章 USB摄像头驱动之第1.1节_摄像头驱动_V4L2框架分析

转载笔记:https://hceng.cn/2018/03/08/Linux摄像头驱动1——vivid/V4L2(Video for Linux two)是Linux内核中关于视频设备的内核驱动框架,为上层访问底层的视频设备提供了统一的接口。1.摄像头驱动程序框架摄像头驱动程序属于字符设备驱动程序。它的框架就是字符设备驱动程序框架。(回顾)解释:(1)当我们装载一个驱动程序的时候内核会...

2019-02-17 18:17:41 668 1

转载 /proc文件夹介绍

转自:https://www.cnblogs.com/linux-wang/p/8142909.html概念:/proc 文件系统是一种内核和内核模块用来向进程(process) 发送信息的机制(所以叫做/proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中(on the fly) 改变设置(通过改变内核参数)。 与其他文件系统不同,/proc 存在于...

2019-01-23 13:56:55 493

转载 module_init和module_exit的作用

转自:http://www.360doc.com/content/11/0917/11/7473909_148946026.shtml就像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include &amp;amp;lt;linux/init.h&amp;amp;gt;#include &amp;amp;lt;linux/module.h&amp;amp;g.

2019-01-23 11:04:32 3151 2

转载 module_init机制的理解

转自:https://blog.csdn.net/weixin_37571125/article/details/78665184  我们在学习Linux驱动开发时,首先需要了解Linux的模块化机制(module),但是module并不仅仅用于支撑驱动的加载和卸载。一个最简单的模块例子如下:// filename: HelloWorld...

2019-01-23 10:53:02 8678 3

转载 /dev/tty /dev/ttyS0 /dev/tty0区别

转自:https://blog.csdn.net/u011565090/article/details/41788747?utm_source=blogxgwz7 1、串行端口终端(/dev/ttySn)&nbsp;  &nbsp;&nbsp;&nbsp;串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的...

2019-01-23 10:11:01 784

转载 Linux 设备驱动--- 内核等待队列 --- wait_queue_head --- wait_event_interruptible --- 按键驱动程序优化

转自:https://blog.csdn.net/yikai2009/article/details/8653578 等待队列:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 在 Linux 驱动程序设计中,可以使用等待队列来实现进程的阻塞.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 等待...

2019-01-22 15:56:06 164

转载 /proc/interrupts 和 /proc/stat 查看中断的情况

在/proc文件系统下,有两个文件提供了中断的信息。&nbsp;/proc/interrupts文件中列出当前系统使用的中断的情况,所以某个中断处理没有安装,是不会显示的。哪怕之前安装过,被卸载了。从左到右分别是, irq的序号, 在各自cpu上发生中断的次数,可编程中断控制器,设备名称(request_irq的dev_name字段)$cat /proc/interrupts &n...

2019-01-09 19:51:21 1436 1

转载 设备文件、设备文件节点 、设备 、设备驱动 区别

原文转自:https://blog.csdn.net/gtkknd/article/details/79975773 1.设备Linux下的设备通常分为三类,字符设备,块设备和网络设备。见的字符设备有鼠标、键盘、串口、控制台等。常见的块设备有各种硬盘、flash磁盘、RAM磁盘等。在Linux里一个网络设备也...

2018-12-29 08:39:48 434 1

FM1288.rar

FM1288用于对语音进行音频降噪和回声消除,同时具有增益调节和均衡控制功能。此压缩包包含FM1288数据手册、配置指导和原理图;还配有调试软件

2020-09-09

Linux设备驱动开发详解(第2版) 宋宝华.pdf

高清非扫描版,带书签。 本书第1版在2008年初出版以后,受到广大读者的支持和厚爱,累计销售1.6万册,从几年 的市场和读者反馈看,在第1版中还存在一些不足,主要是以下几方面。 ! 没有现成的开发环境,读者需要从头到尾构建,而构建需要花费很长的时间,许多时候 会不成功,加之配套光盘中的实例没有Makefile,更加大了操作的难度。 ! 没有配套的开发板,大量的基于S3C2410的实例读者身边如果没有可以直接运行的平台, 就无法亲身体验这些驱动。 ! 个别内容实用性不强或过于陈旧,也有个别知识点的讲解语言晦涩,读者不易理解,如 platform驱动。 ! 一些知识点内容不够完整,如input驱动、USB UDC和gadget驱动、SPI驱动、ASoC驱动等。 鉴于此,作者针对以上问题对第1版内容进行修订,推出了第2版。新版中对全书超过40% 的内容进行了修订。这些修订,一些是对过时内容的删除,一些是对讲解不清的知识点的修正, 一些是对重点内容的增强,一些则是有用知识点的增加,其目的是为读者提供一套更加准确和完 整的全方位、立体式Linux设备驱动学习平台。第2版相对第1版的主要改动如下。 (1)直接提供VirtualBox虚拟机,该虚拟机上已包含了书中所需的开发环境和源代码,读者 不再需要安装环境即可进行实验,书中详细介绍了各个实验的步骤。 (2)提供了专门的配套学习板—基于三星S3C6410 SoC的LDD6410(Linux Device Drivers 6410), 使 得 书 中 的 各 种 真 实 设 备 驱 动 实 例 有 了 实 验 的 依 托 。 (3)全面升级内核至Linux 2.6.28.6,根据Linux内核API的变更情况更新了书中的所有内 容,如I 2 C驱动的体系结构、网络NAPI的接口等,并对delayed_work等较新的内核机制进行 了介绍。 (4)删除了过时的内容,如传统的按键驱动、SAA7113H启动、传统的IDE驱动等,同时新 增了大量内容,包括Linux内核的编码风格、Linux内核的移植、Android驱动、USB UDC和gadget 驱动、ALSA SoC驱动、input驱动、SPI驱动、基于sysfs的设备驱动、Linux设备驱动的固件加 载、Linux性能调优工具、Linux设备驱动的电源管理、Linux驱动的分层设计思想、主机驱动与 设备驱动分离设计思想等。 (5)在 块 设 备 驱 动 方 面 ,删 除 了RAMDISK驱动实例,而新增了更加简单易懂的vmem_disk、 类似于globalmem和globalfifo驱动。 (6)对许多关键知识点的讲解进行了语言调整和内容增强,以便读者能更好地理解,例如, 以专门章节讲解platform驱动等。

2019-03-13

STM32标准例程-寄存器版本

STM32 拥有非常多的寄存器, 对于新手来说, 直接操作寄存器有很大的难度,所以 ST 官方提供了一套固件库函数,大家不需要再直接操作繁琐的寄存器,而是直接调用固件库函数即可实现操作寄存器的目的。当然, 我们要了解一些外设的原理,必须对寄存器有一定的了解,这对以后开发和调试也是非常有帮助的,上面的实例代码基本都是调用固件库来实现的。

2018-06-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除