自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (7)
  • 收藏
  • 关注

原创 usb设备拓扑关系

linux usb设备挂载拓扑关系

2023-03-07 15:19:13 2388 1

原创 Android编译之常用配置及mk模板使用(汇总一)

android makefile常用语法及不同模块编译模板实例

2022-11-23 10:58:10 3622

原创 USB协议-UVC描述符篇(三)

USB协议-UVC描述符篇(三)1.概述2.UVC描述符布局3.设备描述符4.配置描述符5.接口关联描述符 - IAD6.视频控制接口描述符6.1 视频标准接口描述符6.2 类特定视频控制接口header描述符6.2.1 输入端点描述符6.2.2 输出端点描述符6.2.3 相机端点描述符6.2.4 SU选择器单元描述符7.视频控制端点描述符7.1VC控制端点描述符7.1.1 标准VC控制端点描述符7.1.2 类特定的VC控制端点描述符7.2 VC中断端点描述符7.2.1 标准VC中断端点描述符7.2.2 类

2021-09-09 14:01:58 4218

原创 USB协议 - UVC标准协议规范(二)

USB协议-UVC标准协议规范(二)1.概述2.UVC功能特征2.1 Video Interface Class2.2 Video Interface subclass and Protocol2.3 UVC功能拓扑2.3.1 Unit单元2.3.1.1 SU(选择器单元)2.3.1.2 PU(处理单元)2.3.1.3 EU(编码单元)2.3.1.4 XU(扩展单元)2.3.2 Teminals端点2.3.2.1 IT(Input Terminal)2.3.2.2 OT(Output Terminal)2.

2021-09-08 11:22:20 7510 1

原创 USB协议-描述符篇(一)

USB协议-描述符篇(一)1.USB描述符简介2.USB标准描述符2.1 设备描述符2.2 配置描述符2.3 接口描述符2.4 端点描述符2.5 字符串描述符1.USB描述符简介USB描述符,即使用描述符报告它们的属性。 描述符是一个具有定义格式的数据结构。 每个描述符都以一个字节宽字段开始,该字段包含描述符中的总字节数,然后是一个标识描述符类型的字节宽字段。使用描述符允许对单个配置的属性进行简明的存储,因为每个配置可以重用来自具有相同特征的其他配置的描述符或描述符的一部分。 以这种方式,描述符类似于

2021-08-30 14:54:01 3013

原创 gerrit用户代码审核提交流程

gerrit代码审核提交流程简介注册gerrit用户注册账户邮箱配置秘钥获取秘钥设置秘钥开发人员1.拉取项目2.修改提交项目3.增加审核人员审核人员简介Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。本文主要记录一个gerrit的用户如何拉取代码,并做修改提交,等待审核的一个过程。如果你是一个刚接触gerrit的用户使用者,可以继续往下阅读。如果你已经是一名old bird可

2021-06-24 17:31:58 15698 1

原创 gerrit服务器邮箱设置(三)

gerrit服务器邮箱设置简介服务端配置邮箱用户端邮箱注册问题简介我们必须提供一个邮箱给gerrit服务器,不然gerrit就不能发送邮件给用户了,让用户去绑定gerrit了。这样在用户提交代码推送到远程服务时也会提示邮箱地址不匹配等等问题。服务端配置邮箱邮箱配置很简单,我们只需要修改gerrit.config配置文件增加邮箱配置选项即可。# 编辑~/gerrit_server/review_site/etc/gerrit.config# 并增加以下字段即可, 以下是增加的公司邮箱(xxxx隐

2021-06-24 15:59:13 11016

原创 gerrit和gitlab自动同步(二)

gerrit和gitlab服务集成集成简介准备工作权限配置配置gerrit访问gitlab配置gitlab访问gerrit设置gerrit同步gitlab的配置文件配置秘钥replication配置设置创建项目1,创建一个gitlab的项目2,创建一个gerrit的项目3. 克隆gitlab中tinyalsa项目自动同步项目1.replication插件配置2. gerrit拉取并修改同步项目问题总结集成简介首先我们需要清楚的知道为什么要集成gitlab或者github等仓库? 才能更好的把握gerri

2021-06-24 14:10:10 8311 16

原创 gerrit服务器搭建和gitlab自动同步(一)

gerrit服务器搭建和gitlab自动同步gerrit简介和gitlab的区别gerrit安装准备gerrit服务器安装gerrit配置和代理设置gerrit简介在gerrit搭建之前我们先了解一下gerrit的作用,以至于我们可以更好的理解它与其他git版本库的区别。代码审查对不同的人意味着不同的东西。对一些人来说,这是一次与设计师或一个团队一行一行过代码的正式会议。对其他人来说,就是在提交代码之前,让别人浏览一下代码。Gerrit的目的就是为代码提交到代码库之前提供一个评审的轻量级框架。代码提

