<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[madannasf的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/madannasf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; madannasf]]></copyright><item><title><![CDATA[LINUX中SPI的一些小技巧]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/125403238</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/125403238</guid><author>madannasf</author><pubDate>Wed, 22 Jun 2022 09:40:51 +0800</pubDate><description><![CDATA[linux  spi杂记]]></description><category></category></item><item><title><![CDATA[DYNAMIC_DEBUG调试纪要]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/124024130</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/124024130</guid><author>madannasf</author><pubDate>Thu, 07 Apr 2022 19:15:06 +0800</pubDate><description><![CDATA[1、打开dynamic_debug调试
CONFIG_DYNAMIC_DEBUG
2、调试的使用
// 提供文件 svcsock.c  1603行信息
echo -n 'file svcsock.c line 1603 +p' &gt; &lt;debugfs&gt;/dynamic_debug/control

// 提供文件svcsock.c所有信息 
echo -n 'file svcsock.c +p' &gt; &lt;debugfs&gt;/dynamic_debug/control

// 提]]></description><category></category></item><item><title><![CDATA[高通Android camera驱动框架]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/123625023</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/123625023</guid><author>madannasf</author><pubDate>Sun, 20 Mar 2022 23:58:52 +0800</pubDate><description><![CDATA[1、camera kernel驱动
高通的kernel中，将camera分为两部分：video和camera两部分
1.1、camera video部分
video部分与userspace进行交互，sensor是有camera厂商定义的寄存器配置部分，主要完成相关寄存器参数的配置。
主要文件路径：kernel\msm-4.4\arch\arm\boot\dts\qcom\sdm660-camera.dtsi
kernel\msm-4.4\drivers\media\platform\msm\camera_v]]></description><category></category></item><item><title><![CDATA[【qcom Android camera调试纪要】]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/123623710</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/123623710</guid><author>madannasf</author><pubDate>Sun, 20 Mar 2022 22:42:11 +0800</pubDate><description><![CDATA[qcom Android camera调试纪要1、平台适配1.1、kernel端1.2、vendor端1.2.1、cameraService lib代码注意：需要在vendor\qcom\proprietary\common\config\device-vendor.mk中添加需要将当前的camera service lib加入到系统的编译路径中。1.2.2、camera Chromatix效果参数注意：该chromatix效果参数需要在vendor\qcom\proprietary\common\conf]]></description><category></category></item><item><title><![CDATA[linux之DMA使用]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/114395660</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/114395660</guid><author>madannasf</author><pubDate>Fri, 05 Mar 2021 15:18:04 +0800</pubDate><description><![CDATA[前言
对于长期从事嵌入式的开发人员来说，DMA是一个在实际中优化设备而老生常谈的问题，我们可以将它比喻为一个小机器人，长期重复与某一个动作的傻瓜式机器人，当我们设置好了出发添加，这个小机器人就会自动去执行相关的业务而不需要CPU的参与，从而大大的减轻了cpu的负载压力。
一、对于使用DMA控制器有什么内存上限制？
dma的内存要求内存上是连续的一片虚拟内存空间，
1、我们不要使用vmalloc以及kmalloc这些通过get_free_page（）函数来触发系统异常来分配在内存上可能是不连续的内存地址，而使]]></description><category></category></item><item><title><![CDATA[wfe与wfi]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/110850630</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/110850630</guid><author>madannasf</author><pubDate>Tue, 08 Dec 2020 09:41:14 +0800</pubDate><description><![CDATA[WFE &amp;&amp; WFI
WFE(wait for event)等待事件的发生，根据事件的PE状态进行判断，如果PE状态为1，表示任何一个事件都会将这个事件进行唤醒，如果PE=0则进入到low power stanby模式，只有WFE Wakeup Event才能唤醒。
WFI(wait for interrupt)等待中断，CPU会立即进入倒low power stanby模式，只有WFI wakeup interrupt发生才能唤醒。

...]]></description><category></category></item><item><title><![CDATA[Android之binder详解]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/110222220</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/110222220</guid><author>madannasf</author><pubDate>Fri, 27 Nov 2020 12:07:44 +0800</pubDate><description><![CDATA[一、层次设计

如上图所示，binder的层次关系图可分为三个部分，最上层为framework的各种binder服务类和接口类。最底层的为binder驱动，主要提供了open,ioctl和close这三个接口。中间两层分别为binder核心类和IPCThreadState，binder核心类提供Ibinder和Bbinder和Bpbinder，IPCThreadState提供了与Bnbinder和Bpbinder的在驱动层的交互接口。
二、binder服务的使用
sp&lt;IServiceManager&]]></description><category></category></item><item><title><![CDATA[手写识别算法]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/110128520</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/110128520</guid><author>madannasf</author><pubDate>Wed, 25 Nov 2020 14:21:35 +0800</pubDate><description><![CDATA[设计架构

一：训练

将如上的图片分割层N*N的宏快，每一个宏快又是由很多的像素组成，我们计算一个宏快内被标记黑色的个数，比如上图可标记为：

依次类推可得到0-9不同数字的特征数组

二：比对
比对我们使用简单的欧拉比对
step1、将待比对的图片进行灰度，二值化后可获取到待比对的图片的特征图片，
然后按照训练的方式获取到该图片的特征码。
step2、将step1获取到的特征码与训练得到的训练数据进行欧拉比对
step3、使用欧拉计算后的最小值作为最佳值



...]]></description><category></category></item><item><title><![CDATA[Android build子系统详解]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/110121857</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/110121857</guid><author>madannasf</author><pubDate>Wed, 25 Nov 2020 12:17:00 +0800</pubDate><description><![CDATA[概论
Android的build系统是基于GNU Make和shell构建的一套编译环境，Android的编译比较庞大，所以为了统一管理，Android退出了build来统一管理Android的编译。
build处理完成对目标系统的二进制文件，APK运用编译，链接，打包等工作外，还需要生成目标系统的镜像和各种配置文件，同时还维护各个模块间的依赖关系。
build系统可分为三大块，一：位于build/core下的文件，这是build系统的框架和和兴，二：位于device目录下，存放产品的配置参数，三：是各个模]]></description><category></category></item><item><title><![CDATA[多媒体H264课堂笔记]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/110096746</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/110096746</guid><author>madannasf</author><pubDate>Tue, 24 Nov 2020 21:19:49 +0800</pubDate><description><![CDATA[课堂笔记
一：一张图片由很多的宏快组成
二：对于图像场景复杂度高的图像，打散为宏快越小
三：宏快的方向，大小这些信息都存放在宏快的图像信息中。
四：视频的播放的本质就是宏快的运动和新宏快的增加
五：运动弛量：就是表示宏快的运动方向
六：运动补偿：只是在前后两帧插入运动弛量的帧。
七：

...]]></description><category></category></item><item><title><![CDATA[Android 音频系统之驱动篇（一）]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/110093064</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/110093064</guid><author>madannasf</author><pubDate>Tue, 24 Nov 2020 19:52:37 +0800</pubDate><description><![CDATA[马上录入
]]></description><category></category></item><item><title><![CDATA[小坑记录]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/109227877</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/109227877</guid><author>madannasf</author><pubDate>Thu, 22 Oct 2020 18:32:15 +0800</pubDate><description><![CDATA[前言
最近在调试Android的驱动，遇见一些小坑，记录一下
1、Android的input驱动
IO的irq可以正常触发，但是没有input事件只会上报第一次
答：因为input的evbit参数设置错误和keybit参数设置错误
正常的方式
set_bit(EV_KEY,vr_input-&gt;evbit); 
//set_bit(EV_REP,vr_input-&gt;evbit);不需要重复上报
input_set_capability(vr_input, EV_KEY, KEY_F2);//KEY]]></description><category></category></item><item><title><![CDATA[Android sensor框架（native篇）]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108753119</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108753119</guid><author>madannasf</author><pubDate>Wed, 23 Sep 2020 15:45:00 +0800</pubDate><description><![CDATA[一、前言
sensor在实际的产品中占据很大的作用，他是外界环境与系统交互行为入口，比如重力传感器，加速度传感器，磁力计，摄像头等这些都属于sensor（说明：camera在Android上不走sensor框架），总而言之：sensor在整个Android设备上占据很重要的角色。
二、sensor软件框架

如上图所示：sensor的native层由inputManager，inputHub和inputInterface三部分构成。
inputManager负责整个sensor的管理。
inputHub附件]]></description><category></category></item><item><title><![CDATA[Android sensor框架（驱动篇）]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108727169</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108727169</guid><author>madannasf</author><pubDate>Tue, 22 Sep 2020 11:13:46 +0800</pubDate><description><![CDATA[前言
软件结构
总结
一：前言
二：软件结构
2.1、input子系统上报数据
2.2、hal层向driver发送校准参数的misc设备驱动
三：总结

]]></description><category></category></item><item><title><![CDATA[Android9 rk3399开关机充电详解（uboot篇）]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108647202</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108647202</guid><author>madannasf</author><pubDate>Thu, 17 Sep 2020 16:41:49 +0800</pubDate><description><![CDATA[前言
Android开关机流程分析
rk3399 开发机充电uboot适配
一、前言
二、Android开关机流程分析
三、rk3399 开发机充电uboot适配

]]></description><category></category></item><item><title><![CDATA[Ubuntu18编译qt小结]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108613850</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108613850</guid><author>madannasf</author><pubDate>Wed, 16 Sep 2020 07:25:09 +0800</pubDate><description><![CDATA[前沿
编译X11
arm交叉编译
一：前沿
qt作为一款优秀的工具，可以横跨移动端，pc等，特别是20年初推出的qt for mcu后，qt可以更是横跨整个芯片行业。
本次使用的环境
ubuntu：18.04
qt版本：qt-everywhere-opensource-src-5.9.1
gcc版本：arm-linux-gnueabihf-6.3.1
1.1、安装编译所需要的依赖库
sudo apt-get install flex
sudo apt-get install bison
sudo apt-g]]></description><category></category></item><item><title><![CDATA[Android系统的裁剪与定制]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108576371</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108576371</guid><author>madannasf</author><pubDate>Mon, 14 Sep 2020 11:35:18 +0800</pubDate><description><![CDATA[前言
Android系统的启动过程分析
Android系统的裁剪
Android系统的定制

]]></description><category></category></item><item><title><![CDATA[Android的native与apk之间的通信之local socket篇]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108513123</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108513123</guid><author>madannasf</author><pubDate>Thu, 10 Sep 2020 14:16:47 +0800</pubDate><description><![CDATA[前言
local socket原理讲解
实战
一：前言
二：Binder原理讲解
三：实战

]]></description><category></category></item><item><title><![CDATA[Android的native与apk之间的通信之binder篇]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108513064</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108513064</guid><author>madannasf</author><pubDate>Thu, 10 Sep 2020 14:14:17 +0800</pubDate><description><![CDATA[前言
native与apk之间常用的通信方式
Binder原理讲解
实战
一：前言
二：native与apk之间常用的通信方式
三：Binder原理讲解
四：实战]]></description><category></category></item><item><title><![CDATA[Android9的selinux机制]]></title><link>https://blog.youkuaiyun.com/madannasf/article/details/108462834</link><guid>https://blog.youkuaiyun.com/madannasf/article/details/108462834</guid><author>madannasf</author><pubDate>Tue, 08 Sep 2020 10:05:40 +0800</pubDate><description><![CDATA[待写

]]></description><category></category></item></channel></rss>