自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 windows 中conda安装和使用详解

Miniconda 安装时要将环境变量添加到系统,并执行conda init。使用创建虚拟环境,激活,退出。部署开源项目时,激活虚拟环境后安装依赖并启动项目。

2025-04-07 16:51:14 137

原创 Git 常用操作整理

将本地代码的修改保存到 Git 仓库中,为后续操作(同步、合并等)做准备。将远程仓库的最新代码拉取到本地,确保后续操作基于最新代码,减少冲突。将某个历史提交(通过哈希值指定)的修改应用到当前分支。基于远程分支创建一个新的本地分支,用于开发或修复。

2025-04-03 15:52:32 340

原创 UART 驱动与蓝牙 HCI UART解析

UART 驱动负责管理物理串口,并注册为TTY 设备。TTY 子系统允许用户空间访问串口设备。HCI UART 线路规程 (hci_ldisc拦截 TTY 数据流,使 UART 设备支持HCI 蓝牙协议。数据传输流程绑定 HCI 协议。使能 UART 设备的 HCI 传输。发送 HCI 数据。处理 UART 接收的 HCI 数据。通过以上解析,我们可以清晰理解 UART 驱动的注册、TTY 子系统的关联,以及如何通过hci_ldisc使 UART 设备支持 HCI 蓝牙协议通信。

2025-04-02 16:52:53 681

原创 Linux 蓝牙子系统概述

Linux 内核蓝牙子系统包含多个协议层,从 HCI 到 L2CAP、RFCOMM、SDP、HIDP 和 SCO,形成完整的蓝牙通信栈。套接字 API 与蓝牙子系统交互,而蓝牙驱动程序负责与具体硬件通信。掌握这些核心组件和代码结构,有助于深入理解 Linux 蓝牙协议栈的实现和应用。

2025-04-02 11:24:21 577

原创 UBI 文件系统

UBIFS 文件系统代表 UBI 文件系统。UBI 代表“未分类的块映像”。UBIFS 是一种闪存文件系统,这意味着它设计用于闪存设备。重要的是要理解,UBIFS 与 Linux 中的任何传统文件系统(如 Ext2、XFS、JFS 等)完全不同。UBIFS 代表一种单独的文件系统类,它与 MTD 设备(而不是块设备)一起工作。此类的另一个Linux 文件系统是 JFFS2。为了更清楚起见,这里对 MTD 设备和块设备进行了一个小的比较。很明显,UBIFS 与传统文件系统有很大不同。

2024-12-27 22:28:26 1365

原创 Ramfs, rootfs 和 initramfs

Rootfs 是 ramfs(或 tmpfs,如果启用的话)的一个特殊实例,它始终存在于 2.6 系统中。您无法卸载 rootfs 的原因与您无法终止 init 进程的原因大致相同;与使用特殊代码检查和处理空列表相比,内核只需确保某些列表不会变为空,这样更小更简单。大多数系统只是在 rootfs 上安装另一个文件系统并忽略它。ramfs 的空实例占用的空间很小。如果启用了 CONFIG_TMPFS,rootfs 将默认使用 tmpfs 而不是 ramfs。

2024-12-27 18:59:22 1315

原创 Linux虚拟文件系统概述

虚拟文件系统(也称为虚拟文件系统交换机)是内核中的软件层,为用户空间程序提供文件系统接口。它还在内核中提供了一个抽象,允许不同的文件系统实现共存。VFS 系统调用 open(2)、stat(2)、read(2)、write(2)、chmod(2) 等都是从进程上下文中调用的。文件系统锁定在文档Locking中进行了描述。

2024-12-27 12:51:34 899

原创 示波器的使用

我们在许多教程中使用示波器,从半波整流器、全波整流器,到展示如何使用二极管进行限幅或钳位电路。它们乍一看可能令人望而生畏!但尽管示波器上有很多按钮,但如果您保持简单并忽略不需要的按钮,它们实际上相当简单。让我们来看看示波器基本使用中最重要的事情是什么。首先 - 自动(或自动量程)按钮是您的朋友,但更像是您邀请来帮助您移动的朋友,但您不能指望它真的出现或损坏东西。它可以提供帮助,但您不能指望它总是做正确的事情。它可能会抓住不重要的信号而忽略重要的信号,或者根本找不到任何东西。所以,继续使用“自动”按钮吧。

2024-09-20 11:26:20 880

原创 以太网接口MII 和 RMII

连接以太网MAC和PHY设备的标准化方法。由 IEEE 802.3 标准定义。促进MAC(数据传输)和PHY(物理传输介质)之间的通信。

2024-09-20 09:22:28 1605

原创 USB 的工作原理:通信协议(第 2 部分)

在上一个教程中,我们了解了 USB 协议的硬件级连接和功能。现在,在本教程中,我们将了解 USB 主机的固件如何与设备通信。我们都知道,只要将 USB 外围设备(键盘、鼠标或磁盘驱动器)插入计算机,它就会立即启动并运行;这似乎很简单。嗯,这只是在 USB 协议开发之后的情况。外围设备(如支持 PS/2 端口的键盘和鼠标)必须在打开计算机之前连接到计算机。如果在启动过程后连接它们,设备将无法工作,需要重新启动计算机才能使它们工作;这些设备不是热插拔的。

2024-09-17 18:31:45 1543

原创 USB 的工作原理:简介(第 1 部分)

如今,从小型拇指驱动器到大型存储设备,几乎每台设备都配备通用串行总线 (USB),仿佛它是万能的!这绝对是双关语。除了用于存储设备外,它还是各种外围设备(如键盘、鼠标、打印机、相机等)的标准化连接。然而,直到 1996 年,情况才开始发生变化;在此之前,公司使用的是更大、更慢的连接,例如串行端口和并行端口。该标准是康柏、DEC、IBM、英特尔、微软、NEC 和北电自 1994 年开始共同努力开发的。当时的目标是开发一个可用于多种设备的单一接口,消除使用的许多不同连接器,并提高电子设备的数据传输速率。

2024-09-15 11:31:58 2137

原创 了解 CAN:控制器局域网络协议初学者指南

CAN 代表控制器局域网络。它由罗伯特·博世于 1986 年开发,是一种灵活、可靠且强大的汽车内部通信解决方案。它是一种串行、半双工和异步通信协议,遵循分散式通信基础设施。分散式协议的好处是没有可以控制总线的中央实体,使节点可热插拔,即我们可以在总线上添加或删除节点,而不会中断其他节点之间的通信。它具有高数据传输速度(高达 1 Mbps)、出色的错误处理、自动重新传输错误消息以及对电气噪声的高容忍度。它标准化了物理层和数据链路层,即 OSI 模型的最低层。让我们首先讨论 CAN 协议的物理层。

2024-09-15 09:37:29 1212

原创 什么是I2C通信协议?

集成电路间协议 (I2C或IIC) 是一种串行、同步、多主、板对板、半双工通信协议。顾名思义,它主要用于印刷电路板 (PCB) 内的通信。飞利浦半导体公司于 1982 年发明了它,目的是使用更少的微控制器引脚与其他电子设备配合使用。它仅使用两条线路与连接的设备进行通信;因此,有时也称为双线协议。I2C 支持主从配置,但这里的术语从主从变为控制器目标或控制器外设。

2024-09-14 23:38:09 3633

原创 SPI 详解

串行外设接口是微控制器用来与外设(如 SRAM、SD 卡、移位寄存器、传感器等)通信的最常见通信协议之一。它是一种同步、全双工、基于主从的协议。它支持高速数据传输,并且 SPI 协议中的数据速度 (bps) 和时钟频率 (Hz) 之间存在直接关系。例如,如果 SPI 的时钟频率为 36 MHz,则传输速度将为 36Mbps。因此,SPI 协议的传输速度没有限制。它完全取决于设备支持的时钟频率。

2024-09-14 20:20:30 1729

原创 UART——通用异步接收发送器

数字系统是以 1 和 0 的形式共享和存储信息。要与具有不同架构的多个设备共享此信息,我们需要一种通用的数据交换方法。这就是各种通信协议发挥作用的地方,其中之一就是通用异步接收器发送器 ( UART )。它是嵌入式电子产品中最常用的通信协议之一。它是一种串行、全双工、异步和板对板通信协议。在了解协议之前,让我们先分解一些主要关键字。对于串行通信,仅需一个或两个连接即可发送或接收数据。数据接收和传输一次一位或按顺序进行。对于并行通信,存在多条线路用于数据交换。用于传输或接收数据的线路数量称为设备的总线宽度。

2024-09-14 14:49:36 1374

实际项目中的git最常用指令

实际项目中的git最常用指令

2025-03-27

理解D-Bus的文档,希望可以帮到你

理解D-Bus的文档

2024-09-20

空空如也

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

TA关注的人

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