2021-06-23 18:06:53 3410 7

原创 Android HIDL学习 - 注册回调(整理2)

Android HIDL学习(整理1)概述注册回调实例编译服务端HIDL Client客户端测试程序测试实例概述上一节我们学会了如何创建HIDL的server端和client端,对于那些没玩过Android O或者以上的BSP开发者而言,可以吹上一阵子牛逼了,毕竟比人家多了一个技能,面试的时候也可以装一下了_OK,我们还知道了在Android O或者以上的Android版本上创建一个HAL模块的一般流程是如何的,我们这一节来看一个比较简单的东西,也是每个模块基本必不可少的一个玩意儿,那就是回调函数。

2020-07-29 10:40:26 3634 1

原创 Android HIDL学习 - HelloWord入门(整理1)

Android HIDL学习(整理1)概述入手准备实例应用1.HIDL接口文件定义2. 生成HAL相关文件3. 实现HAL服务端的共享库4. Hal server端启动注册程序5.HIDL Client端测试程序6.测试实例概述HAL 接口定义语言(简称 HIDL,发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中)。从更广泛的意义上来说,HIDL 是用于在可以独立编译的代码库之间进行通信的系统。HID

2020-07-27 19:13:34 5644 8

原创 Android OTA升级原理 - Recovery流程分析(整理二)

Android Recovery服务流程分析Recovery服务内容Recovery启动过程Recovery服务内容recovery服务内容主要分三类:Factory reset恢复出厂设置OTA install 即update.zip包升级ENCRYPTED FILE SYSTEMENABLE/DISABLE,使能/关闭加密文件系统本节主要分析OTA升级流程。Recovery启...

2020-03-25 14:40:53 1635

原创 Android OTA升级原理 - 实现流程(整理一)

Android OTA实现流程分析OTA升级概述制作升级包自动生成update.zip升级包手动生成update升级包增量包目录结构升级包写入设备分区Android的三种工作模式Recovery升级模式OTA升级概述OTA(Over-the-AirTechnology)是指手机终端通过无线网络下载远程服务器上的升级包,对系统或应用进行升级的技术。有关网络部分不做过多讨论,本文重点放在系统升级这...

2020-03-25 13:37:23 15635

原创 AndroidStudio 3.5 打包 so 到APK(总结整理)

Android Studio3.5打包so到APK中概述前期测试准备创建测试工程增加so库打包信息编译工程并查看结果概述本章主要介绍如何将自己开发的so库文件或者第三方提供的库文件一并打包到APK中的正确姿势。在之前也参考了很多资料就是无法将so正确打包,走了很多坑,一度想放弃。现在总结一下 避免其他新同学继续入坑!至于为什么需要将so打包到apk呢? 是因为在开发app时引用到了so文件...

2020-03-10 11:28:33 5660 2

原创 Android Studio第一个JNI开发入门(整理一)

Android Studio第一个JNI开发入门概述NDK环境的安装AS配置关联NDKNDK开发JNI流程在JAVA里面写native代码写C/C++代码实现本地接口配置动态链接库名称测试使用JNI方法编译测试概述该篇主要描述如何通过AS进行开发自己的JNI so库文件,通过一个简单的测试用例引导初学者了解其中的过程。NDK环境的安装开发so库就必须用到NDK(本地开发环境包),在这里只需...

2020-02-27 11:42:08 14343 3

原创 初级入门JNI练习步骤(整理总结)

第一个JNI入门步骤概述什么是JNI开发准备环境编写JNI工程在Android源码下创建JNI工程在IDE开发环境中创建JNI工程framework层java代码的实现概述写这篇文章的目的就是让懵懵懂懂的新同学可以快速的体验和理解JNI的通信流程,从应用层面上理解底层(driver layer)、JNI、framework、applications之间的通信过程。 避免在整个过程中陷入泥坑耗费...

2020-02-25 15:21:32 974

原创 Android 签名方法设置步骤

Android Studio 签名方法总结(整理)APK为什么需要签名APK签名的几种方式1.Android源码中编译APK2.Android Studio中编译APK3. 单独签名APK文件Android源码编译APK签名步骤Android Studio的签名步骤APK为什么需要签名有时候在开发某些功能的时候需要拥有系统(System)权限或者root权限才能够正确的调用某些函数,获得想要的...

2019-12-20 15:57:25 821

转载 LMS算法实现自适应滤波器

LMS算法实现自适应滤波器// LMS.c#include "LMS.h"/* xn--------输入的信号序列(列向量) * itr-------迭代次数,标量,默认为xn的长度,M<itr<sizeof(xn) * en--------误差序列(itr*1)列向量 * dn--------所期望的响应序列(列向量) * M---------滤波器的阶数(标量)...

2019-10-14 10:32:33 1242

