自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (12)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android 14 - HDMI_CEC架构分析

null) {//构造HdmiCecControllerreturn;

2025-03-04 10:24:08 1185

原创 Android 14输入系统架构分析:图解源码从驱动层到应用层的完整传递链路

Android系统源代码情景分析

2025-02-17 11:13:11 1239

原创 Amlogic BSP-HDMI模块驱动分析

HDMI涉及的知识较多,这里做一些HDMI的简要分析,希望能给大家提供一些思路所在层次名称代码路径kerneldriver//注意TV没有tx的应用场景kerneldtsrelease/aml-comp/kernel/aml-5.4/arch/arm/boot/dts/amlogic/t5d_t950d4_am301_linux_1.5g.dts //1.5g指ddr内存//以上修改的话最好一起修改,覆盖不同芯片多个方案kernelpinctrl子系统bootboothdmi。

2023-12-29 23:25:24 2129 2

原创 Amlogic IR模块Linux驱动分析

Amlogic linux IR驱动

2023-11-05 21:36:53 1178

原创 重新理解Linux交叉编译及编译流程

文章目录一、背景二、gcc和arm-linux-gcc的常用选项二、交叉编译的四个流程及实例说明1、预处理(preprocessing)2、编译(compilation)3、汇编(assembly)4、链接(linking)参考书籍1、编译原理2、嵌入式Linux应用开发一、背景编译性程序源文件需要经过编译才能生成可执行文件,比如一个C/C++文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking)等4步才能变成可执行文件。

2022-03-12 23:19:09 37376 16

原创 English语法 - 序章(重新认识英语)

英语学习方法论与要点总结 本文系统梳理了英语学习的核心认知与方法论。作者通过反思传统学习误区,指出语法是英语体系的基础骨架,强调建立语法框架与词汇网络的系统性学习。中英对比揭示了表音文字与表意文字的本质差异:英语重形合逻辑(法治),中文重意合连贯(人治)。学习策略上提出"语法+中文媒介"的过渡模式,通过思维导图构建知识网络,并区分口语与书面语的语法宽容度。文中还创新性地将编程思维类比语言学习,强调"猜想-验证"的解决问题能力,同时提供音标、词法、句法等系列学习资源链接

2020-02-11 20:53:55 22977

原创 Android14音频子系统-Framework分析

先来看看一个APP播放多媒体音频示例程序// 音频采样率// 音频通道配置// 音频格式// 创建 AudioTrack 对象.build();// 生成示例音频数据(1秒 440Hz 的正弦波)// 秒// Hz// 最大振幅(16位PCM)i++) {// 开始播放// 将音频数据写入 AudioTrack// 停止播放并释放资源APP播放音频流只需要简单的几个步骤疑问:1、音频数据格式 谁来解析处理?编解码模块(Codec)负责处理。

2025-06-26 10:25:42 1019

原创 Android14-HAL分析

1、HIDL HAL是什么?1)HIDL全称HAL interface definition language,而HIDL HAL则为,使用HIDL语言描述HAL层的对外接口,2)注意HIDL语言只是一个Google提供的辅助工具,必须使用?不是,自己也可以自行实现所有代码2、与传统HAL的区别?1)传统HAL:用户<->HAL<->驱动2)HIDL HAL:用户(client) <-> HIDL(hidl-gen) <-> HAL(service) <-> 驱动。

2025-06-26 00:05:30 1125

原创 Android14音频子系统-Audio HAL分析

1、回顾HAL、tinyalsa与linux driver的关系2、与AudioFlinger的关系3、1、如何判断当前平台用的是哪个库?可尝试注入错误代码,单编 验证一下 > 但编了也不一定会用!2、hal的作用?隐藏了什么细节,还是说只是为了符合Android框架而写?>>播放数据之前的,设置的步骤和参数就是厂家要保护的内容3、HAL如何对接tinyalsa?把tinyalsa当做一个库接口使用即可。

2025-06-25 23:43:09 468

原创 Android14音频子系统-ASoC-ALSA之DAPM电源管理子系统

ALSA声卡驱动中的DAPM详解之一 :https://blog.csdn.net/DroidPhone/article/details/12793293基本概念>>可以当做ASoc-ALSA系统下的一个子系统,构造也是相当复杂,但声卡驱动需要熟悉此框架,使用其框架的宏和API来构造(电源)寄存器对象;产生的背景:1)ASOC框架中动态音频电源管理子系统 - 设计的目的是省电2)同时也达到减少暴露给应用的操作(寄存器操作)效果 - 比如封装打开某个input通道、MUX、mixer操作等等;

