TonyHo's NotePad

tonyiot.com 373466062ATqq.com

Android BLE自动测试系统与框架

实际开发中,因为需要对不同的BLE设备进行测试。包括语音遥控器,OTA,模组,ble mesh等设备的不同功能进行兼容与稳定性测试,而使用人工测试非常的缓慢且消耗人力。因此开发了一个测试系统用来做自动测试。同时这个自动测试,可以和CI结合起来,完成DevOps的构建。而且本套系统可以非常好的扩展到...

2018-07-10 16:50:25

阅读数 572

评论数 1

imx6ul蓝牙语音识别项目之6:语音格式说明以及整合与实际效果演示

前面我们准备好了所有的软件硬件,现在是时候开始正在的业务逻辑功能的实现了。语音数据的格式语音遥控器走的是BLE, 对于Voice Over BLE有多种方案,不同的厂家和方案商都不同的实现。下面我们使用TI的来说明,其他的也是类似的。这里面主要是说明了各种格式,以及传递协议。 我们需要接受和dec...

2018-07-02 16:48:34

阅读数 284

评论数 1

imx6ul蓝牙语音识别项目之5:BLE基础与imx6ul上的BLE外设的使用

前面我们准备好了下面这些软件:BlueZ 5.49及其运行需要的组建百度语音识别及其运行需要的依赖库Controller的驱动并编译好了测试代码。 那么接下来,我们就需要和语音遥控器连接了,但是在此之前需要对BLE有所了解。BLE VS Wifi VS ZigBeeBLE属于Personal ne...

2018-07-02 16:37:59

阅读数 312

评论数 0

imx6ul蓝牙语音识别项目之4:构建ARM Linux语音识别环境

语音识别的选择前面我们准备好了BlueZ stack, 接下来就需要准备语音识别库了。对于语音识别,国内主要的提供商有:科大讯飞图灵机器人思必驰信息科技有限公司北京捷通华声科技股份有限公司百度语音北京云知声信息技术有限公司哦啦语音但是,我们是在ARM Cortex-A7单核上面跑,平台为ARM L...

2018-07-02 16:34:40

阅读数 567

评论数 1

imx6ul蓝牙语音识别项目之3:用户态蓝牙配置

stack的划分在前面的文章中,我们已经配置好了内核态对蓝牙的支持, 包括驱动以及内核态的stack。Linux蓝牙的stack为BlueZ, 参考前面的文章的图片,可以知道,内核态和用户态使用的是MGMT接口来通讯。底层主要负责和Controller数据的传输,而数据的传输接口一般为USB,SD...

2018-07-02 16:31:31

阅读数 276

评论数 0

imx6ul蓝牙语音识别项目之2: 添加蓝牙Controller支持

蓝牙架构在Linux中蓝牙的stack分层如下:从总体上看分为两层, 一个在内核态,一个在用户态,内核态。在内核态中的部分暴露了一个特殊的Socket给用户态,然后用户态使用命令+参数的格式传递给内核态。而如果硬件有反馈信息,一般是事件,那么会有callback消息上来。硬件说明对于蓝牙,一般都是...

2018-07-02 16:28:38

阅读数 318

评论数 0

imx6ul蓝牙语音识别项目之1:硬件准备

硬件在一些时间的延误后,终于收到了顺丰过来的板子,本以为需要到年后了。听说板子的延误是因为发现了一个小问题。收到板子后打开看到的是盒子包装,看起来“高大上”的感觉:打开,里面有一张V3 软件的BSP, 网线, OTG USB 线,以及电源线:核心的板子看起来不错,至少做工和基本可见的布线很漂亮:但...

2018-07-02 16:25:20

阅读数 459

评论数 0

USB Basic and its Packets

Update 2017 10-15 For chinese, see this page as a reference. To get started with the USB quickly, I summary the following steps from my experience....

2017-10-17 11:54:17

阅读数 263

评论数 0

USB与BT HID reports描述符实践与抓包分析

文章内容提示 这篇文章主要说明如何获取与查看USB和BLE HoGP HID设备报告描述符,如何根据获取的描述符读懂report。然后说明了可以使用hidrd-convert工具,来如何根据hex报告描述符转化得到C语言格式的描述符,这对于我们编码是有意义的。 其中,还截取了USB 逻辑分析仪,...

2017-10-13 11:05:07

阅读数 3932

评论数 0

跨系统的录音格式兼容性问题: iOS Android

iOS/ OS X支持的可播放的Audio Format与Android支持的有些不一样。因此可能出现在Android设备上面使用MediaRecorder录制出来的音频文件在iOS上面不可用。当然也可能iOS上面录制的audio file在Android上面无法playback。 如果在iOS...

