linux设备驱动
文章平均质量分 64
skyaizl
走寻常路
http://tldp.org/LDP/tlk/tlk-toc.html
https://lctt.github.io/LFS-BOOK/
展开
-
linux 内核版本中自动加入 git 版本信息
在编译linux内核结束的时候 会使用mkiamge工具将 zImage 制作成 uImage, OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot/uImageImage Name: Linux-3.14.0Created: Thu Nov 29 01:21:16 ...原创 2021-04-26 13:47:40 · 630 阅读 · 0 评论 -
linux系统开启USBCAN设备支持can网络设备
1. 前言 网上买的USB Socket CAN设备, 直接USB接口插上, 可以直接映射出CAN0 网络设备,直接使用Linux SocketCan协议进行开发 2. 开启内核配置 3. 插上设备 ifconfig -a 即可查看can0设备 ...转载 2021-04-13 09:27:42 · 3600 阅读 · 4 评论 -
linux中的dd命令解析:sudo dd iflag=dsync oflag=dsync if=210.bin of=/dev/sdb seek=1
dd命令的作用(功能)主用功能是用于拷贝文件,也就是用指定大小的块去拷贝一个文件,并在拷贝的同时进行指定的转换(默认从标准输入拷贝到标准输出,这意味dd可以在管道中使用)。这个拷贝过程简单理解就是读取,转换并输出数据。语 法:dd[bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][se.原创 2020-05-27 12:32:02 · 2927 阅读 · 0 评论 -
linux中ctrl+z和ctrl+c的区别
引言无意中看到陈总在操作linux的时候用Ctrl+C来退出控制台输出,之前自己一直都在用Ctrl+Z来退出,然后用fg还可以恢复。对比了两个的区别,让自己小小涨了一下姿势。对比Ctrl+c和Ctrl+z都是中断命令,但是作用却不一样。用两个情景来阐述一下。情景一小菜在家看电影,兴趣正浓,突然听到外面雷声大作,然后把电影暂定,去收了下衣服,回来继续迫不及待地继续看电影。电影暂停后还能继续,Ctrl+z就扮演了类似的角色,将任务中断,但是任务并没有结束,在进程中只是维持挂起的状态,用户可以.原创 2020-05-14 09:44:48 · 284 阅读 · 0 评论 -
ssh首次连接时提示yes/no
首次进行ssh链接时,出现以下提示:The authenticity of host '192.168.100.1(192.168.100.1 )' can't be established. RSA key fingerprint is a0:00:d3:33:54:96:40:03:ff:ad:15:a9:59:22:f4:2a. Are you sure you want to ...原创 2020-01-10 11:06:06 · 845 阅读 · 0 评论 -
linux – 覆盖modprobe.d黑名单
我使用的是Ubuntu 18.04.我正试图在启动时加载模块;有问题的模块是iTCO_wdt.有关将内核模块列入黑名单的问题很多,但我试图将其列入白名单.以下是我尝试在启动时加载模块的步骤:>将iTCO_wdt添加到/ etc / modules(符号链接到/etc/modules-load.d/modules.conf)>在/etc/modprobe.d/blacklist...原创 2020-01-04 19:13:38 · 1845 阅读 · 0 评论 -
[Android] -- 修改ttyUSB权限 -- 修改设备文件权限
修改ttyUSB权限在 ueventd.rockchip.rc 文件中完成,修改内容如下:diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/common/ueventd.rockchip.rcindex 7316ebf..7773f8b 100755--- a/device/rockchip/...原创 2019-10-15 11:05:04 · 983 阅读 · 0 评论 -
Android系统下C语言hello world
在android上运行c编写的helloword 一般情况下Android系统应用程序都是java编写APK,如果要重用C代码,也是通过JNI,调用C库。 也许有人会和我有一样的想法既然android是基于linux的内核的,那应该也可以直接运行C编写的二进制呢?很显然是可以的。 当我们手机用USB线连接到电脑,电脑安装adb工具,手机也允许电脑调试就可以通过adb shell 进入...转载 2018-09-29 15:42:54 · 363 阅读 · 0 评论 -
PCM时序通俗解释
本文为经验归纳有不对的地方还请大家斧正 PCM一共有两根时钟线两根数据线:分别为PCMSYN、PCMCLK、PCMOUT、PCMIN,PCMSYN为采样率 PCM一般支持1~4slot模式:slot为声道数 PCM有两种位宽:8bit、16bit 两种时钟的大小关系PCMCLK 〉= PCMSYN * slot个数 *为宽。如图所示为1slot,位宽16...转载 2018-10-11 16:22:50 · 4172 阅读 · 0 评论 -
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传...转载 2018-06-07 16:02:30 · 128 阅读 · 0 评论 -
linux串口编程 select
1、串口的阻塞和非阻塞阻塞的定义: 对于read,block指当串口输入缓冲区没有数据的时候,read函数将会阻塞在这里,一直到串口输入缓冲区中有数据可读取,read读到了需要的字节数之后,返回值为读到的字节数,然后整个程序才继续运行下去;(收) 对于write,block指当串口输出缓冲区满,或剩下的空间小于将要写入的字节数,则write将阻塞,一直到串口输出缓冲区中剩下...转载 2018-06-21 18:01:47 · 1845 阅读 · 0 评论 -
Linux下的串口编程实例
[cpp] view plain copy//串口相关的头文件 #include<stdio.h> /*标准输入输出定义*/ #include<stdlib.h> /*标准函数库定义*/ #include<unistd.h> /*Unix 标准函数定义*/ #include<sys/types.h> ...转载 2018-06-21 18:00:59 · 223 阅读 · 0 评论 -
如何使用parted划分2bt以上磁盘
fdisk命令是针对MBR分区进行操作,MBR分区因为自身设计原因,不能处理大于2TB的硬盘,并且只能有4个分区。针对大于2TB的硬盘,需要采用GPT分区,使用parted命令进行操作parted命令使用print [free|all | NUMBER] 查看分区状态信息 mkpart PART-TYPE START END 创建新分区, PAR...原创 2018-06-12 17:54:53 · 469 阅读 · 0 评论 -
详解shell中>/dev/null 2>&1到底是什么
前言相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句。以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>&1 >/dev/null,出了一点小问题之后,我才开始去了解这段命令背后的“玄机”。shell重定向介绍就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果输出到指定的位置。...转载 2018-06-11 14:14:27 · 1019 阅读 · 0 评论 -
I2S音频总线
I2S音频总线学习(一)数字音频技术一、声音的基本概念 声音是通过一定介质传播的连续的波。 图1 声波重要指标:振幅:音量的大小周期:重复出现的时间间隔频率:指信号每秒钟变化的次数声音按频率分类:图2 声音的频率(语音信号频率范围:300Hz-3kHz)声音的传播携带了信息,它是人类传播信息的一种主要媒体。 声音的三种类型:波形声音:包含了所有声音形式语音:不仅是波形声音,而且还有丰富的语言...转载 2018-04-27 17:46:22 · 24284 阅读 · 0 评论 -
IIS音频总线学习(一)
一、声音的基本概念 声音是通过一定介质传播的连续的波。图1 声波重要指标:振幅:音量的大小周期:重复出现的时间间隔频率:指信号每秒钟变化的次数声音按频率分类:图2 声音的频率(语音信号频率范围:300Hz-3kHz)声音的传播携带了信息,它是人类传播信息的一种主要媒体。 声音的三种类型:波形声音:包含了所有声音形式语音:不仅是波形声音,而且还有丰富的语言内涵(抽象→提取特征→意义理解) 音乐...转载 2018-04-27 17:26:50 · 1591 阅读 · 0 评论 -
C++中的namespace
namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本质上讲namespace...转载 2018-04-21 22:20:34 · 107 阅读 · 0 评论 -
手工制作Wav文件以及生成播放数据
上一个帖子写了如何播放wave文件, 除了用已有资源之外, 还可以自己生成wave文件来播放, 因为wave文件很简单, 就是一个文件头, 剩下的都是PCM数据. 这个帖子写写怎么生成wave文件, 或者干脆不要文件头, 直接生成播放内容.生成wave文件很多种语言都有library与API, 这里为求简单, 自己定义一个文件头格式, 整个生成就是一个单cpp文件.这里是一个wave文件头的参考:...转载 2018-05-03 11:17:51 · 7013 阅读 · 0 评论 -
利用C的BMP图像的读取、保存及旋转的实现
<img src="https://img-blog.csdn.net/20150919152225406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />// ...转载 2018-04-25 17:13:58 · 655 阅读 · 0 评论 -
图像旋转以及C代码实现
图像旋转就是将图像按一定角度旋转,依据当前点坐标计算出来的旋转后的坐标往不是整数,因此需要进行插值。常用的插值方法有最近邻插值法、线性插值法和样条插值法(这个我也不懂)。最近邻插值速度快,效果差;双向性插值法效果较好,速度还行。这里只讨论使用反向映射和双线性插值的图像旋转。旋转原理:反向映射就是依据旋转后图像中的坐标,求出其在原图像中的坐标。如图,将图像逆时针旋转一个角度 计算旋转后...转载 2018-04-25 17:07:14 · 6893 阅读 · 0 评论 -
解密回声消除技术之一
一、前言因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘、高端和难以理解的技术领域可谓知之甚详。要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论。首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理。而在经典的教材里面,回声...转载 2018-10-09 17:14:10 · 485 阅读 · 0 评论 -
linux更新出现Could not get lock /var/lib/apt/lists/lock问题解决方法
首先输入命令:sudo rm /var/lib/apt/lists/* -vf执行完成后,再输入命令:sudo apt-get update就可以更新了转载 2019-04-20 21:51:23 · 3214 阅读 · 0 评论 -
qemu-vexpress-a9 时钟频率在哪设定
同步本地RTC时钟可以使用NTP服务器,同步后使用data命令查看本地时钟发现并不正确。在使用sleep和delay等待延时时间时也不正确。由此推断可能是时钟频率的问题。请问,qemu-vexpress-a9 时钟频率在哪设定呢? 以下是连续使用date命令的结果,时间间隔1s左右,但显示时间差了十几秒,不知道大家有没遇到这样的问题。问题解决了,修改board.c中TIMER_LO...转载 2019-04-18 15:01:35 · 683 阅读 · 0 评论 -
Linux ->/proc目录的意义
一、目录的意义我们知道进程都是在内存中的,而内存中的数据都是写入到/proc/*这个目录下的二、/proc/下的目录目前主机上面所有的进程的PID都以目录的形式存在于/proc目录下,所以下图中你可以看到很多目录,这些目录的名字就代表相对应进程的PID。例如:系统启动的第一个进程PID为1,则目录1下面存的就是这个进程的数据进入目录1,查看下面的内容几个比较重要的文件cmd...原创 2019-08-27 11:25:55 · 306 阅读 · 0 评论 -
linux apt-get安装和卸载命令
apt-get update:更新安装列表 apt-get upgrade:升级软件 apt-get install software_name :安装软件 apt-get --purge remove software_name :卸载软件及其配置 apt-get autoremove software_name:卸载软件及其依赖的安装包 ...转载 2019-07-27 17:51:02 · 1262 阅读 · 0 评论 -
Linux内核 设备树操作常用API
device_node内核中用下面的这个结构描述设备树中的一个节点,后面的API都需要一个device_node对象作为参数传入。//include/of.h struct device_node { const char *name; const char *type; phandle phandle; ...转载 2019-07-12 15:35:18 · 159 阅读 · 0 评论 -
mini2440的系统时钟讲解
mini2440上为了降低电磁干扰配备了12MHz的晶振,如果直接给当做cpu的时钟,那这个s3c2440a就屈才了。幸好cpu内部自带了MPLL将晶振时钟倍频使得cpu工作在FCLk及AHB总线上的外设工作在HCLK和APB总线上的外设工作在PCLK。当然还配有一个UPLL来产生恒定的48MHZ以支持usb2.0.①.时钟源选择在系统复位时检测引脚OM3:OM2,若是0:0,则主时钟源选择外...转载 2019-07-11 17:54:46 · 188 阅读 · 0 评论 -
麦克风MIC 工作原理以及灵敏度调整
1、先看MIC电路连接这是个差分输入的例子,MICP2和MICN2是一对差分信号,经过C156的滤波,输入到MIC两端MIC两引脚分别是到地和供电,上图的R177参数就关系到MIC输入的灵敏度2、电阻R177影响灵敏度分析MICBIAS是提供MIC的偏置电压,其大小一般是由codec的内部寄存器配置的,比如为0.6AVDD;显然,电阻R177越大,通过R177的电流就越小,输入到...转载 2019-07-04 19:14:11 · 8355 阅读 · 0 评论 -
norflash的操作
1. 简介:norflash 的特点是:NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。 NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。 由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作...转载 2019-07-14 00:06:50 · 2838 阅读 · 0 评论 -
uboot支持NORFlash
之前已经将板子设为NAND启动了,但这只是能从NANDcopy代码,不代表板子就支持了以后对NANDFlash的读写操作。启动板子以后输出信息:CPUID: 32440001FCLK: 400 MHzHCLK: 100 MHzPCLK: 50 MHzDRAM: 64 MiBWARNING: Caches not enabledFlash: **...转载 2019-07-13 23:31:05 · 1020 阅读 · 0 评论 -
Ubuntu 16.04 字体显示异常
文章目录Ubuntu 18.04 字体显示异常1. 异常现象2. 问题原因3. 解决方法4. ReferencesUbuntu 18.04 字体显示异常1. 异常现象2. 问题原因当系统使用的是英文环境时,Ubuntu默认采用的字体Noto Sans CJK优先显示日文汉字,这一问题可以通过修改配置文件/etc/fonts/conf.avail/64-language-sel...转载 2019-06-18 19:25:43 · 1697 阅读 · 0 评论 -
Mac与Phy组成原理的简单分析
Mac与Phy组成原理的简单分析11.general下图是网口结构简图。网口由CPU、MAC和PHY三部分组成。DMA控制器通常属于CPU的一部分,用虚线放在这里是为了表示DMA控制器可能会参与到网口数据传输中。对于上述的三部分,并不一定都是独立的芯片,根据组合形式,可分为下列几种类型:方案一:CPU集成MAC与PHY;方案二:CPU集成MAC,PHY采用独立芯片;...转载 2019-06-26 09:46:53 · 148 阅读 · 0 评论 -
调试千兆以太网PHY芯片DP83865的痛苦经历
本来以为PHY和容易调试,结果这块DP83865芯片折腾了我一个星期~调试过程中出现的一些情况:1. 在不做任何软件配置,使能自适应的情况下可以与带千兆以太网的PC机连接上,但是与百兆网卡连接就断断续续。2. 禁止自适应功能,把速度固定在百兆,这种情况下可以与部分百兆网卡的PC机连接上,但是有些电脑还是连不上。3. 工作在千兆模式下,芯片发热很厉害。4. 连接千兆网卡时,自适应...转载 2019-06-21 10:41:13 · 10917 阅读 · 0 评论 -
使用qemu 建立mini2440的模拟仿真环境
1. 首先下载qemu for mini2440git clone git://repo.or.cz/qemu/mini2440.git qemu如果感觉速度慢,直接打包下载http://repo.or.cz/w/qemu/mini2440.git/snapshot/HEAD.tar.gz解压后,今日源代码的主目录中, 1 2 # ./c...转载 2019-04-18 15:12:26 · 552 阅读 · 0 评论 -
bitmap文件格式分析
说到图片,位图(Bitmap)当然是最简单的,它Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何各式的图片文件(包括视频播放)都要转化为位图个时候才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的(Flash中使用了适量图,是按相同颜色区域存储的)。一、下面我们来看看位图文件(*.BMP)的格式。位图文件主要分为如下3个部分:块名称...转载 2018-04-25 15:58:25 · 699 阅读 · 0 评论 -
Ubuntu VMwork Station虚拟机清理拖拽产生的额外空间
安装VM tools之后,可以通过拖拽的方式把文件拉入虚拟机之中。但每一次拖拽,其实都是现在cache文件夹里面生成一个同样的文件,并使用cp拷贝的方式将其拷贝到拖拽放置的目录中。因此,如果不进行清理的话,cache文件夹中产生的文件,并不会自动删除或者释放。该文件夹位于用户目录下/home/xxxx/.cache/vmware/drag_and_drop。其中,进入文件夹,可以见到每一次拖拽产生...转载 2018-04-20 10:42:25 · 402 阅读 · 0 评论 -
struct sigaction 结构解析 和linux信号类型解释
(注:今天看linux关于使用信号作为aio的通知时,发现其中有很多的奇怪的结构体和参数,就抄到了这个博文,顺便就转了过来)转自:http://blog.csdn.net/lanmanck/archive/2009/09/19/4568911.aspx 信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *...转载 2018-03-27 15:03:49 · 3065 阅读 · 0 评论 -
std::vector介绍
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>vector属于std命名域的,因...转载 2018-03-27 10:02:14 · 1065 阅读 · 0 评论 -
USB描述符详细讲解
在USB中USB HOST 是通过各种描述符来识别设备的,有 设备描述符,接口描述符,端点描述符,字符描述符,报告描述符等USB HID 设备是通过报告来传送数据的,报告有:输入报告 和 输出报告输入报告:是设备发送给主机的,例如 usb鼠标将鼠标移动和鼠标点击的信息返回给电脑,键盘将按键数据返回给电脑。输出报告:是主机发送给USB设备的,例如键盘上的数字键盘锁定灯和大写字母锁定灯等。报告是一个数...转载 2018-04-09 10:39:31 · 9072 阅读 · 0 评论 -
Android实时获取音量(单位:分贝)
基础知识度量声音强度,大家最熟悉的单位就是分贝(decibel,缩写为dB)。这是一个无纲量的相对单位,计算公式如下:分子是测量值的声压,分母是参考值的声压(20微帕,人类所能听到的最小声压)。因此日常中说道声音强度是多少多少分贝时,都是默认了一个很小的参考值的。而Android设备传感器可以提供的物理量是场的幅值(amplitude),常用下列公式计算分贝值:从SDK中读取了某段音频数据的振幅后...转载 2018-03-26 19:07:38 · 982 阅读 · 0 评论