![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
移动开发
文章平均质量分 91
bobuddy
这个作者很懒,什么都没留下…
展开
-
android 电容屏驱动调试
TP转载 2022-03-08 19:31:06 · 1359 阅读 · 0 评论 -
Sensor Hub
Sensor Hub,中文名:传感器控制中心。 Sensor Hub主要有两个功能: 1. 在CPU休眠的情况下,实现对传感器的实时控制,从而达到降低功耗的功能。 2. 将不同类型Sensor的数据进行融合,实现多种sensor数据结合才能实现的功能。 而概括地看,Sensor Hub可以执行以下操作: 1. 手势识别:感测人的手势,如...转载 2019-11-07 18:15:33 · 12282 阅读 · 1 评论 -
adb简介及常用命令
adb是什么adb的全称为Android Debug Bridge,起到调试桥的作用。adb是作用利用adb工具的前提是在手机上打开usb调试,然后通过数据线连接电脑。在电脑上使用命令模式来操作手机:重启、进入recovery、进入fastboot、推送文件功能,运行设备的shell(命令行),管理模拟器或设备的端口映射,计算机和设备之间上传/下载文件, 将本地apk软件安装至模拟器或an...转载 2019-10-12 17:47:04 · 314 阅读 · 0 评论 -
Linux EMMC子系统分析-初始化流程(转载)
最近在解EMMC的一个bug,发现Linux EMMC有点小复杂,先整理个文档出来吧用的是TI 平台,仅分析MMC,不分析SD和SDIOmmc_init[html] view plain copy 2769 static int __init mmc_init(void) 2770 { 2774转载 2016-06-25 14:08:13 · 3363 阅读 · 0 评论 -
linux 内核源代码根目录
1. arch :与体系结构相关的文件2. block: 包含块存储设备IO调度算法的实现3. crypto: 密码操作有关4. Documention: 内核中各个子系统5. Drivers: 大量设备类和外设控制器的驱动6. Fs:文件系统7. Include: 内核头文件8. Init原创 2016-06-25 20:34:50 · 1633 阅读 · 0 评论 -
进程上下文和中断上下文
进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。处理器总处于以下状态中的一种:1、内核态,运行于进程上下文,内核代表进程运行于内核空间;2、内核态,运行于中断上下文,内核代表硬件运行于内核空间转载 2016-06-27 09:30:47 · 352 阅读 · 1 评论 -
中断上下文
ISR是直接与硬件交互的非常重要的代码片段。他们拥有立即执行的特权,以提高系统性能。为了对粗暴打断当前执行线程的行为进行补偿,ISRT不得不礼貌执行于受限制的环境下,即中断上下文(原子上下文).中断上下文的注意事项1.中断上下文代码可以停在运行。中断处理函数不能通过调用schemdule_timeout()等睡眠函数放弃处理器,在从中断处理函数中调用一个内核API之前,确保内部不会发会触发阻塞原创 2016-06-27 14:35:45 · 765 阅读 · 0 评论 -
i2c驱动程序
用户空间 用户应用程序内核空间 /sys, /devI2C客户驱动程序硬件 I2C设备 I2C控制器数据结构i2c_driver include/linux/i2c.h 代表一个I2C驱动程序i2c_client原创 2016-06-27 17:59:44 · 797 阅读 · 0 评论 -
pcmcia和CF
PCMCIA: personal computer memory card international association PC 机内存卡国际联合会CF: compact flash 紧凑型闪存linux -pcmcis 子系统用户空间 XX应用程序内核空间PCMCIA核心硬件原创 2016-06-27 19:56:35 · 604 阅读 · 0 评论 -
PCI-peripheral component interconnect 外围组件互联
DMA: direct memory access 直接内存访问数据结构pci_dev include/linux/pci.h pci设备结构体pci_driver include/linux/pci.h pci驱动程序pci_device_id原创 2016-06-27 20:43:10 · 838 阅读 · 0 评论 -
usb
HCD ; host controller drivers 主机控制器驱动传送模式:1. 控制传输模式,用来传送外设和主机之间的控制,转态,配置等信息。2.批量传输模式,传输大量时延要求不高的数据3.中断传输模式,传输数据量小,但是对传输时延敏感,要求马上响应。4.等时传输模式,传输实时数据,传输速率要预先可知。USB和I2C协议采用主从结构设备地址不占用CPU寻址范围原创 2016-06-28 09:13:48 · 412 阅读 · 0 评论 -
视频驱动程序
显示器接口方式1. 模拟2.LVDS3.DVI4.HDMI显示单元frame buffer 是linux视频系统的核心用户空间fbset 内核空间显卡驱动(intelfb)硬件底层显示驱动程序中间层帧缓冲控制台高层虚拟终端驱动程序X windows 的用户模式驱动程序和配置显示参数程序显示参数D:datacl原创 2016-06-28 14:00:56 · 1236 阅读 · 0 评论 -
音频驱动程序
PCM; pulse code modulation 脉冲编码调制ALSA: advanced linux sound architecture 高级linux声音架构/dev/snd/controlco 控制节点/dev/snd/pcmc0dop 播放设备/dev/snd/pcm/pcmcodoc 录音设备mp3 音频软件1原创 2016-06-28 17:04:33 · 1071 阅读 · 0 评论 -
块设备驱动程序
块设备是一种能随机访问的存储介质,与字符设备不同,块设备能够保存文件系统数据。linux块IO层存储介质包含了驻留于文件系统中的文件,用户应用程序唤醒IO系统调用来访问这些文件,相关文件系统操作在到达各自文件系统驱动程序前,会先经过通用VFS(virtual file system)虚拟文件系统,高速缓冲区通过缓冲磁盘块来加速文件系统对块设备的访问。如果能够再高速缓冲区中找到块,就可以通过原创 2016-06-28 17:09:09 · 296 阅读 · 0 评论 -
network interface card 网络接口卡
NIC: network interface card 网络接口卡ATS:asynchrounous transfer mode 异步传输总线套接字:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协原创 2016-06-29 14:54:59 · 2752 阅读 · 0 评论 -
linux无线设备驱动
1.蓝牙OSI 模型 蓝牙栈应用层 profile表示层 RFcomm/bnep/sdp会话层 L2CAP L2CAP logical link control and adapation protocol传输层 主机控制接口(HCI)硬件读、写数据的协议网络层 链接管理器数据链路层原创 2016-06-29 16:39:15 · 1498 阅读 · 0 评论 -
linux存储技术设备
linux-mtd 子系统 原始io MTD 工具MTD核心 又库例程和数据结构组成 映射MAP驱动程序nor芯片驱动程序NAND芯片驱动程序用户模块用户空间 文件IO内核空间 VFS 层mtdblockNANd芯片驱动程序 核心MTD 层NOR芯片驱动程序硬件NAND原创 2016-06-29 19:15:47 · 457 阅读 · 0 评论 -
存储设备
MTD子系统提供了一个称为MTDblock的块驱动程序,它在闪存上模拟一块磁盘。可以将任何文件系统放在模拟的闪存磁盘上。mtdblock建立的设备节点dev/mtdblock/x 其中X是分区号字符设备模拟 mtdchar建立的设备节点/dev/mtd/x jffs2:journaling flash file sysytem 日志结构闪存文件系原创 2016-06-30 09:40:26 · 397 阅读 · 0 评论 -
嵌入式Linux基础知识
目标设备与主机开发平台不同,需要使用交叉编译器bootlader设计是嵌入式软件开发的起点。bootstapp代码,,用于将bootloader放置到启动设备。 嵌入式引导程序中,分为两个阶段1. IPL: initial program loader 初始化加载器2. SPL: secondary program loader 程序加载器原创 2016-06-30 10:38:08 · 580 阅读 · 0 评论 -
用户空间的驱动程序
大部分设备驱动程序倾向于工作在拥有特权的内核模式。但是有些无所谓的,如SCSI,USB,I2C等内核子系统在一定程序上支持用户模式驱动程序,可以不写就可以控制这些设备。从用户空间驱动1.访问IO区域linux上用户访问IO端口受到两个函数控制ioperm()iopl()2. 访问内存区域对于一个文件进行内存映射(mmaping )将使它与用户空间的一段虚拟内存区原创 2016-06-30 14:32:44 · 1552 阅读 · 0 评论 -
调试设备驱动程序
linux内核没有集成对调试器的支持。指令级的KDB(kernel debudgger 内核调试器)源代码级调试器kgdb(kernel GNU DEBUGGER) 内核GNU调试器udev 工作1.内核中的sysfs支持,sysfs是Linux设备模型的重要组成部分。位于内存中,在启动时被挂载在/SYS目录下2.一套用户空间守护程序和实用工具 ,如udevd 和udeinfo原创 2016-06-30 15:31:55 · 288 阅读 · 0 评论 -
UDEV规则参数详细解释使用
Udev 的使用--linux系统创建设备节点 Linux 里都是以设备文件的形式存在。在早期的 Linux 版本中,/dev目录包含了所有可能出现的设备的设备文件。但因为这样 Linux 用户很难在这些大量的设备文件中找到匹配条件的设备文件。现在 udev 只为那些连接到 Linux 操作系统的设备产生设备文件。并且 udev 能通过定义一个 udev 规则 (rule) 来产生匹配设备转载 2016-07-01 10:01:10 · 8737 阅读 · 1 评论 -
串行设备驱动程序
1. 关注UART或其他底层串行硬件特征的底层驱动程序2. 与底层驱动程序接口的TTY驱动程序层,TTY驱动程序将上层驱动程序与各色的硬件进行隔离3. 加工用于和TTY(Teletype)驱动程序交换数据的线路规程。线路规程勾勒串行层的行为。有助于复用底层的代码来支持不同的技术。TTY(IO核心) n_tty(/dev/ttySX(串行子系统终端) n_irda(/dev/i转载 2016-07-01 10:48:40 · 1765 阅读 · 0 评论 -
套接字socket
套接字(socket)一组进程间交换数据的协议,侧重于函数的定义形式,而不是具体的实现方式或者数据格式,主要是为了让C的代码可以在不同的系统上保持源代码级的兼容性。最初用在Unix系统中。套接字也有很多不同的实现版本,稍有差异,不过对于我们在windows平台上工作的人来说,Unix各种平台间的差异我们并不关心。我们现在经常把套接字用于网络通讯编程,并且通常构造在Tcp/IP协议上。在wi转载 2016-07-01 14:52:01 · 915 阅读 · 0 评论 -
设备驱动程序作用
对设备驱动最通俗的解释就是“驱使硬件设备行动”。设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据设备驱动充当了硬件和应用软件之间的纽带,它使得应用软件只需要调用系统软件的应用编程接口(API)就可让硬件去完成要求原创 2016-07-01 15:05:34 · 6131 阅读 · 0 评论 -
ARM中.c文件和.h文件区别
其实要理解C文件与头文件有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格转载 2016-07-01 15:11:04 · 875 阅读 · 0 评论 -
linux设备驱动
操作系统通过给设备驱动制造麻烦来达到给上层应用提供便利的目的。如果设备驱动都按照操作系统给出的独立于设备的接口而设计,应用程序将可使用统一的系统调用接口来访问各种设备。驱动针对的对象是存储器和外设(包括CPU内部集成的存储器和外设),而不是针对CPU核。Linux 将存储器和外设分为3 个基础大类: 1.字符设备; 2. 块设备; 3. 网络设备。字原创 2016-07-01 15:35:50 · 263 阅读 · 0 评论 -
C++ 怎么自己创建头文件
方法一:#includestdio.h>这种带了引号的通常是编译系统自带的头文件,而用户也可以自己定义头文件#include "abc.h"这种带了引号的就是你自己定义的头文件如何建立头文件:以microsoft visual c++ 6.0为例,打开工作间后依次选择“文件”、“新建”在弹出的窗口选择“文件”选项卡之下的“C/C++ Header Fil转载 2016-07-01 16:20:18 · 26465 阅读 · 0 评论 -
Linux 内核模块主要组成部分
一个Linux 内核模块主要由以下几个部分组成。1.模块加载函数(必须)。当通过 insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核 insert module insmod执行,完成本模块的相关初始化工作。2.模块卸载函数(必须)。当通过 rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模 rem原创 2016-07-01 21:07:05 · 2135 阅读 · 0 评论 -
Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别
简单来说,YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的RGB: 传统的红绿蓝格式,比如RGB565,其16-bit数据格式为5-bit R + 6-bit G + 5-bit B。G多一位,原因是人眼对绿色比较敏感。RAW RGB: sensor的每一像素对应一个彩色滤光片,滤光片按B转载 2016-07-14 09:22:02 · 3439 阅读 · 0 评论 -
MIPI video mode 和 command mode 的区别
MIPI video mode 和 command mode 的区别何为LCD RAM?LCD 是指字面意思是液晶显示屏(Liquid Crystal Display), 而RAM: 随机存取存储器(Random-Access Memory),两者完全是风马牛不相及的东西。下图是一个标准的LCD的爆炸图(不含TP),请注意图中红色mark的地方:控制IC-- LCD的大脑。转载 2016-07-14 09:38:12 · 868 阅读 · 0 评论 -
设备文件系统
一.devfs 设备文件系统(过时的系统).主要特点如下:1.可以通过程序在设备初始化时在/dev目录下创建设备文件,卸载设备时将它删除。2. 设备驱动程序可以指定设备名、所有者和权限位,用户空间程序仍可以修改所有者和权限位。3. 不再需要为设备驱动程序分配主设备号以及处理次设备号,在程序中可以直接给register_chrdev()传递0 主设备号以动态获得可用的转载 2016-07-03 17:23:28 · 290 阅读 · 0 评论 -
linux 模块编译
模板编写一个简单的Makefile,如下所示:obj-m := hello.o并使用如下命令编译Hello World模块,如下所示:make -C /usr/src/linux-2.6.15.5/ M=/driver_study/ modules如果当前处于模块所在的目录,则以下命令与上述命令同等:make –C /usr/src/linux-2.6.转载 2016-07-05 11:44:18 · 281 阅读 · 0 评论 -
Linux文件系统
进入Linux 根目录(即“/”,Linux 文件系统的入口,也是处于最高一级的目录),运行“ls –l”命1./bin包含基本命令,如ls、cp、mkdir 等,这个目录中的文件都是可执行的。2./bootLinux 系统的内核及引导系统程序所需要的文件,如vmlinuz、initrd.img 文件都位于这个目录中。3./dev设备文件存储转载 2016-07-05 14:03:52 · 204 阅读 · 0 评论 -
字符设备操作
file_operations 结构体中成员函数是字符设备驱动与内核的接口,是用户空间对Linux 进行系统调用最终的落实者。大多数字符设备驱动会实现read()、write()和ioctl()函数.字符设备驱动读、写、I/O控制函数模板1 /* 读设备*/2 ssize_t xxx_read(struct file *filp, char _ _user *buf, size_t原创 2016-07-05 14:44:32 · 443 阅读 · 0 评论 -
critical sections 临界区(危险区)
解决竞态问题的途径是保证对共享资源的互斥访问,所谓互斥访问是指一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。访问共享资源的代码区域称为临界区(critical sections),临界区需要以某种互斥机制加以保护。中断屏蔽、原子操作、自旋锁和信号量等是Linux 设备驱动中可采用的互斥途径.1.中断屏蔽在单 CPU范围内避免竞态的一种简单方法是在进入临界区原创 2016-07-05 15:37:57 · 1191 阅读 · 0 评论 -
I/O空间-----I/O端口和I/O内存
首先上图,如下:外设中的寄存器被称为I/O端口,外设中的内存被称为I/O内存。二者合起来统称为I/O空间。 设备驱动程序要直接访问外设或其接口卡上的物理电路,这部分通常都是以寄存器的形式出现。外设寄存器称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把 CPU分成两大类。 一类CPU(如M68K,Power PC转载 2016-07-05 17:57:46 · 2045 阅读 · 0 评论 -
高清晰度多媒体接口, HDMI 1.4介绍
高清晰度多媒体接口, HDMI 1.4介绍FOLLO高清晰度多媒体接口(High Definition Multimedia Interface,简称HDMI)是一种全数字化视频和音频传送接口技术,采用同一条电缆就能同时传送无压缩的音频信号及视频信号,大大简化了系统的安装。 HDMI可用于DVD播放器、机顶盒、个人计算机、电视游戏机、蓝光、音响设备与数字电视。H转载 2016-07-19 09:28:15 · 7090 阅读 · 0 评论 -
linux makefile 教程
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比转载 2016-07-08 17:49:51 · 429 阅读 · 0 评论 -
用于HDMI接口的ESD保护技术
用于HDMI接口的ESD保护技术 用于HDMI接口的ESD保护技术最新的HDMI I.3(高清晰度多媒体接口1.3)标准把以前的HDMI 1.0 - 1.2标准所规定的数据传送速度提高了一倍,每对差动信号线的速度达到3.4 Gbps。由于数据传送速度这么高,要求电路板的电容小,确保信号的素质很好,这给电路板转载 2016-07-20 09:23:57 · 3240 阅读 · 0 评论