- 博客(573)
- 收藏
- 关注
原创 Linux内核中的音频架构
Linux音频架构可以看作一个分层、模块化的软件栈🏗️ Linux音频架构总览(4层模型)层级名称作用代表组件应用层用户空间应用程序生成或消费音频数据aplayGStreamerMPV、浏览器、游戏API层音频编程接口为应用提供统一的音频访问方式ALSA-libPulseAudioPipeWireJACK内核层ALSA核心驱动管理硬件设备、路由音频数据sound/soc/(ASoC)、具体硬件驱动硬件层物理音频设备数字↔模拟信号转换、声音输出/输入。
2026-06-30 14:43:33
216
原创 Linux下的UART串口驱动框架
Linux 内核有非常成熟和标准化的 UART 串口驱动框架。这个框架的核心设计思想是分层与抽象,它把与硬件无关的通用逻辑和与具体芯片相关的底层操作分离开来。作为驱动开发者,主要的工作就是根据这个框架,补充自己硬件平台特有的部分。高内聚低耦合:各层职责清晰,上层的标准接口(如termios)和应用逻辑保持稳定,不随底层硬件变化。减少重复工作:内核已经实现了TTY层和UART核心层中绝大部分通用功能。开发聚焦:开发者只需关注如何实现uart_ops结构体中的硬件操作函数,并将自己的驱动注册到框架中。
2026-05-27 12:39:44
402
原创 MobaXterm简介和使用总结
MobaXterm 是一款面向开发者、运维工程师和系统管理员的 增强型终端模拟器,由法国 Mobatek 公司开发。它将传统的 PuTTY、WinSCP、Xming 等多款工具的功能整合到了一个统一的界面中,极大地提升了远程管理的效率。与传统的 PuTTY 相比,MobaXterm 最大的优势在于它不仅仅是一个 SSH 客户端,更是一个 全功能的远程计算工具箱。你可以在同一个窗口中同时管理多台服务器的终端会话,传输文件,甚至运行图形化的 Linux 应用程序。核心优势。
2026-05-22 10:31:39
514
原创 wpa_ctrl接口简介和使用总结
认识wpa_ctrl认识wpa_ctrl在嵌入式Linux的C语言开发中,与交互的标准方法就是使用它官方提供的 wpa_ctrl。这个接口以一组简单的C函数形式提供,它也正是wpa_cli这个命令行工具背后的实现基础。这是一个非常轻量且高效的方案,没有复杂的依赖,特别适合嵌入式环境。在后台运行时,会创建一个用于本地进程间通信。你的程序通过连接这个 Socket,发送基于文本的命令(如"PING""SCAN"),并接收返回的信息或异步事件。:你需要从wpa_ctrl.h: 头文件,包含所有API声明。
2026-05-19 20:38:47
375
原创 mac80211基础知识总结
它不负责搬运数据,而是负责"找谁连接、怎么连上、什么时候断开、睡着了怎么叫醒"等所有管理性事务。在 AIC8800 这种 FullMAC 芯片中,MLME 的大部分逻辑由模组内部的 Cortex-M4F 固件实现,主机驱动通过消息接口来调用它。
2026-05-12 14:16:16
384
原创 关于wifi模组的基本知识总结
AIC8800D40是爱科微(AIC)推出的一款具体型号芯片,属于我之前介绍的AIC8800系列。它的核心特点是同时支持Wi-Fi 6(第六代无线网络)和蓝牙5.4的双模单芯片解决方案。你可以把它理解为AIC8800系列中的一个主流型号,很多市售的Wi-Fi 6模组都是基于这款芯片开发的。核心规格与性能主要参数具体指标无线标准Wi-Fi 6 (802.11 a/b/g/n/ac/ax),蓝牙 5.4频段支持双频:2.4GHz 和 5GHz天线配置1T1R(单发单收)最大速率286.8 Mbps。
2026-05-12 10:51:15
453
原创 各种接口/协议的速率总结对比
用户类型宽带建议 (bps)典型场景轻度用户30–50 Mbps刷网页、微信、偶尔看视频家庭普通使用2–3 人同时看 4K 视频、刷抖音家庭重度使用多人直播游戏、NAS、4K 流媒体影音发烧友4K/8K 远程流、PT 下载、多设备专业/发烧用户1–2.5 Gbps家庭工作室、远程 4K 剪辑、多路串流。
2026-05-09 21:53:08
815
原创 认识BLE MESH架构和实际开发过程
传统蓝牙的Host/Controller架构,在Mesh协议栈中被完整保留了。Mesh并非抛弃了这一经典架构,而是在其基础之上,新增了一套独立的网络层。简单来说,它是在同一个地基上,盖了另一栋楼。让我们通过架构图来清晰地展示这一点:从图中可以清晰地看到,Mesh协议栈与传统BLE协议栈在主机层并驾齐驱,但它们都通过同一个 HCI 接口,共享底层的控制器和物理层硬件。🧱 “主机-控制器”架构是蓝牙的基石这个架构是蓝牙技术的核心。主机 (Host):这是系统的“大脑”,运行在设备的主CPU上。
2026-05-08 20:21:56
443
原创 关于wifi和蓝牙的共存问题
Wi-Fi和蓝牙共存问题,本质上是一个“一山不容二虎”的物理问题:它们都挤在拥挤的2.4 GHz频段(约 2400-2483.5 MHz)。当两个无线电台靠得很近,同时收发数据时,就会像两个人同时说话一样,互相干扰。在嵌入式开发中,这个问题尤其重要:如果处理不当,你会发现连接着蓝牙耳机时,Wi-Fi 速度骤降;或者反过来,Wi-Fi 大量下载时,蓝牙音频开始卡顿、断连。下面从原理到实战,帮你理清共存问题的核心脉络与解决方案。1. 为什么不共戴天?—— 干扰的本质Wi-Fi。
2026-05-07 20:22:20
562
原创 详解Wi-Fi的四次握手
你之所以在 Wi-Fi 帧的类别里找不到"四次握手",是因为四次握手根本就不是以独立的帧类型存在的。1. 简单的答案:它"穿"着数据帧的外衣你之前的理解框架完全正确,Wi-Fi 帧主要分为管理帧、控制帧、数据帧三大类。管理帧 (如 Beacon, Probe, Authentication, Association):用于建立连接、宣告网络等。控制帧 (如 RTS, CTS, ACK):用于辅助数据传输,如清空信道、确认接收。数据帧 (Data Frame):用于承载上层数据。
2026-04-30 21:35:36
512
原创 聊聊wifi的物理层和链路层
虽然各网络介质的物理层和链路层有差异,但基本职责是一样的,只是具体的实现机制不大一样。简单来说,物理层负责“怎么把0和1变成物理信号发出去”,而链路层负责“怎么让这些信号在共享的介质上高效、有序、可靠地传输”。物理层= 运输工具和道路(卡车、飞机、公路、航道)。它解决的是如何把货物从A点运到B点的物理问题。链路层= 交通规则和货物分拣中心(红绿灯、车道线、包裹上的地址标签)。它解决的是如何让所有运输工具安全、不撞车、准确地送到目的地。下面来分别拆解Wi-Fi中这两层的具体职责。物理层:纯粹的搬运工。
2026-04-30 13:22:41
466
原创 详解下DNS协议
我们之前聊了IP地址、路由、NAT,这些都是为了让数据包能找到正确的目的地。我们人类记不住IP地址。你能记住是百度,但你更可能记住的是。DNS(域名系统)就是互联网的“电话簿”或“通讯录”。它的核心作用就是把你输入的域名(如翻译成计算机网络能理解的IP地址(如没有DNS,你上网得背一串串数字,就像你给朋友打电话必须记住他11位手机号一样,完全不可行。一. DNS的核心理念:分布式、层次化、缓存DNS不像一个孤单的电话簿放在某个地方,它是全球最大的分布式数据库分布式:没有单个服务器存所有域名。
2026-04-29 14:03:49
477
原创 网络运输层:TCP协议详解(一)
TCP报文头通过端口号区分应用,通过序列号和确认号实现可靠有序传输,通过窗口字段实现流量控制,通过标志位管理连接状态,通过校验和保证数据完整性,通过选项扩展功能——这20到60字节的头部,承载了TCP所有复杂能力的核心。
2026-04-23 21:10:16
606
原创 wireshark抓包看ip协议
Wireshark 中不显示单独的 IP 协议,因为它不是一个“业务类型”,而是所有业务的“底层基础设施”。它就像空气一样,你看不到它本身,但它在每一个你抓到的包里。
2026-04-21 19:30:46
563
原创 Wireshark抓取ARP包并进行分析
应用层(HTTP等) || 传输层(TCP/UDP)|| 网络层(IP) | <--- 要发数据给 192.168.1.3| ARP(寄生层) | <--- 问:"谁是 192.168.1.3?请告诉我你的 MAC"| 链路层(以太网) | <--- 广播发送 ARP 请求(FF:FF:FF:FF:FF:FF)
2026-04-19 11:50:42
506
原创 抓取手机的蓝牙HCI日志并分析
那什么是HCI日志呢?蓝牙主机控制器接口(HCI)日志抓取与分析,属于系统级蓝牙协议调试,用于捕获手机蓝牙芯片(Controller)与主机(Host)之间的所有 HCI 指令、事件与数据包,覆盖经典蓝牙(BR/EDR)与低功耗蓝牙(BLE),是定位连接、配对、扫描或数据传输问题的核心手段。🧩 它是什么本质:抓取 HCI 层原始流量,记录手机与蓝牙芯片的交互,包括扫描、连接、配对、读写属性等全流程。格式:安卓多为BTSnoop 格式(RFC 1761),文件名为;iOS 为。
2026-04-16 23:44:54
867
原创 如何使用procfs来排查问题
proc 文件系统:内核的 “实时状态面板”/proc是一个,里面的文件,而是内核的,用来暴露内核状态、进程信息、硬件信息、系统参数。。
2026-04-10 17:38:21
405
原创 如何使用sysfs来排查驱动问题
二、I2C/SPI 设备在 里的完整层级(以 Amlogic 为例)1. I2C 层级结构2. SPI 层级结构三、怎么快速找到你的 I2C/SPI 设备?(直接复制用的命令)1. 找所有 I2C 总线和设备2. 找所有 SPI 总线和设备 (系统核心设备) (虚拟 / 伪设备)/sys/class/sys 到底怎么用
2026-04-10 16:28:41
435
原创 Linux中Netlink简介和使用总结
核心定位与设计目标解决传统方式(ioctl/procfs/sysfs)同步弱、扩展性差、事件推送低效的问题。提供标准 Socket 接口,用户态易用;内核侧提供模块化 API,支持动态扩展。支持单播 / 多播,内核可主动推送事件(如链路变化、设备热插拔)。关键特性特性说明全双工异步用户态↔内核双向通信,支持同步请求 / 异步通知消息导向基于自包含消息,非字节流,解析简单多协议族按功能划分(如 NETLINK_ROUTE、NETLINK_KOBJECT_UEVENT),隔离职责。
2026-04-08 18:45:31
606
原创 Linux下wifi子系统的数据流
是 Linux 内核中所有网络设备的抽象层。无论是有线网卡(eth0)、无线网卡(wlan0)、虚拟网桥(br0)、环回接口(lo),在内核中都被抽象为。
2026-03-25 09:10:46
451
原创 BLE的广播、扫描和连接等工作机制总结
先了解 BLE 的核心工作机制。一、整体架构概览广播者(Advertiser)发出信号,扫描者(Scanner)监听并发现,根据需要建立连接,连接后通过通知(Notification)等方式进行数据交互。[广播者] --广播包--> [扫描者] --发起连接--> [连接建立] --通知/读写--> 数据传输二、广播(Advertising)1. 什么是广播广播是 BLE 设备宣告自身存在的方式。广播设备定期在3 个广播信道(37、38、39)上发送数据包,不需要与任何设备建立连接。2. 广播的类型。
2026-03-22 14:23:34
576
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2