2025-06-25 23:32:03 727

原创 Android14音频子系统-Linux音频子系统ASoC-ALSA

1、linux ALSA ASoc架构: https://blog.csdn.net/weixin_45437140/article/details/1286375212、alsa框架介绍:https://blog.51cto.com/u_93011/8854396 原文(付费):https://blog.csdn.net/RadianceBlau/article/details/79432661。

2025-06-25 23:25:48 1024

原创 Android14音频子系统-Linux音频子系统ALSA

面对多种多样的codec芯片和总线,音频子系统需要做的就是兼容所有设备,换做是你的话该怎么设计?1、ALSA如何统一规范?1)ALSA驱动本质上是对字符设备驱动的进一步封装,由于抽象更统一的接口使其变得复杂一些;2)封装字符设备的操作,向上统一提供接口,驱动程序必须使用其提供的API注册声卡设备;>>三层file_operations结构:顶层->控制->playback/capture3)使用ALSA的大部分是PCI设备,即个人电脑上的声卡;

2025-06-25 23:17:02 1040 1

原创 Android14音频子系统 - 系统框架概述

2、Native层的AudioFlinger管理着系统中的输入输出音频流,并承担着音频数据的混合,通过读写Audio硬件实现音频数据的输入输出功能;3)由于Android更新相当频繁,需要设计统一的接口(audio_hw_device、audio_stream_out、audio_stream_in);厂商提供的HAL库:audio.a2dp.default.so、audio.primary.default.so、audio.usb.default.so。1、hal库(Android8以下);

2025-06-25 22:59:23 2037

原创 理解Android Studio IDE工具

1、待续。

2025-05-03 14:40:00 504

原创 如何在Android系统上单编ko?

/$(CROSS_COMPILE)strip --strip-debug 裁剪ko,去掉冗余信息,由于Android系统会统一后处理,不会体现在单个模块的mk里,需要加上。1、完整编译kernel的环境,驱动编译需要依赖kernel的生成物;1、在Android系统编译LOG上找到编译器信息(一般都会打印出来)3)进入docker,在此makefile目录下敲make。2、基于源MK构造 可独立运行的makefile。3、将所需环境变量配置在当前mk里;2、编译器及编译选项;

2025-04-10 20:40:04 872

原创 深度学习之学习路线

文章目录一、机器学习的关联技术二、机器学习的基本概念三、机器学习的应用现状四、机器学习学习资料一、机器学习的关联技术1、二、机器学习的基本概念1、三、机器学习的应用现状1、四、机器学习学习资料1、...

2022-02-16 22:53:43 5427

原创 机器学习之绪论

文章目录一、机器学习的关联技术二、机器学习的基本概念三、机器学习的应用现状四、机器学习学习资料一、机器学习的关联技术1、二、机器学习的基本概念1、三、机器学习的应用现状1、四、机器学习学习资料1、...

2022-02-16 22:52:38 571

原创 计算机中各个重要长度指标分析

学习计算机中各类长度指标很容易混淆,梳理总结如下:看图理解1、机器字长:简称字长,计算机一次能处理的最大二进制数据的位数,如32/64位系统指的就是机器字长,一般与内部寄存器(ACC、MQ、通用寄存器等)和ALU数据通路相等;2、存储字长:一个存储单元所储存的二进制数据的长度,由MDR的位数决定;3、指令字长:一个指令字中包含二进制数据的位数,由操作码+地址码位数决定,一般取存储字长的整数倍;4、PC位数:一般由MAR的位数决定;以上指标都必须是字节的整数倍;...

2022-01-04 21:08:41 3499

原创 python爬虫概述及编写demo

我们所熟悉的一系列搜索引擎都是大型的网络爬虫,比如百度、搜狗、360浏览器、谷歌搜索等等。每个搜索引擎都拥有自己的爬虫程序,比如 360 浏览器的爬虫称作 360Spider,搜狗的爬虫叫做 Sogouspider。

2022-01-04 10:31:09 24256 2

原创 华为实验室中嵌入式开发设备(基站)的网络连接模型介绍

linux开发人员办公电脑常常需要连接Linux服务器和目标设备;那么它们之间是如何连接的呢?华为实验室的连接模型如下(列举一种最常用的模型):说明:交换机:可以理解为一台专用linux设备,用于组织局域网交互;串口服务器:同样可以理解为一台专用linux设备,用于扩展串口,并转化为网络(telnet服务)...

