自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++: 抽象 模板 异常

1. 抽象2. 模板3. 异常

2021-10-17 17:18:21 126

原创 C++:封装 继承 多态

1. 封装2. 继承3. 多态

2021-10-17 17:14:44 274

原创 C++ 基础知识:第二话

2021-10-17 17:09:36 118

原创 android: 常见的编译和清楚指令

1. 编译指令2. 清除指令

2021-10-15 18:49:03 402

原创 android:system.img/ramdisk.img/boot.img等介绍

2021-10-15 18:43:15 231

原创 Android:android 启动流程

1.

2021-10-15 17:02:41 75

原创 android: android 源码下载与编译

1. 下载repomkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo2. 下载源码:##指定 repo 仓库服务器export REPO_URL='https://mirrors.ustc.edu.cn/aosp/git-repo.git/'##下载 repo 仓库,并指定 android .

2021-10-15 16:43:51 350

原创 android: android 架构

1. Android 堆栈2.平台代号、版本、API 级别和 NDK 版本3. android 新版本适配流程4.Android 系统架构应用框架。应用框架最常被应用开发者使用。作为硬件开发者,您应该非常了解开发者 API,因为很多此类 API 都可以直接映射到底层 HAL 接口,并可提供与实现驱动程序相关的实用信息。 Binder IPC。Binder 进程间通信 (IPC) 机制允许应用框架跨越进程边界并调用 Android 系统服务代码,这...

2021-10-15 16:34:32 69

原创 几张图学会C++ 第一话

2021-10-11 22:38:53 69

原创 [设备树][dts]:设备树中时钟的简单使用

2021-10-10 19:18:39 1029

原创 [设备树][dts]:fdt 命令 如何使用

bug看淡,不服就干

2021-10-10 11:30:43 359

原创 [设备树][dts]:在根文件系统中查看设备树

2021-10-09 21:29:28 263

原创 [设备树][dts]:_device_node转换为platform_device

2021-10-09 21:25:53 202

原创 [设备数][dts]:节点都转换为一个device_node结构体

2021-10-09 21:17:16 727

原创 [设备数][dts]:设备树特殊的一些节点

废话不说,直接上图,记忆大法好,记忆大法妙,记忆大法顶呱呱

2021-10-09 20:57:24 100

原创 [设备数][dts]:Flattened Devicetree (DTB) Format

2021-10-08 21:55:24 235

原创 [设备数][dts]:dts设备树的格式

2021-10-08 21:03:06 85

原创 [设备数][dts]:platform device 与platform driver三种匹配方式

总结下来,就是这三种方式:

2021-10-08 20:45:58 249

原创 [camera][v4l2][第五话]: UVC协议学习

1.USB Video Camera Topologya. T 代表terminal, U 代表unit(在程序里Unit/Terminal都称为entity)b. 有两大interface## VideoControl Interface :is used to control the inner workings ofthe function //VC里含有多个Unit/Terminal等功能模块,可以通过访问这些模块进行控制,比如调亮度ret = uvc...

2021-10-07 16:55:12 271

原创 [camera][v4l2][第四话]: uvc_driver.c框架分析的框架

1. UVCLinux UVC driver(uvc) 该驱动适用于符合USB视频类(USB Video Class)规范的摄像头设备,它包括V4L2内核设备驱动和用户空间工具补丁。只要符合这类标准,则不同厂商的USB camera设备,不需要特定的driver就能在Linux下使用。UVC是一个开放的标准,拥有维护良好的驱动,它属于内核代码的一部分。插入摄像头后就可以工作,而无须编译或安装额外的驱动。项目主页:http://www.ideasonboard.org/uvc/,提供了大部分符合uvc的

2021-10-07 16:29:43 239

原创 [camera][v4l2][第四话]: v4l2的框架