2017-10-11 14:42:13

阅读数 2153

评论数 0

DragonBoard 410C中的Fastboot与调试串口注意事项

使用过的板子越来越多, 从FSL/NXP到三星, QualComm, Broadcom, Amlogic, MTK与海思, 还有NVIDIA Tegra.每一次使用板子做setup都需要去看一下Manual. 有些板子比较方便, 有些板子各种奇葩. 而记忆力又有限. 所以干脆以后每使用一个不同板子...

2017-07-13 11:13:37

阅读数 582

评论数 0

amlogic S905X udpate imge的压缩和解压

我这边使用的板子是khadas VIM amlogic的升级和烧写有多种方式, 常见的是USB烧写和SD卡烧写. USB烧写的流程其实是解压update.img中的文件,然后push到RAM中运行. 然后再push文件到ram中烧写. 这个和Freescale的MFGTools类似. upda...

2017-06-20 11:41:04

阅读数 3575

评论数 0

Linux Qt程序打包成一个可执行文件

最近用Qt写了一个上位机, 而且是跨平台(Windows, Linux, ARM-Linux), 开发完成后需要对程序进行打包, windows的打包非常容易,选择非常多, 但是linux下面的选择就少了些. 方案的选择 Qt官方有页面专门说明Linux X11的deployment, 主要是两个...

2017-06-20 11:38:02

阅读数 10366

评论数 0

Ubuntu 14.04与16.04(Linux Mint或者Debain)内核与模块编译

编译Ubuntu的内核, 如果按照官方的说明, 那么一般是编译出deb包, 然后安装,但是如果我们改了驱动, 或者内核那么我们很可能只想编译bzImage而不是重新生成deb包. 一般的编译步骤 参考Ubuntu 的wiki: Kernel Compile BuildYourOwnKerne...

2017-05-03 16:03:29

阅读数 1384

评论数 0

Android中Native ELF的反汇编与破解的一些经验

工具选择与使用 一般Android运行的HW有: 32Bit的ARM64Bit的ARM64X86X64 对于Intel/AMD的X86/X64, 可选的工具比较多, 因为ELF运行的Host是Android, 使用静态反汇编工具Hopper Disassemble与IDA是比较好的选择. 对...

2017-04-22 12:00:10

阅读数 1328

评论数 0

海思系类机顶盒STB的Hacker记录

说明 有许多的机顶盒都是使用海思的SoC方案, 这些盒子一般都是用Android 4.4,或者5.0的系统. 然后都没有root权限. 有的是否我们需要做些更改, 例如修改servicemanager,那么就无法简单的root然后使用cp命令替换完成了, 因为servicemanager一直在运...

2017-04-22 10:46:48

阅读数 4203

评论数 1

结合Yocto Qemu与Eclipse单步调试开发Linux Kernel

使用说明 在以前的博客中说明过使用Qemu + BuildRoot来构建一个虚拟的嵌入式开发平台, 还写过使用Yocto + Qemu来构建一个Cortex-A9的嵌入式开发调试平台. 同时在很久以前也写过使用Eclipse + JLINK来调试ARM9. 而在工作学习中,有时候, 对内核源码的...

2017-04-07 16:36:39

阅读数 1676

评论数 1

LineageOS 14.1(CM14.1)的快速下载与编译

代码的快速下载 Cyanogenmod OS或者说后来的Lineage OS的代码都是分为两个部分: cm团队自己或者社区开发的代码: 主要是适配设备, 例如vendor相关,放在github上面aosp代码: google的AOSP代码, 作为base 因为本地有一份AOSP的Mirror...

2017-03-10 11:09:45

阅读数 8598

评论数 0

repo详解与如何更改manifest快速获取和复用AOSP代码

源起 现在很多企业的网络一般都比较快, 但是有的企业却会限速, 如果需要从github和google code上面git clone大的仓库的话, 那么需要耗费的时间是很客观的,  例如从github或者google code, 或者其他托管服务站点获取Android中需要的多个Kernel仓库...

2017-02-15 15:35:49

阅读数 3952

评论数 0

使用本地AOSP镜像快速获取Android代码

说明 一次次的从AOSP mirror站点获取代码特别慢, 尤其是如果使用的还是google的AOSP Mirror而不是国内的. 因此如果在开发中需要经常性的切换Android branch/Tag, 对不同的Android版本进行开发验证与编译的话, 最好在本地建立一个次级的AOSP Mirr...

2017-02-14 17:21:35

阅读数 3100

评论数 0

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