duduru

2025年12月2日

NandFlash特性详解

摘要: NAND闪存属于非易失性存储(断电后数据不丢失),其核心结构基于浮栅晶体管,通过控制栅极电压改变浮栅中的电子数量来存储数据。这种结构决定了它既有远超传统硬盘的优势,也存在独特的“痛点”,这些特性直接主导了后续Linux存储技术的设计方向。 Nand存储结构 以NAND Flash MT29F4G08 阅读全文

posted @ 2025-12-02 16:29 duduru 阅读(0) 评论(0) 推荐(0)

dbus基础

摘要: dbus架构 D-Bus进程间通信主要有三层架构: 底层接口层:主要是通过libdbus这个函数库,给予系统使用DBus的能力。 总线层:主 要Message bus daemon这个总线守护进程提供的,在Linux系统启动时运行,负责进程间的消息路由和传递,其中包括Linux内核和Linux桌面环 阅读全文

posted @ 2025-12-02 14:03 duduru 阅读(0) 评论(0) 推荐(0)

2025年11月26日

存储介质分类

摘要: 存储介质分类及Linux对应子系统 非易失性存储(断电数据不丢失) 存储介质核心特点Linux 子系统/驱动框架设备节点示例典型应用场景(含充电桩)裸NAND Flash(无控制器)高容量、低成本,需处理坏块/磨损均衡MTD 子系统(搭配 UBI/UBIFS)/dev/mtdblockX固件存储、工 阅读全文

posted @ 2025-11-26 16:26 duduru 阅读(0) 评论(0) 推荐(0)

2025年11月23日

pkgconfig

摘要: pkg-config 介绍 pkg-config 是一个在编译 C/C++ 等程序时用于查询库的信息的工具。它能帮助开发者获取以下内容: 库的编译器参数(例如头文件的路径)。链接器参数(例如要链接的 .so 或 .a 文件)。版本号等元信息。 其主要作用是简化构建过程中的依赖管理。 pkg-conf 阅读全文

posted @ 2025-11-23 15:32 duduru 阅读(0) 评论(0) 推荐(0)

2025年11月14日

蓝牙协议栈-介绍

摘要: 蓝牙技术的演变 BR/EDR:经典蓝牙BLE:低功耗蓝牙 蓝牙设备类型 BLE协议栈的拆分方式 BLE协议栈: 目前的BLE方案主要分为三种,对应不同的应用场景: 单芯片方案 app,host和controller全部集成在同一个芯片上,比如ESP32 双芯片方案 双芯片方案有两种结构: app和h 阅读全文

posted @ 2025-11-14 11:42 duduru 阅读(0) 评论(0) 推荐(0)

电磁波发射原理与方法

摘要: 电磁波发射原理与方法 一、基本原理 电磁波的发射基于麦克斯韦的电磁理论,即变化的电场会产生变化的磁场,而变化的磁场又会产生变化的电场,这种交替变化的电场和磁场就会形成电磁波并向空间传播。 从微观角度来看,当导体中的电荷做加速运动时,就会在其周围激发变化的电场和磁场,从而产生电磁波。例如,在天线中,交 阅读全文

posted @ 2025-11-14 10:47 duduru 阅读(1) 评论(0) 推荐(0)

2025年11月8日

USB Gadget 技术

摘要: 1. 什么是 USB Gadget? USB Gadget 是 Linux 内核提供的一项技术,允许具备 USB 设备控制器(USB Device Controller)的硬件(如嵌入式开发板、手机)模拟成各种 USB 设备(如 U 盘、串口、网卡、打印机等),从而与主机(如电脑)进行通信。 简单来 阅读全文

posted @ 2025-11-08 18:33 duduru 阅读(0) 评论(0) 推荐(0)

2025年7月17日

设备驱动的私有数据设计

摘要: IIO子系统的私有数据 私有数据的完整使用流程: // 定义私有数据结构 struct my_data { int calibration; u8 buffer[128]; }; // 分配 IIO 设备(包含私有数据空间) struct iio_dev *indio_dev = devm_iio_ 阅读全文

posted @ 2025-07-17 19:43 duduru 阅读(0) 评论(0) 推荐(0)

2024年8月22日

socket网络编程

摘要: 套接字函数 创建套接字 // 创建一个套接字 int socket(int domain, int type, int protocol); 参数: domain: 使用的地址族协议 AF_INET: 使用IPv4格式的ip地址 AF_INET6: 使用IPv6格式的ip地址type: SOCK_S 阅读全文

posted @ 2024-08-22 15:16 duduru 阅读(0) 评论(0) 推荐(0)

2024年7月17日

malloc底层实现

摘要: xv6实现的动态内存分配虽然只有不到100行代码,但却体现了动态内存分配的精髓,非常值得学习 xv6的内存布局 一谈到C语言的动态内存分配,就会想到堆以及malloc()和free()这两个函数。先来回顾一下XV6中的内存布局是怎样的,我们动态分配的内存就在下图的heap部分: 总体思路 在看源码之 阅读全文

posted @ 2024-07-17 15:24 duduru 阅读(0) 评论(0) 推荐(0)

导航