2021-03-20 23:40:38 21518

原创 makefile gcc优先链接静态库、指定链接静态库的几种方法

方法一:简单粗暴1、直接指定静态库全称一般我们用-l来指定链接库,如果动态库、静态库都可以使用,会优先链接动态库,我们可以直接指定静态库全称来实现只链接静态库,如:gcc libssl.a方法二:-static : 所有的库文件使用静态库链接gcc -static -ltest -lfoo注意:libtest libfoo 都将只使用静态库,如果没有提供链接无法通过方法 三:–Bdynamic : 用于在各种可能的情况下为共享动态绑定设置首选项。-Bstatic : 将绑定只限制于静态库

2021-01-28 22:52:11 33158 1

原创 linux下通过C语言编程实现读取系统信息 - Meminfo

在linux下编程,常常需要获取系统信息,以下通过编程实现抓取系统信息,可以将下列代码作为一个模板来修改实现自己的需求。文章目录一、源码二、编译三、运行效果一、源码#include <stdlib.h>#include <stdio.h>#include <unistd.h>int main(int agrc, char **argv){ char buf[64] = {'\0'}; FILE *Stream;

2021-01-26 22:44:23 2149

原创 python项目实践:EXCEL处理,汇总多个excel文件特定数据,生成直方图呈现

python能够轻松实现自动化办公,一些金融、证券、会计行业中会经常处理excel中的大量数据,工序单一,任务繁多,以下 项目实现汇总多个excel文件特定数据,生成图表呈现,可以作为一个模板进行改造升级应用:文章目录一、源代码二、使用一、源代码#!/usr/bin/env pythonimport osimport re'''excel操作库'''import xlrdimport xlwt#复制、分割、刷选excel等功能from xlutils.copy import *impo

2021-01-26 00:02:31 2839

原创 python项目实践:log处理,提取日志中的性能数据

python能十分方便地进行文本处理,文本数据分析、提取、替换或综合应用都十分轻松,以下在项目中需要对日志中性能数据提取并写入到xls,方便对性能优劣分析,以下 项目可以作为一个模板进行改造升级应用:源代码#!/usr/bin/env pythonimport osimport sysimport reFILTER_1 = "10(0 failed) times"FILTER_2 = "perf data"FUN_NAME = ['test func perf']def filter

2021-01-25 23:49:21 29173

原创 词根词缀的实践应用 - 词根词缀词典&墨墨详细使用

摘要: 本文推荐了两款英语学习工具:词根词缀词典APP和墨墨背单词。词根词缀词典通过分析词源(如vis/vid同源词根)、派生词(如provide)及用户笔记,帮助理解单词构成;墨墨背单词则基于艾宾浩斯曲线,提供多词典查询、助记联想及真题例句,适合备考。两者结合可系统提升词汇记忆效率。

2021-01-23 23:58:37 2814

原创 英语词缀与英语派生词词典读书笔记,并总结输出思维导图

本文主要探讨英语词缀在构词法中的核心作用。重点分析了词缀的分类(前缀、中缀、后缀)、来源(本族语、拉丁语、希腊语)及其在构词过程中的形态、语音、语义和语法变化规律。特别强调了词缀对派生词词形、词义、词性和重音的影响机制,并指出词缀与词基的复杂互动关系。文章还深入讨论了多层派生词构词顺序、异源同形词缀、词缀多义性等特殊现象,以及现代英语中词缀发展的新趋势。通过系统梳理词缀的语法属性和构词规则,为理解英语派生词的形成提供了理论框架。

2021-01-23 21:04:58 5785

原创 英语词根与说文解字词典读书笔记,并总结输出思维导图

本文主要探讨英语词缀在构词法中的核心作用。重点分析了词缀的分类(前缀、中缀、后缀)、来源(本族语、拉丁语、希腊语)及其在构词过程中的形态、语音、语义和语法变化规律。特别强调了词缀对派生词词形、词义、词性和重音的影响机制,并指出词缀与词基的复杂互动关系。文章还深入讨论了多层派生词构词顺序、异源同形词缀、词缀多义性等特殊现象,以及现代英语中词缀发展的新趋势。通过系统梳理词缀的语法属性和构词规则,为理解英语派生词的形成提供了理论框架。

2021-01-23 20:58:03 4108