原创 Gtest入门2 Gtest之TEST宏的用法

Googletest宏的用法(整理)1. TestCase的介绍2. TEST宏3. TEST_F宏4. TEST_P宏5. EXPECT_*和ASSERT_*的宏介绍5.1.gtest之断言5.2. gtest断言分类5.2.1 Boolean断言类型5.2.2 二元值断言类型5.2.3 字符串断言类型6. EXPECT_CALL7. 调用测试1. TestCase的介绍本章节主要介绍在使用...

2019-05-08 20:10:01 12884 1

原创 Gtest入门1:安装和使用

Gtest介绍gtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。一句话就是Gtest提供了一种自动化测试程序的框架。方便快速的验证程序的逻辑性和健壮性。...

2019-05-08 15:05:42 10365 6

转载 C++泛型编程基本概念

写在前面: 0. 所谓泛型编程就是独立于任何特定类型的方式编写代码,使用泛型程序时,需要提供具体陈旭实例所操作的类型或者值。我们经常用到STL容器、迭代器、和算法都是泛型编程的例子;模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数...

2019-03-13 18:33:57 11075 1

原创 C++11 deque用法总结(整理)

C++11 deque用法总结(整理)deque 简介新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入dequ...

2019-03-13 15:50:56 12146

原创 C++ tuple元组的基本用法(总结)

