<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[阿——波罗的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/weixin_44933419</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; weixin_44933419]]></copyright><item><title><![CDATA[嵌入式Android音频系统（三）Android音频系统涉及的文件]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/118653881</link><guid>https://blog.csdn.net/weixin_44933419/article/details/118653881</guid><author>weixin_44933419</author><pubDate>Sun, 11 Jul 2021 15:55:29 +0800</pubDate><description><![CDATA[本专栏将对Android音频系统进行更细致的阐述，同时这些也是我的学习笔记，如有错误欢迎大家在评论区批评指正，谢谢大家。
本专栏的学习资料来源：
本专栏的学习资料主要来自韦东山老师的Android音频系统，需要完整资料的同学，可前往韦东山老师课程观看，支持正版。
一、涉及系统服务的文件:
1.1 添加系统服务文件：

main_mediaserver.cpp(frameworks/av/media/mediaserver/main_mediaserver.cpp)

main_mediaserver.cpp]]></description><category></category></item><item><title><![CDATA[嵌入式Android音频系统（二）Android音频系统的专用名词解释]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/118642373</link><guid>https://blog.csdn.net/weixin_44933419/article/details/118642373</guid><author>weixin_44933419</author><pubDate>Sun, 11 Jul 2021 10:55:39 +0800</pubDate><description><![CDATA[对于Android音频系统学习时可能会出现许多名词，这些词光看字面意思可能无法直接理解，为了更好的对Android系统进行学习，特开一章对Android音频系统会出现的名词进行解释，欢迎大家补充。
本专栏将对Android音频系统进行更细致的阐述，同时这些也是我的学习笔记，如有错误欢迎大家在评论区批评指正，谢谢大家。
本专栏的学习资料来源：
本专栏的学习资料主要来自韦东山老师的Android音频系统，需要完整资料的同学，可前往韦东山老师课程观看，支持正版。
一、名词解释
stream type
app要播放]]></description><category></category></item><item><title><![CDATA[嵌入式Android音频系统（一）Android音频系统专栏开篇]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/118641833</link><guid>https://blog.csdn.net/weixin_44933419/article/details/118641833</guid><author>weixin_44933419</author><pubDate>Sat, 10 Jul 2021 22:59:24 +0800</pubDate><description><![CDATA[对于安卓音频系统，在前面我们已经讲了大致框架，嵌入式Android底层开发（六）Android音频系统_总体框架
本专栏将对Android音频系统进行更细致的阐述，同时这些也是我的学习笔记，如有错误欢迎大家在评论区批评指正，谢谢大家。
本专栏的学习资料来源：
本专栏的学习资料主要来自韦东山老师的Android音频系统，需要完整资料的同学，可前往韦东山老师课程观看。

...]]></description><category></category></item><item><title><![CDATA[C++入门知识（二）——构造函数、析构函数、静态成员、友员函数]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/118243627</link><guid>https://blog.csdn.net/weixin_44933419/article/details/118243627</guid><author>weixin_44933419</author><pubDate>Sat, 26 Jun 2021 14:59:54 +0800</pubDate><description><![CDATA[一、构造函数/析构函数
1、构造函数
构造函数 ，是一种特殊的方法，类提供的构造函数可自动完成对象的初始化任务。
用途：
在创建对象时初始化对象， 即为对象成员变量赋初始值，总与new运算符一起使用在创建对象的语句中。
其他：
1、一个类可以有多个构造函数 ，可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。
2、对象有默认的构造函数，一旦实现了自己的构造函数就必须自己实现默认构造函数。
3、构造顺序，对于类中：类中含有对象成员时，先调用对象成员的默认构造函数，再调用类的构造函数。对于多个对]]></description><category></category></item><item><title><![CDATA[嵌入式Android底层开发（六）Android音频系统_总体框架]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/118092878</link><guid>https://blog.csdn.net/weixin_44933419/article/details/118092878</guid><author>weixin_44933419</author><pubDate>Tue, 22 Jun 2021 18:52:16 +0800</pubDate><description><![CDATA[一、声音的采集与播放
声音的采集与播放大体上分为两种：数字和模拟。
但因为模拟信号存储的声音信号不易存储与传播，故在声音系统中大致采用数字信号。
使用的元器件——声敏电阻
声敏电阻是一种可以根据周围声音响度大小而改变电阻阻值的元件。
声音会使声敏电阻内的石墨震动。有声音的时候，石墨压紧，导通电流就大；声音小的时候石墨片空隙就大，导通电流就小。
采集的流程
人——》声敏电阻——》测量电压——》将采集间隔趋于0（求极限）
当∆足够小的时候，就可将t3至t1时刻的声音接近于原声。

播放的流程
采集得到的电压值—]]></description><category></category></item><item><title><![CDATA[嵌入式Android底层开发（五）Android灯光系统_总体框架]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117952727</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117952727</guid><author>weixin_44933419</author><pubDate>Mon, 21 Jun 2021 14:22:04 +0800</pubDate><description><![CDATA[回顾一下各子系统的共性

一、Android灯光系统的框架
二、Android灯光系统各层的实现
2.1 APP层
提出需求，实现与用户的交互
2.2 JNI层
程序需要包含的部分：
1、获得一个hw_module_t
2、根据不同的name，调用不同的module-&gt;methods-&gt;open，返回不同的light_device_t结构体
其中name有许多种，如背光、电池灯、通知灯
2.3 HAL层
根据APP实现的功能进行编写，把硬件LED再次划分为不同的逻辑灯
1、电池灯：电量的多少，显]]></description><category></category></item><item><title><![CDATA[嵌入式Android底层开发（三）硬件访问服务框架]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117904784</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117904784</guid><author>weixin_44933419</author><pubDate>Tue, 15 Jun 2021 17:08:27 +0800</pubDate><description><![CDATA[一、简单的Android应用程序调用硬件流程图（通过JNI接口直接访问）

但这样存在一个很大的问题：访问仅限与单一程序进行访问，如果多个APP同时访问一个硬件资源（多个APP都需要在LCD进行显示、多个APP想要播放音乐）
如何解决？添加一层SystemServer，SystemServer作为APP的选择器，提供仲裁

二、Android的硬件访问服务框架
上面提出了SystemServer，而在Android中SystemServer是使用JAVA编写，这就意味着SystemServer执行完成后依然]]></description><category></category></item><item><title><![CDATA[嵌入式Android底层开发（二）Android消息处理机制]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117901792</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117901792</guid><author>weixin_44933419</author><pubDate>Mon, 14 Jun 2021 14:25:39 +0800</pubDate><description><![CDATA[一、提前预备的知识
1、线程
一个应用程序运行时它的主体被称为进程
2、如何判断是否发生了某些事件
2.1查询方式（while（…））
非常消耗资源
2.2休眠——唤醒
谁来唤醒？其他线程、内核来唤醒
如果是其他线程来唤醒。那么就会引出线程间的通信
如何通信？使用内核的epoll来实现
如何实现？内核创建管道pipe，子线程读管道里的数据，主线程向管道里写数据。当主线程检测到按键被按下，将会对管道里写信息，子线程读到，获取按键按下的信息。

下面以按键程序为例：


3、Android下message
对于]]></description><category></category></item><item><title><![CDATA[Linux驱动编程篇（五）——驱动设计的思想（面向对象）（分层）（分离）]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117628078</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117628078</guid><author>weixin_44933419</author><pubDate>Sat, 12 Jun 2021 20:46:14 +0800</pubDate><description><![CDATA[Liunx驱动 = 驱动框架 + 硬件操作
===》Liunx驱动 = 驱动框架 + 单片机

]]></description><category></category></item><item><title><![CDATA[C++入门知识（一）——类的引入、访问控制、this指针、重载、指针和引用]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117840117</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117840117</guid><author>weixin_44933419</author><pubDate>Sat, 12 Jun 2021 12:32:56 +0800</pubDate><description><![CDATA[一、类的引入、类与对象
C++中结构体与类的区别
class Person_kind2 {
	char *name;
	int age;
	char *work;
};
int main(int argc,char**argv)
{
	int i;						//int是类型，i是变量
	Person_kind2 lisi；	//Person_kind2是类，lisi是对象
}

二、访问控制
C++中对于结构体、类内的数据有三种访问权限设置：1、private 2、protected 3、public
p]]></description><category></category></item><item><title><![CDATA[嵌入式Android底层开发（一）——安卓开发的整体框架与简述]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117814895</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117814895</guid><author>weixin_44933419</author><pubDate>Fri, 11 Jun 2021 15:08:24 +0800</pubDate><description><![CDATA[一、Android简介
Android是一种基于Linux内核（不包含GUN组件）的自由及开放源代码的操作系统，主要使用于移动设备，如智能手机和平板电脑，由美国Google公司和开放手机联盟领导及开发。
主要参数表：




参数





上线时间
2008年9月23日


系统家族
类Unix、Linux


内核类型
宏内核（Linux内核）


二、Android系统的组成
大体为三部分组成：1、BootLoader 2、Linux内核 3、根文件系统

三、Android系统的分层

可以分为四层]]></description><category></category></item><item><title><![CDATA[Liunx QT开发篇——全网最全的使用QT开发安卓环境搭建教程（Qt on Android）（QT5.13.0）]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117606180</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117606180</guid><author>weixin_44933419</author><pubDate>Wed, 09 Jun 2021 09:05:49 +0800</pubDate><description><![CDATA[一、安装开发环境 qt creator

二、安装JDK
三、安装SDK，并记录安装目录
四、下载NDK，从下面网址，找到旧版入口
五、QT配置及工程创建
六、运行及调试

]]></description><category></category></item><item><title><![CDATA[Linux驱动编程篇（四）——LED驱动（二）LED驱动框架]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117291369</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117291369</guid><author>weixin_44933419</author><pubDate>Sun, 06 Jun 2021 13:57:58 +0800</pubDate><description><![CDATA[为应对多种芯片或开发板适配的LED驱动程序，同时减少开发流程，故需要在APP、驱动程序、硬件三个部分中添加一个部分，用于放置各单板LED驱动程序的公共部分。
一、LED驱动程序框架的流程图

二、对于公共部分的解决方案
方案一：

选择开发板A时，编译时选择编译的文件为：leddrv.c、Board_A.c；
选择开发板B时，编译时选择编译的文件为：leddrv.c、Board_B.c；
方案二：
面向对象的思想
抽象一个结构体led_operations
struct led_operations {
	]]></description><category></category></item><item><title><![CDATA[Linux驱动编程篇（三）——LED驱动（一）简单LED驱动]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117260603</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117260603</guid><author>weixin_44933419</author><pubDate>Wed, 26 May 2021 10:35:40 +0800</pubDate><description><![CDATA[一、LED驱动程序的实现目标
1、打开LED
2、关闭LED
二、LED驱动程序的实现部分
1、内核层LED驱动程序
2、应用层LED测试程序
三、内核层LED驱动程序的编程步骤
1、添加头文件
2、确定主设备号，也可以让内核分配
3、定义自己的 file_operations 结构体
4、实现对应的 drv_open/drv_read/drv_write 等函数，填入 file_operations 结构体
5、实现入口函数：安装驱动程序时，就会去调用这个入口函数，执行工作：
(1)把 file_oper]]></description><category></category></item><item><title><![CDATA[手写一个操作系统篇（一）——内核结构与设计]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/117077948</link><guid>https://blog.csdn.net/weixin_44933419/article/details/117077948</guid><author>weixin_44933419</author><pubDate>Thu, 20 May 2021 20:08:32 +0800</pubDate><description><![CDATA[本专栏源于极客时间《操作系统实战45讲》个人的学习笔记
一、计算机中资源大致可以分为两类资源，一种是硬件资源，一种是软件资源，而内核是硬件资源和软件资源的管理者。
硬件资源：
1.总线，负责连接各种其它设备，是其它设备工作的基础。
2.CPU，即中央处理器，负责执行程序和处理数据运算。
3. 内存，负责储存运行时的代码和数据。
4. 硬盘，负责长久储存用户文件数据。
5. 网卡，负责计算机与计算机之间的通信。
6. 显卡，负责显示工作。
7. 各种 I/O 设备，如显示器，打印机，键盘，鼠标等。
软件资源：]]></description><category></category></item><item><title><![CDATA[Linux驱动编程篇（二）——硬件基础（1）存储器]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/116900747</link><guid>https://blog.csdn.net/weixin_44933419/article/details/116900747</guid><author>weixin_44933419</author><pubDate>Sun, 16 May 2021 20:55:54 +0800</pubDate><description><![CDATA[存储器大致分为两种：非易失性存储器（NVM）、掉电丢失存储器（RAM）

一、非易失性存储器（NVM）
1. ROM
1.1. ROM（）
不可编程ROM
1.2. PROM（不）
可编程ROM
1.3. EPROM
可擦除可编程ROM
1.4. EEPROM
电可擦除可编程ROM，可以完全使用软件擦除
2. Flash
Flash市场上两种主要技术是或非、与非闪存技术。
2.1. NOR Flash
或非闪存技术。1988年，Intel
NOR Flash与CPU的接口属于典型的类SRAM接口，不需要增加]]></description><category></category></item><item><title><![CDATA[Linux驱动编程篇（一）—Hello驱动（字符驱动程序）（不涉及硬件）]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/116400295</link><guid>https://blog.csdn.net/weixin_44933419/article/details/116400295</guid><author>weixin_44933419</author><pubDate>Fri, 07 May 2021 11:33:48 +0800</pubDate><description><![CDATA[一、在应用层的APP上调用glibc，Linux系统会做哪些事？
如果访问的是普通文件，则会经系统调用后访问。
如果是驱动程序则会通过调用驱动程序对应的代码进行访问（提供drv_open），如下图。

二、编写驱动程序的几个步骤

① 确定主设备号，也可以让内核分配
② 定义自己的 file_operations 结构体
③ 实现对应的 drv_open/drv_read/drv_write 等函数，填入 file_operations 结构体
④ 把 file_operations 结构体告诉内核：reg]]></description><category></category></item><item><title><![CDATA[小米面经（2021春招）]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/116325554</link><guid>https://blog.csdn.net/weixin_44933419/article/details/116325554</guid><author>weixin_44933419</author><pubDate>Sat, 01 May 2021 11:08:41 +0800</pubDate><description><![CDATA[3月31日投的，本来是想投嵌入式工程师的，看了一下发现没有了，后来得知C/C++有一部分也是嵌入式的，赶紧投递，4月21日接到一面邀请，4月26日接到二面邀请，4月28日接到HR电话。面试官也很专业。效率非常高。
一面（60分钟）
1、简单介绍一下自己

ARM、单片机部分
2、讲一下ARM里面LR寄存器是什么？是做什么用的？ARM的硬件结构有哪些组成？
这题没答出来，忘记了。好尴尬     简历上还写的熟悉ARM 惭愧。
3、讲一下你们比赛用的哪些芯片？芯片都有哪些模块（这里应该指IIC、SPI这些）？
]]></description><category></category></item><item><title><![CDATA[Linux系统编程篇—开源压缩包的使用流程（libcurl库为例）]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/116275064</link><guid>https://blog.csdn.net/weixin_44933419/article/details/116275064</guid><author>weixin_44933419</author><pubDate>Fri, 30 Apr 2021 13:37:13 +0800</pubDate><description><![CDATA[一、libcurl库简介

libcurl是一个跨平台的网络协议库，支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权，HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传，代理，cookies,和用户认证。

二、下载
库下载https://github.com/curl/curl/releases/tag/curl-7_71_1
三、解压
tar xvf curl-7.71.]]></description><category></category></item><item><title><![CDATA[Linux系统编程篇—系统调用（ARM嵌入式）]]></title><link>https://blog.csdn.net/weixin_44933419/article/details/115901823</link><guid>https://blog.csdn.net/weixin_44933419/article/details/115901823</guid><author>weixin_44933419</author><pubDate>Tue, 20 Apr 2021 14:34:21 +0800</pubDate><description><![CDATA[一、系统调用的实现框图

二、系统调用的实现细节


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