- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 改进安卓自带screenrecord录屏程序,支持录屏/横竖屏识别/实时推送raw h264.
对于安卓而言录屏有两套方案:1,在Android app层使用MediaProjection框架。这个方案网上有很多资料,参考案例。优点:实现原型快/稳定。缺点:对性能要有进一步提升的厂家来说可能不太适合了。2,在Android native层使用DisplayProjection框架。这个方案Android源码自带,不过网上关于它的资料少。位于安卓的路径:frame...
2019-10-06 15:29:31 3754 6
原创 一个类ring buff的ping pong buff实现
代码参考于:https://github.com/dennis-musk/pingpong_buffer.git我的代码:https://github.com/Mr-jinfa/ping-pong-buff--like-ring-buff 貌似好久没更新博客,因为这段时间浸淫于Android、音视频。虽然两个都学得不咋地,不过还是有点点收获。至少遇到某函数时再也不会叫函数,而是尊...
2019-09-15 21:27:59 1900
原创 源码分析mmc体系结构
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/huang_165/article/details/86678814 由上一篇博文《简单分析mmc体系结构》知道,mmc core会注册一个mmc bus并等待card device、card driver的加入。也简单地介绍了mmc framework三层大概功能、用到那些内核组件。这篇博文...
2019-01-28 16:13:21 1699
原创 简单分析mmc体系结构
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/huang_165/article/details/86626017 上一篇博文《简单分析与移植rockchip平台mmc/sd卡》谈到MMC core、MMC host controller driver、MMC card driver并给出了硬件拓扑、mmc软件主体框架。本编博文的目的是罗列...
2019-01-24 14:57:42 2323
原创 简单分析与移植rockchip平台mmc/sd卡
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/huang_165/article/details/86550606环境:sd卡:罗果 128MB class 6内核:Linux4.4class 6是sd卡数据速率标准我们先看看硬件拓扑图:图片转自http://www.wowotech.net/basic_tech/mmc_sd_sdio_...
2019-01-19 11:56:32 9518 3
原创 推荐一款比较好用的Linux内核代码编辑器
博主之前用soureinsight+samba形式来开发驱动,不过由于soureinsight在samba网络协议下同步代码太慢了,而且soureinsight用的是破解版。 所以,为了提高效率在网络上搜了很多文章,大部分都推荐字符界面操作的编辑器。。不过直到我看到了vs code它支持window、Linux64位环境。对于部分Linux开发者以虚拟机+samba环境来说vs c...
2019-01-18 09:54:48 5425 1
原创 Linux下编写一个ramdisk块设备驱动及建立一个ext4文件系统
本博文参考ldd3实现一个内存虚拟磁盘,它的通过块设备驱动申请一些内存用作“磁盘容量”并将该磁盘格式化为ext4文件系统,实现和正常磁盘无异的文件创建、存放。
2019-01-11 16:22:47 1522
原创 rk3399调试ov2659(camera模块@dvp接口)--源码分析
之前整理的“rockchip sensor core框架”和rkisp下的v4l2框架有点像,只不过v4l2框架有点大(而且不支持摄像头热插拔)。其实接触越多Linux子系统越发觉得这些子系统处理思想大同小异。 这种"核...
2019-01-10 10:54:36 6912 1
原创 rk3399调试ov2659(camera模块@dvp接口)--移植过程
刚接手某款硬件,嵌入式开发者往往对硬件熟悉,而对实现硬件行为的软件及其软件框架不太熟。所以,我们一般从硬件拓扑图入手,分析数据流和硬件动作过程来熟悉或编写软件框架,并向该框架填充一些逻辑/业务代码来实现最终的驱动代码。
2019-01-09 09:35:05 16077 8
原创 rk3399调试gslX680(tp模块)--技巧分析&&程序源码分享
一般来说,平台适配某款新硬件我们只需编译程序源码、配置然后将该款硬件的驱动加入系统就完成了适配工作。不过,这过程往往会遇到一些问题。 软件上的:平台差异(内核版本、电源管理部分、pin脚管理、平台特有机制),平台特有机制:一些特有api、特有消息机制、特有同步机制。 硬件上的:电路走线是否正确、供电参数、新硬件的特殊初始化。 当然了,这只是前期工...
2018-12-30 20:13:52 3328 1
原创 rk3399调试alc5651(audio模块)之simple-card framework机制分析
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/huang_165/article/details/85340002这是“rk3399调试alc5651”的第二篇,这篇以源码分析simple-card framework机制。 在《rk3399调试alc5651之操作方法》讲述了如何移植alc5651,现在我们分析从源码simple-ca...
2018-12-29 16:13:43 8070
原创 rk3399调试alc5651(audio模块)之操作方法
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/huang_165/article/details/85321945这是“rk3399调试alc5651”的第一篇,这篇以实操形式调试alc5651。环境:硬件:realtek alc5651内核:Linux4.4播放器:aplay原理图接口解析:1. #HPO_L/R:耳机孔的左...
2018-12-28 15:28:32 16690
原创 分析并改良rockchip sensor core框架之二
人体中的手脚躯干是通过筋骨联通的,而操作系统里的链表就好比人的筋骨,内核通过这些筋骨来枚举、操作一个个设备。 所以,我们看内核源码是会发现各种链表。有些链表用来存放数据、有些链表来描述设备信息的关系。
2018-10-26 21:51:47 2066 1
原创 分析并改良rockchip sensor core框架之一
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/huang_165/article/details/83379988 这是“分析并改良rockchip sensor core框架”的第一篇,这篇结合瑞芯微官方文档以通俗的文字、图片描述sensor core。具体的程序逻辑框图将在“分析并改良rockchip sensor core...
2018-10-25 16:45:34 2457
原创 allwinner sensor子系统架构介绍
驱动开发人员大部分工作都是移植驱动、将驱动适配到不同平台上。所以,这要求驱动开发人员有快速的学习内核各种子系统架构的能力。 对于某个子系统,有的平台用的架构是通用的,有的相差很大...不过既然入坑,不忘初心就好。 好了,说正经事。下面我来分析全志的sensor子系统架构,这层架构很薄也很精简,不过给我了启示--Linux设备驱动集成度越来越高、很多代码...
2018-10-18 17:05:17 1517
原创 hi3518e ADC 连续采样并获取电压值
对于hi3518e 主控芯片内部ADC采样的描述有位牛人描述的很到位。 https://blog.csdn.net/u013738338/article/details/78602986 那个大哥从datasheet出发深入浅出地将hi3518e ADC采样过程描述地很好。接下来我要用改进过的hisi ADC源码来实现电源电压检测,这份代码读者直接获取、编译就可用。...
2018-05-25 16:15:52 3761 3
原创 从0编写linux framebuff驱动、测试用例
在从0编写framebuff期间搜了很多博客,他们都对framebuff进行很详细的解析,不过他们并没有从0–>1地给出编写framebuff的方案。 在我看来 framebuff = framebuff子系统 + LCD显存 + 虚拟页存 + 应用bind、write framebuff。 “虚拟页存”常用与内存的倒腾。因为上层写buff速度慢、LCD显示快。所以做一个中间内存用做缓...
2018-05-24 18:14:16 1853
原创 解决VB和inner audio同时存在,并播放由电脑合成的PCM。
hi35xx提供AIAO用于和片内、片外的audio codec对接,完成音频数据的输入输出功能。其中AIAO对应于一对AIP、AOP音频通道。如果采用inner audio方式需要用到I2S接口。该接口特点为。-支持主模式立体声 16/24bit 数据的发送和接收。-支持 8kHz~192kHz 采样率。-接收(AIP)和发送(AOP)相互独立,可以单独使能或关闭。...
2018-05-22 11:28:32 725
原创 借助iwtools工具包以过滤方式获取WiFi状态。
用到的工具有iwconfig、iwlist。给上层提供的函数有get_curwifi_info、get_wifi_list。我们先看原始的iwtools Makefile快照# Targets to buildSTATIC=libiw.aDYNAMIC=libiw.so.$(WT_VERSION)PROGS= iwconfig iwlist iwpriv iwspy iwgeti...
2018-05-21 12:19:10 1181
原创 内核层与应用层jiffies同步
本文参考资料为:《linux内核设计与实现》第三版定时器和时间管理章节 下文将展示: 1.一个简单用来实现“内核层-应用层jiffies同步”的例子. 2.介绍jiffies定义 对于应用来说,它需要一个时间标尺来记录时间流逝,比如GUI进程需要周期性的给LCD刷图。而驱动的jiffies对于应用来说就一个很好的标尺。 实现要求:底层给应用层暴露一个显示...
2018-05-16 19:06:02 910
原创 io阻塞下线程切换问题分析
本文分析Linux早期版本-Linux0.11io阻塞下切换线程的问题。虽然现在Linux都4.X了,但是操作系统灵魂性的、基本性的东西不会轻易改变的。况且分析参天大树早期的小树芽比直接分析参天大树有趣、高效得多。这也是本人从MOOC网哈工大张治军老师的《操作系统》课上感悟到的。 “学习操作系统就是要coding them...”所以选择一个能力范围内的Linux内核版本并codin...
2018-05-13 22:07:55 2962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人