1,元组简介 tuple是一个固定大小的不同类型值的集合,是泛化的std::pair。我们也可以把他当做一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体使程序更简洁,直观。std::tuple理论上可以有无数个任意类型的成员变量,而std::pair只能是2个成员,因此在需要保存3个及以上的数据时就需要使用tuple元组了。 tuple(元组...

2019-03-12 17:02:41 117018 12

原创 C++11新特性:设置default属性的构造函数有什么作用

1. 什么是默认构造函数首先默认构造函数的目的是,如果程序员没有显式地为一个类定义某个特殊成员函数而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。我们一般会认为默认构造函数就是编译器自动生成的那个构造函数,其实这种理解不全面。准确的说,默认构造函数就是在调用时不需要显示地传入实参的构造函数。根据这个原则,下面2种构造函数都是默认构造函数;class...

2019-03-07 18:03:09 18669 7

原创 c++ 子类构造函数初始化及父类构造初始化

我们知道,构造方法是用来初始化类对象的。如果在类中没有显式地声明构造函数,那么编译器会自动创建一个默认的构造函数;并且这个默认的构造函数仅仅在没有显式地声明构造函数的情况下才会被创建创建。 构造函数与父类的其它成员(成员变量和成员方法)不同,它不能被子类继承。因此,在创建子类对象时,为了初始化从父类中继承来的成员变量,编译器需要调用其父类的构造函数。如果子类的构造函数没有显示地调...

2018-08-30 15:58:50 70572 14

原创 C++ thread用法总结(整理)

1,简介C++11中加入了&lt;thread&gt;头文件,此头文件主要声明了std::thread线程类。C++11的标准类std::thread对线程进行了封装,定义了C++11标准中的一些表示线程的类、用于互斥访问的类与方法等。应用C++11中的std::thread便于多线程程序的移值。std::thread类成员函数:(1)、get_id:获取线程ID,返回一个类型为std...

2018-08-29 17:25:32 97563 5

原创 C++ map用法总结(整理)

1,map简介map是STL的一个关联容器,它提供一对一的hash。第一个可以称为关键字(key),每个关键字只能在map中出现一次; 第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在...

2018-08-22 16:16:38 644279 71

原创 C++ pair的基本用法总结(整理)

1,pair的应用pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。其标准库类型--pair类......

2018-08-22 09:36:22 479774 44

原创 C++ set用法总结(整理)

http://www.cplusplus.com/reference/set/set/insert/顺序容器包括vector、deque、list、forward_list、array、string,所有顺序容器都提供了快速顺序访问元素的能力。关联容器包括set、map关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的。与之相对,顺序容器中的元素是按它们在容器中...

2018-08-21 15:59:25 134537 10

原创 C++ vector的用法总结(整理)

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。vector 是C++ STL的一个重要成员,使用它时需要包含头文件: #include&lt;vector&gt;构造函数 语法:  vector();  vector( size_typ...

2018-08-21 14:23:14 12890 4

原创 C++11 新特性

1 变量和基本类型1.1 long long 类型扩展精度浮点数,10位有效数字1.2 列表初始化初始化的几种不同形式,其中用花括号来初始化变量称为列表初始化;比如:int i = 0;int i = {0}; // 新特性int i(0);int i{0}; // 新特性需要注意的是,当用于内置类型的变量时,这种初始化形式有一个重要的特点:...

2018-08-20 15:02:04 1115

转载 C++11列表初始化 - 花括号的使用

C++11之前主要有以下几种初始化方式://小括号初始化string str("hello");//等号初始化string str="hello";//POD对象与POD数组列表初始化struct Studnet{ char* name; int age;};Studnet s={"dablelv",18}; //纯数据(Plain of Data,POD...

2018-08-17 16:11:45 20154 1

转载 为什么static成员变量一定要在类外初始化?

&lt;转&gt;1、为什么静态成员不能在类内初始化?在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样。class A{private:static int count ; // 类内声明};// 类外定义并初始化,不必再加static关键字int A::count = 0 ; 或者只进行定义不赋初始值,但是默认...

2018-08-17 10:07:01 26115 9

转载 undefined reference to错误的解决方法

undefined reference to错误的解决方法Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找

2017-09-21 10:14:23 2846

转载 动态库(.so)链接静态库(.a)的总结 - 很实用讲解很清楚

动态库(.so)链接静态库(.a)的情况总结动态库(.so)链接静态库(.a)的情况总结 一般来说在链接时想要使用静态库有三种方法:1、link时加上 -static 选项;当加上 -static选项后,gcc会把所有用到的库都做静态连接。2、link时直接指定想要静态连接的.a文件的绝对路径。优点是除非.a文件不存在,否则肯定有效;缺点也是很明显,拿到其他机器上编译时,.

2017-09-20 15:25:04 39112 2

转载 packet_forwarder Use with Raspberry Pi

Michael Coracin edited this page on 12 Jul · 17 revisionsThe Semtech LoRa GW reference design has been tested with a Raspberry Pi 2:https://www.raspberrypi.org/products/raspberry-pi-2-model-b

2017-06-17 14:04:54 897

转载 机器人10大流行编程语言

世界上有1500多种编程语言,都要学的话是太多了。目前,在机器人学中有这10种最流行的编程语言——如果你喜欢的不在这里,请在留言区告诉大家。对于机器人学,每种编程语言有不同的优点。我只是部分地按照重要程度从低到高对它们进行了排序。  10.BASIC/Pascal  BASIC和Pascal是我最早学过的两种编程语言。不过这并不是我把它们列在这里的原因。对于几种工业机器人语言,它们

2017-03-31 13:27:58 864

原创 如何解决 error adding symbols: Bad value 问题

//by sven最近遇到一个关于动态库和静态库使用的一个问题。我们都知道在生成一个动态库时需要指定-fPIC,这是创建动态库所要求的,共享库被加载是在内存中的位置是不固定的,是一个相对的位置。那么在生成静态库时通常不指定-fPIC, 可是在64bit编译使用静态库就会提示需要-fPIC从新编译该库:/opt/mipsel-openwrt-linux-4

2017-01-21 15:27:31 31712 6

原创 Alexa在Ubuntu下的实现测试

C/C++下基于libcurl实现的Alexa 运行在Ubuntu系统下的智能语音交互,可执行程序使用方法

2016-12-23 13:31:47 3792 20

原创 amazon alexa simple demo code for libcurl

//by seven下面是一个amazon alexa 测试程序的实现是基于libcur的,测试内容很简单就是提交一个语音数据到AVS,然后并接收来自AVS响应的数据并保存至一个文件中。测试准备环境:1、linux开发环境2、安装libcurl+nghttp2+openssl3、如果以上都准备ok,就可以完美编译测试demo了make -o

2016-12-12 14:08:46 4391 15

Alexa demo for ubuntu

通过libcurl实现的Alexa技术,并在Ubuntu下运行测试,功能等同Amazon Echo,并可以执行自己的SKILLS。文件中包含image下载种子链接

2016-12-23

alexa_demo

C语言下的alexa测试程序通过libcurl实现,更新一下token就可以完美上传语音,并得到AVS的回应

2016-12-12

libmad+libao解码播放音乐

改实例实现了在mt7628平台编译并使用alsa播放mp3音频,并解决在mips平台编译libmad产生的编译问题

2016-03-18

openwrt 制作patch

使用openwrt制作自己的patch,并应用到自己的源码树种,并在自己的项目中分享自己的patches,无需只能通过修改源文件操作分享。

2016-02-29

mt7620/arm 设备数快速入门(Device Tree)

讲解入门使用新式的DTS模式去关联设备。Device Tree 是一种描述硬件的数据结构,采用 Device Tree 后,许多硬件的细节可以直接透 过它传递给 Linux,而不再需要在 kernel 中进行大量的冗余编码。

2015-12-03

远程p2p nabto_tunnel

nabto 操作系统linux 平台适用于arm/x86/mips

2014-09-29

live555 vs2005工程

live555的源码,编译使用vs2005编译live555,整理出来,对以后分析代码有很大帮助,整个工程下载后可以直接进行编译测试。 工程包括4个基本库及testProb

2014-09-29

空空如也

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

TA关注的人

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