原创 用构词法重新辨析 triweekly与entrance

英语单词中的歧义现象往往可以通过构词法分析其根源。以"triweekly"为例,由于词缀结合顺序不同,既可表示"每周三次"(tri- + weekly),也可表示"每三周一次"(triweek + ly)。而"entrance"则因不同词源形成了两个同形异义词:动词(en- + trance)和名词(enter + -ance)。这些看似特殊的现象实际上都有其构词规律,深入分析构词法能有效提升英语理解能力,避免机械记忆。

2021-01-17 18:33:09 2212

原创 英语单词记忆原理及方法 - 超全思维导图梳理

单词记忆的原理是构建记忆线索作为桥梁,通过联想连接发音与词义。重复使用这些线索能形成长期记忆,随后可舍弃这些"临时素材"("过河拆桥"理论)。虽然死记硬背也能达成记忆,但效率低下。单词构造具有逻辑规律,应通过理性分析挖掘规律,而非仅凭感性认知。记忆方法的核心在于提高重复效率并增加趣味性,使记忆过程更高效且易于接受。

2021-01-05 23:10:31 2442

转载 2020考研计算机(408)考试大纲原文以及分析

2020.10.6 update:本文原来参照的是新东方考研和中公考研的文章,因为我当时只搜到了他们的,后来发现王道论坛也有,前两家给出的考纲变动基本上是一样的,王道的给出来的变动则多了一些内容: 数据结构:各种内部 排序算法的比较 计算机网络:IPV4增加路由聚集, 计算机组成原理:(一)计算机发展历程 ;微指令 命令的编码方式;新...

2020-12-26 19:59:55 4824

原创 Linux内核 container_of 命令宏图解分析

一、背景二、宏1、2、语法分析3、逻辑处理分析

2020-11-13 23:34:32 21033

原创 cmake构建语言梳理总结

一、make&cmake背景1、make是什么?a、在大型的linux开发项目中,通常有几十到上百个源文件,如果每次通过手工键入gcc命令进行编译不切实际,为此,提供了一个make工具来自动编译和维护项目源码,make执行的对象是使用make语法写成的即makefile文件;2、make工具的种类:GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等;3、cmake是什么,解决什么问题?先来看问题,make工具固然好用,

2020-10-28 23:39:29 21458

原创 ARM 编程:C语言与汇编间互相调用,参数与返回值的传递方式详解

函数调用时的规则如下:父函数与子函数间的入口参数依次通过R0R3这4个寄存器传递。父函数在调用子函数前先将参数存入到R0R3中,若只有一个参数则使用R0传递,2个则使用R0和R1传递,依次类推,当超过4个参数时,其它参数通过栈传递。当子函数运行时,根据自身参数个数自动从R0~R3或者栈中读取参数。子函数通过R0寄存器将返回值传递给父函数。子函数返回时,将返回值存入R0,当返回到父函数时,父函数读取R0获得返回值。发生函数调用时,R0R3是传递参数的寄存器,即使是父函数没有参数需要传递,子函数也可以任

2020-09-22 21:59:52 25390

原创 linux服务器之间传输文件高效命令 - scp命令使用以及注意

Linux scp 命令用于 Linux 之间复制文件和目录,scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。命令格式:scp [可选参数] file_source file_target可选参数一般选这两个两个: -r 递归拷贝 -q 不显示进度条可以从远程拷贝到本地:scp -r -q [email protected]:/home/filename /usr/filename也可以从本地拷贝到远程:scp -r -q

2020-09-15 23:48:49 1845

原创 SourceInsight 函数符号为灰色,无法跳转的原因?

原因大致有以下三个:1、代码第一次建立,或者更新过,没有进行代码同步操作;2、项目代码没有加全;3、该函数为库函数;以上原因需要自己逐个排查。

2020-09-15 23:36:32 11390 2

原创 C语言复合表达式,意外整数溢出问题

背景,运行在ARM CPU 寄存器为32bit系统:#defin BILLION 1000000000long a =2, b = 2;long long c;c = 1 + (a + b) * BILLION;printf("c value:%d\n", c);现象,c值溢出了变为负数,相加的结果并不会超出long long 的范围:原因分析,long的取值范围:-2147483648~+2147483647,而 (a + b) * BILLION结果已经超出long的储存范围,又因为CP

2020-09-13 18:11:38 1400

原创 linux服务器编译报错:DSO missing from command line原因及解决办法

