- 博客(181)
- 资源 (63)
- 问答 (4)
- 收藏
- 关注
原创 uart_port
在 Linux 内核中,是 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)驱动的核心数据结构,用于。
2025-03-31 14:48:46
835
原创 Linux 控制台【Console】类型分类
类型核心角色交互对象典型设备节点应用场景Console内核日志输出内核系统启动、内核调试TTY用户输入输出用户/应用程序/dev/tty1/dev/pts/0本地/远程 Shell、终端工具HVC虚拟化环境通信虚拟机与宿主机/dev/hvc0云服务器日志传输TTYS物理串口通信外部硬件设备/dev/ttyS0嵌入式调试、串口控制台PStore崩溃日志存储内核日志内核崩溃后日志。
2025-03-26 15:33:12
593
原创 UART、TTY、Console的层次关系与区别【1】
UART是硬件通信接口,TTY是操作系统对终端的统一抽象(包括物理和虚拟设备),而Console是系统输出通道,可灵活绑定到任意TTY设备。三者通过内核驱动框架关联:UART驱动注册为TTY设备,Console动态选择输出目标,实现硬件到系统的完整通信链路。
2025-03-24 15:21:47
350
原创 Synopsys DesignWare ABP UART
描述:强制覆盖 DCD(Data Carrier Detect)调制解调器状态信号,始终报告为“激活”。描述:强制覆盖 DSR(Data Set Ready)调制解调器状态信号,始终报告为“激活”。描述:强制覆盖 CTS(Clear To Send)调制解调器状态信号,始终报告为“激活”。描述:强制覆盖 RI(Ring Indicator)调制解调器状态信号,始终报告为“未激活”。描述:引用时钟源节点。 总线协议中的一部分,专为连接低带宽、低功耗的外围设备设计。描述:UART 使用的中断信号编号。
2025-03-19 17:12:49
798
原创 spi_controller
spi_controller(旧称 spi_master)是 Linux SPI 子系统的核心结构体,用于抽象 SPI 控制器硬件并管理数据传输;位置:kernel/common/include/linux/spi/spi.h。
2025-03-17 15:54:36
659
原创 Modbus协议
(如DeviceMaster®系列)将Modbus RTU设备转换为Modbus TCP,再通过MQTT、OPC UA等协议接入云平台,实现远程监控与数据分析。Modbus由施耐德电气(原Modicon公司)于1979年提出,最初用于可编程逻辑控制(PLC)通信,现已成为工业电子设备间通信的业界标准协议。用于PLC、传感器、仪表等设备间的数据采集与指令传输,常见于SCADA系统、电力监控等场景。相比RS232接口,RS485采用差分信号传输,抗电磁干扰能力更强,支持千米级通信距离。
2025-03-10 16:00:43
316
原创 MQTT协议
MQTT(Message Queuing Telemetry Transport)是一种基于的轻量级物联网通信协议,专为低带宽、高延迟或不可靠网络环境设计。它构建于TCP/IP协议之上,通过最小化数据包体积(最小仅2字节)和简化通信流程,实现了高效、可靠的消息传输。
2025-03-07 15:26:34
342
原创 SPI Host、Controller、Device、Bus 的定义与角色
【代码】SPI Host、Controller、Device、Bus 的定义与角色。
2025-03-07 15:08:53
625
原创 SPI硬件设计及通信原理解析
SPI(Serial Peripheral interface,串行外围设备接口),是一种高速的,全双工,同步通信总线。SPI采用主从控制模式(Master--Slave)架构,一般有1个主设备、一个或多个从设备,使得主设备可以与多个从设备之间实现片间通信。SPI在芯片管脚中只占用四根线节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便。主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。信号线:SCLK (Serial Clock):主设备输出的
2025-03-05 17:40:51
770
原创 spi_device,spi_driver,spi_controller,spi_res,spi_transfer,spi_message之间的联系
(驱动逻辑) | | (设备参数) | | (硬件控制器) |存储设备的物理参数:SPI 模式(CPOL/CPHA)、时钟频率、片选线(CS)等。:在设备树中定义的 SPI 相关资源(如 GPIO、中断、DMA 通道等)。:代表硬件上的 SPI 控制器(如 SoC 内部的 SPI 模块)。的传输函数将消息转换为硬件操作(如 DMA 或 GPIO 模拟)。描述 SPI 控制器或设备的硬件资源(如片选引脚、中断号)。(如传感器、Flash 存储器等)。
2025-03-05 17:24:32
726
原创 【Q1】蓝牙遥控器概率连接失败
分析:从bluedroid协议栈看不出具体的原因,根据HCI log看,ACL已建立,然后收到controller的 Reason: Connection Failed to be Established 消息,从而断开了连接,从Host端看不出具体connection fail具体原因。Q1:蓝牙遥控器连接第一次失败,再次点击连接成功。
2025-01-15 17:49:49
42
原创 Bluetooth Spec【0】蓝牙核心架构
链路控制器执行BR/EDR中的链路控制协议信令和LE中的链路层协议(与资源管理器的调度功能紧密结合),用于通信流控制和确认和重传请求信号。此块仅在LE系统中使用。这包括(例如)通过逻辑链路和逻辑传输的连接设备之间的正常交换数据,以及使用无线电介质进行查询、进行连接、可发现或可连接,或在使用自适应跳频模式期间从未使用的载波中获取读数。LM或LL协议允许在需要时创建新的逻辑链路和逻辑传输,以及链路和传输属性的一般控制,如逻辑传输启用加密,适应物理链路的传输功率,或调整逻辑链路BR/EDR中的QoS设置。
2024-12-23 18:36:33
267
原创 Bluetooth Spec【2】 - HOGP
此协议定义了低功耗蓝牙设备使用BLE协议栈的GAP协议支持HID服务功能通过BLE无线连接适配USB HID协议HOGP:通用属性协议GAP:通用接入协议。
2024-12-23 17:00:45
161
2
原创 蓝牙配对方式
例如,使用近场通信(NFC)解决方案,用户(几个)将最初将两个设备触摸在一起,并获得将第一个设备与其他设备配对的选项。带外(OOB)关联模型主要是为使用带外机制来发现设备以及交换或传输配对过程中使用的密码号的场景而设计的。用户会在带有显示器的设备上显示一个6位数字(从“000000”到“999999”),然后被要求在另一个设备上输入该数字。安全简单配对使用四种关联模型,所使用的关联模型是基于两个设备的I/O能力的确定性模型。这种模式的一个很好的例子是手机/单声道耳机的场景,其中大多数耳机都没有显示器。
2024-12-11 17:27:32
125
原创 Bluetooth Spec【1】 Physical Channel
其他物理通道用于发现(Inquiry scan channel)和连接(page scan chanle)蓝牙设备。Inquiry scan物理通道遵循比粒子物理通道更慢的跳变模式,是一个通过射频通道的短的伪随机跳变序列。同步扫描物理通道被设备用于获取关于无连接从属广播物理链路的定时和频率信息,或恢复当前的微型时钟。蓝牙通信,两个设备没有直接物理连接,所谓的physical channel是个什么概念呢?查询扫描信道的定时由扫描设备的本地蓝牙时钟决定,而跳频序列由通用查询接入码决定。
2024-12-09 18:11:18
84
原创 btu_hcif_send_cmd实现细节
不管是btHci 还是btHci_1_1,都是V1_X::IBluetoothHci::getService() 获取的android bluetooth HIDL service,command_queue.push(std::move(callback));执行的是event_command_ready。
2024-12-02 18:03:18
72
原创 Ethernet : No ethernet found
uclass_first_device_check的作用是找到第一个UCLASS_ETH类型的 udevice,然后进行device_probe,这里没找到,这是由于没有编译UCLASS_ETH对应的driver到uboot。uboot启动过程中提示No ethernet found。实现这个Ethernet驱动编译到uboot系统即可。
2024-09-13 16:07:09
513
原创 watchdog: BUG: soft lockup - CPU#3 stuck for 23s! [swapper/0:1]
这里没有在kernel 添加lockdep配置,打印的calltrace信息,测试代码逻辑比较简单,所以能一眼看出来lockdep_test_init中有问题。Linux内核中打开lockdep功能,需要打开。
2024-09-03 14:16:50
1601
原创 RCU概念
fps=”显示了自该CPU上次注意到宽限期开始以来,线程在该CPU上进行的宽限期的强制静止状态空闲/脱机检测通过的次数。"softirq="部分跟踪RCU的软处理程序的数量,该暂停的CPU已经执行。detected by”这行表示哪个CPU检测到了这个失速。首先拷贝一个副本,然后在副本上进行修改。把原数据的指针重新指向新的被修改的数据。“idle=”部分打印动态空闲状态。RCU只适用于读多写少的情况。
2024-09-02 17:21:31
1046
原创 tid,pid,ppid,tgid,pgid,uid,euid介绍
PID : 在Unix和Linux系统中,每个运行的程序都是一个进程。每个进程都有一个唯一的进程IDProcess Identification)PPID : 指的是父进程的pid,每个进程都可以创建一个或多个子进程,对于创建这个子进程的进程,我们称之为父进程。TID:创建的线程的IDTGID:线程组ID,包含多个线程的线程组PGID:进程组ID,包含。
2024-08-27 16:48:27
942
原创 ACPI概念
我们最常用到的是S3状态,即Suspend to RAM(挂起到内存)状态,简称STR。在STR状态下,电源仍然继续为内存等最必要的设备供电,以确保数据不丢失,而其他设备均处于关闭状态,系统的耗电量极低。一旦我们按下Power按钮(主机电源开关),系统就被唤醒,马上从内存中读取数据并恢复到STR之前的工作状态。而S4状态,即STD(挂起到硬盘)与STR的原理是完全一样的,只不过数据是保存在硬盘中。注意,FAT32格式的硬盘无法实现硬盘的挂起功能(STD),而FAT16格式是可以的。ACPI表示高级配置和。
2024-06-04 16:24:27
563
原创 ethernet eth0: Could not attach to PHY
整个流程看下来就是MAC connect PHY的过程失败了,失败的具体原因根据config_init,上图(bcm54xx_config_init) ,从此方向入手去定位原因;我这里的问题是has_gmac4没有置1,根据 has_gmac4: uses GMAC4 core.按照上面的调用逻辑,添加了部分打印,定位到__phy_read接口返回失败。stmmac_mdio_read 大部分都是linux的标准接口。最终取决于平台用的是哪家的phy,调用config_init。
2024-06-03 17:07:15
1520
原创 Ethernet汇总
Ethernet 汇总Ethernet系统框架stamac Ethernet DTS配置Ethernet 模块&通信uboot Ethernet初始化uboot Ethernet 数据收发流程【1】uboot Ethernet 数据收发流程【2】uboot dhcp命令stmmac_dvr_probe解析EQOS 常用寄存器[1]EQOS 常用寄存器[2]Ethernet修改网卡名称网络问题排查DHCP 介绍IPV6 -ping6用法
2024-05-23 16:46:01
130
原创 uboot Ethernet 数据收发流程【2】
配置这些后,就可以通过相关接口收发数据了,这里以dhcp功能为例。收发完成后,stop,shutdown phy。前面讲到eqos_start做了以下事情。总结了一部分uboot收发数据的流程。
2024-05-11 15:14:14
175
原创 uboot Ethernet 数据收发流程【1】
是uboot启动过程中的以太网初始化流程,这里梳理数据收发流程这是uboot中一次dhcp流程 和 ping流程 ,不同于Linux kernel中Ethernet驱动一直处于收发状态,【uboot只是启动kernel的引导程序,正常不是每次系统启动都会在uboot停留】,所以不会初始化硬件以及一直轮询收发数据包。这里不关注hdcp和ping的数据收发流程,只看Ethernet发送数据需要MAC和PHY做什么?调用流程也比较简单。
2024-05-11 14:22:06
427
原创 EQOS 常用寄存器[2]
The Operation Mode register establishes the Transmit and Receive operating modes and commands. //建立传输和接收的操作模式和命令。//DMA 运行模式。
2024-05-07 17:45:57
196
原创 uboot 启动流程【2】
如果当前的编译是SPL(由CONFIG_SPL_BUILD定义),可单独定义堆栈基址(CONFIG_SPL_STACK),否则,通过CONFIG_SYS_INIT_SP_ADDR定义堆栈基址。3)如果当前是SPL(由CONFIG_SPL_BUILD控制),则_main函数结束,直接返回。接口,从堆栈开始的地方,为u-boot中大名鼎鼎的GD ('global data') 数据结构,分配空间。函数,执行后续的初始化操作(已经不再本文的讨论范围了,具体请参考后续的分析文章)。接口,对GD进行初始化。
2024-04-29 10:20:26
257
原创 uboot 启动流程【1】
执行通常从特定于体系结构(也可能是CPU-specific)的启动start.S文件,例如:等等......。从那里,调用三个函数;下面描述了这些函数的目的和限制。
2024-04-29 10:04:18
401
原创 uboot介绍
是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,其主要作用为:==引导系统的启动!==目前,U-Boot不仅支持Linux系统的引导,还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android等多种嵌入式操作系统。,是遵循GPL条款的从FADSROM、8xxROM、PPCBOOT逐步发展演化而来的 开放源码项目。:这个选项能显示出编译过程中的详细信息,即是verbose编译模式。:多核并行编译,可以提高编译速度,受硬件限制。
2024-04-28 16:29:37
195
HDCP 1.x Signing Facility User's Guide.pdf
2022-05-30
HDCP 2.x Signing Facility User's Guide.pdf
2022-05-30
HDCP on DisplayPort Specification Rev2_3.pdf
2022-05-30
HDCP on WirelessHD Specification Rev2_2.pdf
2022-05-30
PKCS #1: RSA Cryptography Specifications Version 2.2
2022-05-30
Wi-Fi_CERTIFIED_Miracast_Technical_Overview_20220201.pdf
2022-05-30
Wi-Fi_Alliance_Technical_Note_Miracast_in_6_GHz_v1.0.pdf
2022-05-30
Wi-Fi CERTIFIED Miracast Highlights_0.pdf
2022-05-30
HDCP Interface Independent Adaptation Specification Rev2_3.pdf
2022-05-30
Wi-Fi_QoS_Management_Specification_v2.0_0 WiFi联盟官方文档
2022-05-30
Wi-Fi_Protected_Setup_Specification_v2.0.8 WiFi联盟官方文档
2022-05-30
Wi-Fi_Optimized_Connectivity_Specification_v2.0_0 WiFi联盟官方文档
2022-05-30
Wi-Fi_Data_Elements_Specification_Package_Release_2_1 WiFi联盟官方文档
2022-05-30
Wi-Fi_CERTIFIED_Passpoint_Online_Sign-Up_Certificate_ WiFi联盟官方文档
2022-05-30
Wi-Fi_CERTIFIED_Easy_Connect_Technology_Overview_202012
2022-05-30
Wi-Fi_Alliance_Capabilities_Specification_v1.0 WiFi 联盟官方文档
2022-05-30
Coexistence_Test_Plan_Package_v2.0 WiFi 联盟官方文档
2022-05-30
WiFi 联盟官方文档 AFC_Specifications_and_Test_Plans_041422
2022-05-30
Miracast 最新spec
2022-05-30
mbedtls开源sdk
2022-04-06
PKCS__1_v2.1_RSA_算法标准+RSA-oaep_spec
2022-04-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人