摘要: 1. 介绍 这个函数是C++一侧使用的函数,在录音开始前获得最小FrameCount的大小。 status_t status = AudioRecord::getMinFrameCount(&minFrameCount, sampleRateHz, audioFormat, channelConfi 阅读全文
posted @ 2020-07-08 09:13 hansenn 阅读(2206) 评论(2) 推荐(0) 编辑
摘要: 在引用boost/signals2.hpp的过程中出现了这个问题。 这个问题和编译器相关,在Android.bp和Android.mk中同时调用同一个编译文件竟会出现两个不同的结果,十分费解。 在C++11中不支持boost库类似**_c11_atomic_init( &use_count, 1 ) 阅读全文
posted @ 2020-07-01 09:43 hansenn 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 工作中简单用的,没有漂亮的UI,因为要保存时间做处理,所以存起了对应的时间数据。 代码bug也有不少,欢迎交流。 #coding = 'utf-8' import time #保存计时的结果 file = "./result.txt" print('按下回车开始计时,按下 Ctrl + C 暂停计时 阅读全文
posted @ 2020-06-04 17:26 hansenn 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 遇到系统卡死的情形,我们经常长按power键10多s触发reset,强制机器重启。Pmic可以通过设置寄存器来配置不同的reset等级实现不同的效果。 13.1、reset等级(RESET_TYPE) 1. warm reset:这种等级的reset将保留DDR memory以及一部分的PMIC寄存 阅读全文
posted @ 2020-05-03 16:31 hansenn 阅读(2287) 评论(0) 推荐(0) 编辑
摘要: [toc] 01.回显命令 02.错误等级 03.显示文件夹内容 04.目录操作 04.1、切换 04.2、创建 04.3、删除 05.文件操作 05.1、复制 05.1、删除 05.2、重命名 05.3、显示文件内容 06.日期和时间 07.查找 08.跳转 其他一些常用的命令 阅读全文
posted @ 2020-05-02 13:40 hansenn 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 因为面试被问到了设备模型,所以先复习一下这里。前文实现的比如字符设备驱动存在一些弊端: 1. 设备和驱动没有分离,设备的信息是硬编码在驱动中,这给驱动造成了极大的限制,通用性变得很差。 2. 没有类似Windows的设备管理器,不可以方便地查看设备和驱动信息。 3. 不能自动创建设备节点。 4. 驱 阅读全文
posted @ 2020-04-24 15:05 hansenn 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 4.0、几种IO模型 | | 阻塞 | 非阻塞 | | | | | | 同步 | 阻塞IO | 非阻塞IO | | 异步 | IO多路复用 | 异步IO | 1. 阻塞IO:在资源不可用时阻塞,阻塞发生在驱动中,资源可用后进程被唤醒,在阻塞期间不占用CPU,最常用。 2. 非阻塞IO:调用立即返回( 阅读全文
posted @ 2020-04-22 13:41 hansenn 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: 这个代码并不能实现真正的串口数据收发,但其能够接收用户想要发送的数据,并且将该数据原封不动回环给收端。 字符设备驱动除了前面搭好的框架后,最终要实现file_operations. 按照下面的步骤可进行验证: 一个驱动支持多个设备 多个设备引入的变化是什么? 首先我们应该向内核注册多个设备号,其次在 阅读全文
posted @ 2020-04-21 11:38 hansenn 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 3.1、字符设备驱动基础 设备文件通常位于/dev目录下: 其中c表示字符设备。在现在的Linux系统中,设备文件通常是自动创建的,但我们还是可以通过mknod命令手动创建一个设备文件: mknod命令创建了一个节点,在Linux中一个节点代表一个文件,创建一个文件的最主要的工作就是分配一个新的节点 阅读全文
posted @ 2020-04-20 16:48 hansenn 阅读(216) 评论(0) 推荐(0) 编辑
摘要: “设备驱动的目的是让设备工作。” “设备驱动提供机制,但不提供策略。” Linux是宏内核的代表;Windows是微内核的代表。 内核模块是被单独编译的一段代码,可以理解为“应用商店”,其可以动态地加载或卸载。 2.1、第一个内核模块程序 在对应的目录下写makefile即可将此程序生成对应的vse 阅读全文
posted @ 2020-04-20 14:35 hansenn 阅读(307) 评论(0) 推荐(0) 编辑