- 博客(136)
- 资源 (8)
- 收藏
- 关注
原创 v4l2_subdev 与 /dev/videoX 的关联
本文分析了Linux V4L2框架中传感器驱动与视频设备的关联机制。核心流程包括:1)传感器驱动通过v4l2_subdev注册,实现控制接口;2)SoC驱动创建video_device,生成用户空间设备节点;3)通过媒体控制器或异步子设备机制建立两者连接。关键是通过v4l2_subdev_call()实现用户操作到I2C控制的转发,形成"用户空间-video_device-v4l2_subdev"的三层控制链,最终完成从软件操作到硬件寄存器配置的完整通路。该机制实现了传感器驱动与平台驱动的解耦,支持灵活的视
2025-06-11 16:57:00
468
原创 Android Wi-Fi 连接失败日志分析
Android Wi-Fi 连接异常分析日志显示设备Wi-Fi连接失败,主要原因包括:1) 设备主动断开连接(CTRL-EVENT-DISCONNECTED reason=3),可能因信号弱或省电模式触发;2) Wi-Fi扫描失败(errorCode: -7),可能受系统限制或省电策略影响;3) 网络配置丢失(networkId 1找不到),表明保存的Wi-Fi信息可能被清除;4) 网卡异常(ifindex 13 down),提示Wi-Fi驱动或硬件问题。建议检查信号强度、关闭省电模式,并验证Wi-Fi配
2025-06-10 13:13:16
454
原创 如何使用 IP 地址修改 Android 的 Captive Portal 校验 URL
本文介绍了Android设备的Captive Portal检测机制及修改方法。主要内容包括:1) 通过ADB命令修改检测URL地址,指向自定义服务器;2) 服务器需正确配置HTTP 204响应;3) 提供Nginx、Apache和Python示例配置;4) 可选完全禁用检测或调整检测模式;5) 查看当前配置的方法。该方案适用于解决Wi-Fi自动连接问题,但需确保服务器可访问并正确响应。
2025-06-10 10:51:08
425
原创 Android AIDL Hal最低保证出现的问题
Android AIDL HAL的"乐观假设"设计解析在Android AIDL HAL(如IComposer)中,部分功能直接返回true而非动态查询,这源于协议层面的强制支持要求。与HIDL需运行时检查不同,AIDL通过版本号约束基础功能(如可变刷新率、帧调度等),确保厂商必须实现。这种设计减少了Binder通信开销,用静态决策替代动态检查,提升性能。Google通过CTS认证和版本协商机制保障兼容性——若厂商虚报支持将导致认证失败。关键功能(如亮度控制)因Android版本要求而默认可用。该优化
2025-05-29 09:58:59
938
原创 Android SurfaceFlinger核心工作机制
SurfaceFlinger是Android图形系统的核心服务,负责管理图形缓冲区合成及显示输出。其核心工作流程包括:1) 通过main()函数初始化并注册系统服务;2) 采用分层架构与硬件交互,优先使用HWC硬件合成,失败时回退GPU混合模式;3) 通过HAL抽象层实现硬件厂商适配,支持DRM/KMS驱动交互。关键设计包括动态硬件能力查询、分层解耦架构和性能优化策略。调试时可查看HWC版本或强制GPU合成分析问题。整体设计在保证兼容性的同时最大化硬件加速能力。
2025-05-29 09:26:01
788
原创 Systemd服务重启策略详解:on-failure与相关配置
Systemd作为现代Linux系统的初始化系统,提供了强大的服务监控和自动重启功能。
2025-05-23 16:50:13
460
原创 Linux 磁盘管理、分区和文件系统检查
本文介绍了三个关键命令及其在排查和修复SD卡或eMMC存储设备问题中的应用。首先,gdisk -l /dev/mmcblk0用于查看分区表,确认分区布局、类型和文件系统。其次,cat /etc/fstab用于检查系统自动挂载的磁盘配置,确保分区正确挂载。最后,fsck /dev/mmcblk0p7用于检查和修复文件系统错误,如超级块损坏或文件系统不一致。
2025-05-23 14:39:07
468
原创 PCIe EP/RC 核心功能解释
本文介绍了 PCIe 设备中几种关键技术的功能与应用,包括 BAR 访问、DMA 传输、MSI 中断、EP 卡中断事件以及 ELBI 中断。BAR 用于主机与设备之间的寄存器访问,DMA 实现高效数据传输,MSI 提供低延迟中断通知,EP 卡中断事件处理设备内部状态,ELBI 则用于设备内部模块通信。文章还通过数据采集卡的示例展示了这些技术的协同工作流程,并对比了它们的特点与适用场景,如数据采集、GPU/FPGA 加速和网络适配器等。这些技术共同提升了 PCIe 设备的性能与效率。
2025-05-20 18:02:26
977
原创 [特殊字符] 10个Linux系统急救神技:死机、卡顿、崩溃?一招全搞定!
列出了所有可用的 SysRq 功能键及其作用。SysRq 是 Linux 内核提供的“魔法键”组合(通常通过。触发),用于在系统崩溃、死锁或调试时执行底层操作。触发了 Linux 内核的。
2025-04-30 15:45:30
411
原创 深入解析:GCC 默认路径与库文件管理指南
在 Linux 开发中,GCC/G++ 的默认搜索路径决定了编译器如何查找头文件(理解这些路径的规则,能帮助你解决。链接失败、运行时库缺失等问题。
2025-04-30 11:53:48
406
原创 从摄像头到 RAW 数据:MJPEG 捕获与验证
MJPEG(Motion JPEG)是一种常见的视频压缩格式,广泛应用于摄像头、监控系统和嵌入式设备。在某些场景下,我们需要直接从摄像头获取 MJPEG 原始数据,并验证其正确性。命令进行验证,同时拓展相关技术细节。工具捕获 MJPEG 帧,并通过。
2025-04-29 17:36:44
310
原创 不用setWindow=手动造轮子?揭秘Qt坐标系系统的设计哲学
通过这种方式,您会直观感受到逻辑坐标系如何像"虚拟摄像机"一样控制图形的显示范围与比例。
2025-04-28 15:12:45
787
原创 内核调试目录文件详解 Linux /proc/sys/kernel
目录包含了Linux内核运行时参数的设置,这些参数可以动态调整系统行为而无需重新启动系统。
2025-04-28 10:11:11
502
原创 [特殊字符] Qt信号槽终极指南:传统vs Lambda,谁才是王者?
那么,传统方式与Lambda方式各有什么优缺点?本文全面对比,帮你做出最佳决策!在合适的场景选择最优雅的方式,让代码既简洁又健壮!函数是信号槽机制的核心,而Qt5之后引入了。
2025-04-24 15:17:17
399
原创 ❌ 你的 Linux 图形性能差?可能选错了显示后端!
新项目优先评估 Wayland,兼容需求通过 XWayland 解决;嵌入式场景可结合 Qt/Wayland 或专用框架。
2025-04-23 13:43:44
725
原创 Qt 容器类使用指南
Qt提供了一系列容器类,类似于STL容器但更紧密集成到Qt框架中。Qt容器与STL容器可以互相转换,根据具体需求选择合适的容器类型。
2025-04-23 09:53:34
343
原创 PCM 参数深度解析:采样率、帧、缓存大小与多通道关系
采样率(rate):定义每秒处理的帧数(48000 Hz),与通道数无关。帧(Frame):是一个包含所有通道采样的最小数据单位,每帧字节数由 channel 数×(每个采样的字节数)决定。:单次数据传输的帧数(1024 帧),也意味着单个周期的时长为 1024/48000 秒(约 21.33 毫秒)。:缓冲区中周期的总数(4),影响整个缓冲区的大小和抗系统调度抖动的能力(总帧数 4096)。数据大小:通过可把帧数转换为字节数,方便内存分配和数据传输;反之。
2025-04-18 17:47:46
1066
原创 Android tinyalsa库函数剖析
检查特定的 PCM 格式(例如 PCM_FORMAT_S16_LE)是否在支持的格式中,返回 1 表示支持,0 表示不支持。通过 ioctl 调用发送控制命令给 PCM 驱动,允许更底层的控制和调整,这是更底层的设备操作接口。返回当前 PCM 流的延迟(以毫秒为单位)。从已打开的 PCM 流中获取当前的配置信息(例如实际启用的通道数、采样率、缓冲区设置等)。修改已经打开的 PCM 流的配置(如果硬件和驱动支持动态调整的话)。打开指定声卡(card)和设备(device)的 PCM 流。
2025-04-18 17:14:22
755
原创 C++构造函数加不加explicit?90%程序员都踩过的坑!(附最佳实践)
关键字就像一道"安全锁",防止编译器偷偷做你不想要的类型转换。(附:如果你在团队中发现有人乱用隐式转换,可以把这篇文章甩给他~ 😉)你在代码中遇到过最奇葩的隐式转换问题是什么?:代码行为不直观,容易引发隐蔽bug!在C++中,构造函数前的。
2025-04-16 16:05:27
215
原创 揭秘移远EC25 VoLTE:Modem内置IMS,Android层无需实现ims service
当设备插入SIM卡时,基带会根据SIM卡的运营商信息(MCC/MNC)自动加载对应的MBN配置。MBN(Modem Binary Configuration)是高通(Qualcomm)平台用于。移远EC25模块(基于高通芯片)内置了。提供,并预置在设备的。,说明IMS已启用。
2025-04-15 15:55:06
1141
原创 后台进程管理之pstree 和 job
以树状结构显示进程间的父子关系,直观展示进程的层次结构。管理当前 Shell 会话中的后台任务(仅限当前终端)。
2025-04-12 12:15:46
291
原创 C++ 极简常用内容
封装数据(成员变量)和行为(成员函数)的自定义类型。:表示实体(如用户、订单)或封装逻辑(如文件操作)。:代码复用(如多种GUI控件共享基类功能)。:通过对象生命周期管理资源(如内存、文件)。:通过基类指针/引用调用派生类的重写函数。:统一接口不同实现(如游戏角色行为差异)。:资源需自动释放(如数据库连接、锁)。:派生类复用基类的属性和方法。:自动管理动态内存,避免泄漏。:编写与类型无关的代码。)或算法(如排序)。
2025-04-04 10:13:52
599
原创 Qt Creator中修改UI文件的控件后,代码中无法通过ui指针访问到对应的控件
【代码】Qt Creator中修改UI文件的控件后,代码中无法通过ui指针访问到对应的控件。
2025-04-03 09:37:33
201
原创 xrandr 和 modetest的区别,以及常用适用范围
xrandr和modetest都是 Linux 下用于管理显示设备的工具,但它们的工作层级和使用场景有所不同。以下是它们的区别、常见用途以及何时选择使用哪一个。xrandrxrandr主要用于xrandr。
2025-03-31 09:55:23
352
原创 QDate与QDateTime区别
QDateTime 和 QDate 是 Qt 框架中用于处理日期和时间的两个核心类,它们的区别主要体现在。根据需求选择合适的类:若只需日期,优先用。附加时间部分(默认时间可能为。需要时间或时区时,必须用。
2025-03-25 17:36:25
316
原创 C++字符串传参方式及QString对比
在 C++ 中传递字符串参数有多种方式,不同方式在性能、内存管理和用法上有所区别。以下是常见方式及其对比,同时结合。是 Qt 的字符串类,采用。
2025-03-24 15:27:10
464
原创 linux sh脚本关于返回字符串调试问题(adb shell)
当adb shell获取回来的信息时常要做一些比较,但是经常会出现打印出来是一致的,但是匹配确实失败,是由于隐藏字符导致,字符串的比较,调试阶段建议增加。如上增加od -c可知。
2025-03-17 09:01:16
289
i.MX 6ULL Applications Processor Reference Manual.pdf
2020-03-14
东荣VLASV(新型东荣伺服器).pdf
2020-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人