以vivi.c为例,说明v4l2的框架。摄像头驱动程序框架:1. 分配video_device:video_device_allocvfd = video_device_alloc();2. 设置: *vfd = vivi_template;static struct video_device vivi_template = { .name = "vivi", .fops = &vivi_fops, .io...

2021-10-07 08:03:07 75

原创 [camera][v4l2][第三话]: v4l2中buffer的处理过程

废话少说,直接上图

2021-10-06 23:08:38 198

原创 [camera][v4l2][第二话]: APP 如何使用V4L2框架

废话不多说, 看看APP 使用V4L2的框架。干货,上图:然后对于buffer的处理,后续再重点分析

2021-10-06 22:12:43 109

原创 [camera][v4l2][第一话]: 用xawtv 在ubuntu 测试vivi驱动程序

1. 需求想学习V4L2 框架,但是没有实际的摄像头,怎么办?可以用ubuntu 上安装xawtv应用程序下载与ubuntu一样版本的linux内核,编译出vivi.ko在unbuntu 上加载vivi.ko, 生成/dev/video0设备节点用 sudo xawtv -c /dev/video0 启动虚拟的摄像头2. 查看ubuntu 版本:book@book-virtual-machine:/work/mytmp/xawtv_test/video$ uname -a

2021-10-06 20:38:38 244

原创 ubuntu: sudo apt-get update老是失败怎么办?

1. 背景我的Ubuntu是12 的,太老了, 执行sudo apt-get update老是失败:各种4042. 解决办法网上找了很多办法,都不行。最终还是这个办法管用:打开:Ubuntu Sources List Generator选择:与你实际虚拟机最相近或者相等的版本,我这里只能选择14点击最下面的generate list如椭圆框所说,把长方形框里的source list 替换掉虚拟机里的/etc/apt/sources.list3.

2021-10-06 16:07:06 3301

原创 [ALSA架构][ASOC架构][第七话]如何写ALSA app 程序

简单粗暴,直接上图:如果是capture的话,只需要修改:a.SND_PCM_STREAM_PLAYBACK -> SND_PCM_STREAM_CAPTURE if ((err = snd_pcm_open (&capture_handle, argv[1], SND_PCM_STREAM_CAPTURE, 0)) < 0) { fprintf (stderr, "cannot open audio device %s (%s)\...

2021-10-06 10:53:14 110

原创 [ALSA架构][ASOC架构][第六话]Control接口与snd_kcontrol_new结构体分析

1.Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于Mixer(混音)来说, Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的, 比如设置音量等。可以用如下命令来查看:a. alsamixer是Linux 音频架构ALSA中的Alsa工具的其中一个,用于配置音频的各个参数。alsamixer是基于文本下的图形界面的,.

2021-10-06 10:05:29 618

原创 [ALSA架构][ASOC架构][第五话]DMA buffer 分析

1. 数据流向其中当playback 播放时:app -> 音频数据写入DMA buffer -> platform 通过I2S 将音频数据发给codec-> codec进行DAC转换-> 驱动扬声器发声。今天我们重点来分析这里的DMA buffer。2. DMA buffera. ring buffer环形缓冲器(ringr buffer),也称作圆形队列(circular queue),循环缓冲区(cyclic buffer..

2021-10-06 09:27:58 1112

原创 [ALSA架构][ASOC架构][第四话]platform框架里的snd_pcm_ops结构体分析

1. 先复习一下架构图2.snd_pcm_ops结构体分析

2021-10-05 22:26:20 177

原创 busybox的下载、配置、编译、安装一条龙服务

目录1. busybox2. 下载2. 解压,配置4. 编译5. 安装1. busybox出场白:BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 L

2021-10-05 19:03:31 2091

原创 [ALSA架构][ASOC架构][第三话]machine/platform/codec框架

废话不多说,全部都是干货。其中ASOC layer可以细分为:Machine: 某一款机器,可直接理解成一块开发板。做为 Codec 和 Platform 的载体,将硬件设备关联起来,形成完整的硬件通路Platform:一般是指某一个SoC平台, 直接理解为SOC。主要负责 SoC 芯片上音频 DMA 的传输控制,和数字音频接口的配置和控制,如I2S、PCM、AC97等。Codec: 编解码芯片。完成音频采集和播放过程中模拟与数字间的转换。图示:...

2021-10-05 16:07:10 368

原创 Linux tar命令的打包,解包,压缩,解压缩

tar命令在Linux里出镜率极高,但是容易混淆它的用法。今天特定为它量身定制了一套名牌西装,请看:只需要记住重要的4句话:c: 压缩文档, 英文单词compressx:解压缩文档,英文单词extractj:用于bzip压缩/解压缩: filename.tar.bz2z:用于gzip压缩/解压缩: filename.tar.gz...

2021-10-05 14:56:44 70

原创 [ALSA框架][第二话]设备节点与框架图

1. 设备节点:C0D0代表的是声卡0中的设备0,C0D1代表的是声卡0中的设备1pcmC0D0c最后一个c代表capture //录音pcmC0D0p最后一个p代表playback// 播放timer 代表定时器 controlc0用于声卡的控制,例如通道选择,混音,麦克风的控制等用户空间可以这样打开设备: open("/dev/snd/controlC0") // 打开控制设备; open("/dev/snd/pcmC0D0p") ...

2021-10-05 11:13:53 502

原创 SHELL: $0、$1、$2、$@、$*、$#、$? 七个葫芦娃

1. shell 脚本里的:$0、$1、$2、$@、$*、$#、$? 这七个葫芦娃兄弟分别代表啥呢?2. 一图胜千言测试程序:#!/bin/bashecho "shell file iteslt name :$0"echo "the first argument :$1"echo "the second argument:$2"echo "all the argruments:$@"echo "all the argruments:$*"echo "the t..

2021-10-04 21:07:35 67

原创 [UML]Bouml来reverse c++文件和绘制时序图

目录1. Bouml2. 下载安装3. reverse c++ 文件4. 绘制时序图1. Bouml先看看效果,适合在同事和老板面前显摆a.reverse c++文件b. 绘制时序图2. 下载安装它是免费的,直接下载:BOUML - a free UML tool box按照exe文件的安装步骤正常安装即可,easy as ABC.3. reverse c++ 文件a. 创建工程:b. 选中C++ 和 java...

2021-10-04 20:16:52 1023

原创 [ALSA框架][第一话]音频的基础知识

目录2. 音频的基础知识2.1 模拟信号 数字信号 采样2.2 录音与播放2.3 双声道波形ALSA是Advanced Linux Sound Architecture,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。在2.6系列内核中,ALSA已经成为默认的声音子系统,用来替换2.4系列内核中的OSS(Open Sound System,开放声音系统)。..

2021-10-03 16:38:58 160

原创 [干货][linux][usb][usbmouse]:usbmouse.c剖析(第二话)

USB 背景知识介绍:目录USB 背景知识介绍:#1 USB的各个版本/传输速率/英文别名/输出电流#2 USB驱动框架其中usbmouse.c就属于USB设备驱动,USB Core 和 USB 主机控制器内核已经帮我们实现。内核是伟大的,为了减缓程序搬砖民工脱发的速度,默默的奉献了自己的靓丽青春。# USB 电器特性# USB的四种传输方式那么,usbmouse.c会用到其中的控制传输和中断传输。这里的中断并非物理意义上的IRQ, .

2021-10-02 22:50:31 270

原创 [干货][linux][usb][usbmouse]:usbmouse.c剖析(第一话)

# 问题:想学习一下usb 模块驱动,哪个driver比较适合入门。推荐:Usbmouse.c (drivers\hid\usbhid) 6857 2015/3/24原因嘛,第一它的代码量真的少,第二它麻雀虽小五脏俱全,废话少说,开始解剖吧。思维导图登场先:图中标号1 ~ 10 就是插入mouse后,该c文件的执行过程。同时牵涉到input框架和usb框架,后续我们一个一个分析。欲知详情如何,且待下回分解。...

2021-10-02 17:08:15 151

原创 不看后悔系列:3分钟学会用xmind设计出思维导图

什么是xmind XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生。作为一款有效提升工作和生活效率的生产力工具,受到全球百千万用户的青睐。让你思如泉涌,成竹在图。官网网站:https://www.xmind.cn/ps:可以免费使用,免费的功能足够满足日常使用了。 思维导图能干啥? 上面一阵描述猛如虎,自己还是很懵懂。废话少说,书归正传。古人云,一图胜千言,举例如下。我想写一个高大上的自我介绍,能闪亮我的双眼的那种。come on, bab..

2021-10-02 15:56:13 235

原创 [tiny4412][干货]第三篇:JNI无法正确操控driver

##问题:JNI无法正确操控driver书接上回,开发板子上已经正确加载了led ko文件,JNI需要操控的/dev/leds设备节点也有了:shell@tiny4412:/ #shell@tiny4412:/ # cat /proc/modules | grep ledleds_4412 1587 0 - Live 0x00000000shell@tiny4412:/ #shell@tiny4412:/ #shell@tiny4412:/ #shell@tiny4412:/ # ls

2021-09-26 22:00:19 63

usbmouse.c(usbmouse.c剖析系列文章分析的usbmouse.c源码)

[干货][linux][usb][usbmouse]:usbmouse.c剖析系列文章分析的usbmouse.c源码

2021-10-02

空空如也

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

TA关注的人

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