报错信息提示包含以下两行:*****undefined reference to symbol*****libfastrtps.so.1:error adding symbols: DSO missing from command line原因:提示说符号没有找到定义,但后面指出在libfastrtps.so.1动态库中找到该符号,(DSO missing from command line) 意思就是你没有在makefile指定要使用该库,加上 -llibfastrtps 指定以下即可;错误提示说

2020-09-13 17:47:41 32814 2

原创 为什么基础薄弱 传统课堂上学不好英语?

摘要: 英语学习是一个系统性过程,传统课堂难以适应个体差异,导致学习效率不均衡。建议采用《新概念英语》系统教材和张道真/薄冰语法书自学,根据个人水平调整进度。强调语言能力培养应优先于应试,考试只是语言学习的自然结果。个人学习经验分享,欢迎讨论。

2020-09-06 12:41:49 1160

原创 python编程:利用openpyxl 创建直方图实现函数,输入起始行号列号快捷创建

参考openpyxl的库文档创建直方图,但例程缺乏数据范围的明确说明,让人不知如何填入数据的行列,因此做了通用函数封装官方文档实现from openpyxl import Workbookfrom openpyxl.chart import (BarChart,Reference,Series,) wb = Workbook()ws = wb.activerows = [['Number', 'Batch 1', 'Batch 2'],[2, 40, 30],[3, 40, 25]

2020-08-09 22:52:53 2023

原创 SourceInsight 使用FAQ

1、SourceInsight 、IAR路径问题导致退出(破解软件通常会出现路径太长或者不支持中文路径问题);2、中文乱码问题设置编码GB2312,注意设置完后需要重新打开文件才能正常显示;SI3.x对中文支持不是很好,4.x后面支持优化了许多3、向项目中添加文件时,只添加特定类型的文件(文件类型过滤器)编辑汇编代码时,在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来只加了.inc和.asm后缀的,.s后缀的没有。而且用SIS打开.s

2020-08-09 22:14:55 1285

ubuntu下编程工具(shell脚本).pdf

ubuntu下shell脚本教学,ppt来的,简单而全,linux新手或者想系统了解复习的童鞋,需要的取走。

2020-01-18

makefile全套资料&lds链接脚本&通用makefile例子.rar

资料包含:跟我一起写Makefile GNU make 中文手册(新) lds链接脚本 通用makefile代码例子

2020-01-19

HUPlayer(Windows&安卓&苹果MAC)

HUPlayer(包括 Windows 苹果MAC 安卓大集合);网上找了好久,需要的请拿走

2018-02-21

汇编资料大全(AT&T).rar

在学习GNU汇编时收集的资料和电子书籍,x86架构、AT&T格式,有需要的童鞋取走 - 汇编资料大全(AT&T)

2020-01-18

嵌入式linux开发概述与环境搭建.rar

包含嵌入式linux开发概述与环境搭建两个pdf文件,可以初步了解嵌入式linux平台的开发过程,以及开发环境

2020-03-22

secureCRT7.37&8.0(x86+x64)+注册机

网上找了好久的secureCRT,版本包括7.37(x86)、8.03(x86+x64),亲测可行!!

2018-02-21

Altium_designer_summer教材&&pcb设计教程.rar

Altium_designer_summer教材、pcb设计教程完整版,平时当作手册查询,十分使用的文档资源

2020-04-07

sourceInsight3.5&amp;4.0操作手册.rar

sourceInsight3.5&amp;4.0用户手册,手册包含详细的软件使用、设置说明;在使用软件过程中,可以通过查询对应章节来解决问题,发掘扩充功能;

2020-07-19

cmake实践&amp;中文手册.rar

cmake实践、cmake中文手册,学习cmake必备手册,在大型linux开发项目中,必然会用到cmake工具,因此很有必要系统掌握cmake

2020-10-28

x86_AT&T格式例程.rar

在学习GUN汇编时,实践过的例子,包括有:延时、打印、算最大值三个例子,代码有详细注释,编译可执行。

2020-01-18

STM8_W25Q16驱动(寄存器版本)

STM8S208驱动W25Q16FLASH芯片(寄存器版本),亲测可行

2017-12-20

SourceInsight3.5看代码神器+破解文件

SourceInsight3.5看代码神器,里面包含破解文件(SN.text)+使用技巧教程;安装破解教程:https://jingyan.baidu.com/article/c1a3101eabcca2de656debc6.html;有需要的拿走

2018-02-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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