- 博客(23)
- 收藏
- 关注
原创 在 Windows 笔记本上实现一个端侧多模态大模型推理平台:C++ 无锁队列、NVRTC 手写算子、INT8 张量核与 CUDA Graph
记录一个端侧 VLM 推理平台的实现细节:数据通路怎么做到零拷贝、算子怎么在无 CUDA Toolkit 的机器上手写并 JIT 执行、图优化怎么落地、INT8 怎么跑到张量核上、解码开销怎么从 789 ms 压到 4.4 ms。
2026-10-26 12:28:53
227
原创 NVIDIA Jetson TX2 部署 YOLOv3-tiny 实战:GPU 推理与无显示器实时检测
本文基于 Ubuntu 16.04、CUDA 9.0 和 L4T R28.3.1 的实测环境,介绍如何在 Jetson TX2 上运行 YOLOv3-tiny,并通过浏览器查看板载摄像头的检测结果。文末提供完整应用代码。本文适用于旧环境复现,不是新版 JetPack 的通用安装教程。
2026-09-17 21:53:32
280
原创 SDIO子系统研究
tty框架提供了一套函数指针表,一套辅助函数这是函数指针表#endif在tty_port.c中定义了大量的辅助函数,这里截取部分/***/return;return 0;tty提供了一套函数指针表,一套辅助函数,注册tty需要实现函数指针表,过程中可以调用辅助函数。
2026-07-20 20:04:46
331
原创 V4L2研究
由于硬件的复杂性,同时 v4l2 驱动要支持 IC 模块进行音视频的混合编解码操作,v4l2 的驱动变得异常复杂。老旧的 v4l2 框架仅限于通过 video_device 结构体创建 v4l 设备节点和 video_buf 来处理视频数据。这意味着所有的驱动都必须对设备实例进行设置并将其映射到子设备上。有些时候这些操作步骤十分复杂,很难正确完成,并且有些驱动程序从来没有正确的按照这些操作步骤编写。由于缺少一个框架,有很多通用代码就没有办法被重构,从而导致这部分代码被重复编写,效率比较低下。
2026-07-11 21:07:12
488
原创 SPI子系统研究
层最核心结构关键回调/操作功能驱动模型bus_typedevicematch()probe()remove()设备-驱动匹配与生命周期SPI 核心spi_masterspi_devicespi_sync总线管理、消息泵、传输抽象HOST 控制器configtriggerintctrl硬件寄存器操作、PIO/DMA、中断设备驱动readwriteioctl用户态接口、bounce buffer用户接口(定义在 spidev.h)opencloseioctl用户态 SPI 控制。
2026-07-05 20:50:24
233
原创 设备驱动管理
匹配方式驱动中提供什么设备中提供什么匹配依据DT 节点的compatible字符串匹配id_tableid_table数组modalias字符串匹配name 回退字符串比较。
2026-07-03 12:07:08
42
原创 工具函数与 DMA 支持
内联函数(inline function)是 C/C++ 中用关键字修饰的函数。代码不产生真正的函数调用,而是把函数体直接"贴"到调用处。对比一下// spi.h设备驱动调程序执行到这里→ 把参数 spi, data, 8 压栈→ CALL spi_write 的地址 ← 有跳转开销→ 执行 spi_write 的函数体→ RET ← 有返回开销→ 继续执行// spi.h程序执行到这里← 直接把函数体贴进来→ 继续执行 ← 没有 CALL/RET 的开销。
2026-07-01 21:44:11
246
原创 链表相关知识总结
/ 指向下一个节点// 指向上一个节点野指针是指向已释放或无效内存的指针。访问野指针会导致不可预测的后果——可能读/写到了别人的内存。
2026-06-30 20:44:32
223
原创 Linux源码补充
是把spi_init注册到内核启动的第 2 级初始化序列中,让它在其他更晚的子系统(如文件系统、设备驱动)启动之前先被执行,执行完后整个.init段内存被释放回收。宏是源头标签——编译时给代码贴上"我属于哪个段";链接脚本是收集器——链接时把贴了同标签的所有碎片拼成连续数组,并生成边界符号让内核能在运行时遍历它。缺了前者东西放不对缺,少了后者东西放对了但找不到。spi_init这个宏是整套 initcall 机制的枢纽。一行行拆开看。两行,四个部分。
2026-06-28 21:28:48
192
原创 SPI子系统研究框架
│ SPI 子系统的三块基石 ││ | ││ ① 分层解耦 ││ 设备驱动 ←→ 核心层(回调接口) ←→ 控制器驱动 ││ "发什么数据" 合约 "怎么发数据" ││ ││ ② 调度标准化 ││ 并发入队 → kthread 消息泵 → 顺序执行 → 完成 ││ 把"排队"和"干活"分开 ││ ││ ③ 同步/异步统一 ││ 同一条路径,同一个结构体 ││ 区别只在 complete 回调指向谁 ││ ││ ④ 设备发现统一 │。
2026-06-28 21:03:09
488
原创 SPI 子系统 对比 操作系统
—它有调度器(消息泵)、同步/异步 IO 模型、中断驱动、多种锁机制、甚至支持实时优先级。只不过它不管理 CPU 时间片,而管理 spi_message 在总线上的传输顺序。如果某个 SPI 设备对延迟敏感(比如音频编解码器),controller 驱动设。OS 的调度器从 runqueue 里挑进程,SPI 的消息泵从。时进程被 blocking,异步路径就像投递一个 AIO 请求。,消息泵线程就获得了接近实时的调度优先级。里挑 message。下面从几个维度逐条对比。
2026-06-28 14:58:42
221
原创 SPI 总线注册
是把spi_init注册到内核启动的第 2 级初始化序列中,让它在其他更晚的子系统(如文件系统、设备驱动)启动之前先被执行,执行完后整个.init段内存被释放回收。宏是源头标签——编译时给代码贴上"我属于哪个段";链接脚本是收集器——链接时把贴了同标签的所有碎片拼成连续数组,并生成边界符号让内核能在运行时遍历它。缺了前者东西放不对缺,少了后者东西放对了但找不到。spi_init这个宏是整套 initcall 机制的枢纽。一行行拆开看。两行,四个部分。│。
2026-06-26 22:14:18
804
1
原创 Hi3516CV610 + MPU6050学习
本文流程:姿态解算 → 视频防抖。硬件分析| 芯片 | 陀螺仪噪声 (dps/√Hz) | 推荐度 | 说明 || ICM-42688-P | 0.0028 | ⭐⭐⭐ | 最优选择,超低噪声 || BMI160 | 0.007 | ⭐⭐ | 低功耗场景 || MPU6050 | 0.005 | ⭐⭐ | 成本最低,货源充足 |选择mpu6050用于学习。
2026-06-25 15:24:47
636
原创 hi3516cv610与mpu6050具体通信实现
mpu6050SCL连接丝印图2,SDA连丝印图1,外接电源,AD0接地。向地址0x11130050写入0x1103。向地址0x11130054写入0x1103。软件开启复用i2c2。6050默认睡眠模式。
2026-06-21 16:54:43
875
原创 hi3516MPP链路学习
码流获取线程:sample_easyvenc_comm_venc_start_get_stream 创建一个独立线程 (sample_easyvenc_comm_venc_get_venc_stream_proc),用于循环监听编码器输出。sample_venc_online_wrap_sys_init 函数通过调用底层的sample_comm_sys_init_with_vb_supplement 接口来完成 VB (Video Buffer) Pool 的配置。
2026-06-19 16:17:05
297
原创 嵌入式Linux多媒体开发 — 知识点详解汇总
本文为嵌入式Linux多媒体开发教程摘要,基于全志V853平台和东山PI-AICT开发板,涵盖以下核心内容: 技术体系:以全志MPP多媒体平台为核心,覆盖图像处理(YUV/RGB/RAW)、视频编解码(H.264/H.265)、RTSP流媒体和AI推理等技术栈。 开发环境:详细说明Tina SDK编译流程、MPP程序开发方法,以及开发板烧录配置(PhoenixSuit工具+串口调试)。 核心知识: 图像处理:颜色模型(RGB/YUV/HSV)、位深、FourCC编码标准 视频技术:编解码原理、MPP模块(V
2026-06-16 21:24:55
538
原创 hi3516源码目录分析
│ │ │ │ │ ├── smart_sc4336p/ # 思特威 SC4336P (4MP/3MP/2MP)│ │ │ │ │ ├── smart_sc431hai/ # 思特威 SC431HAI (4MP)│ │ │ │ │ ├── smart_sc450ai/ # 思特威 SC450AI (4MP)
2026-06-16 20:00:49
337
原创 socat端口转发推流
PC通过IMX6ULL中转拉取HI3516视频流方案 采用轻量级TCP端口转发工具socat实现高效中转,规避IMX6ULL性能瓶颈。关键步骤:1)交叉编译静态版socat(禁用FIPS,减少依赖);2)确认HI3516使用TCP interleaved模式(仅需转发554端口);3)IMX6ULL运行socat TCP-LISTEN:8554,fork,reuseaddr TCP:摄像头IP:554;4)PC端通过VLC访问rtsp://IMX6ULL_IP:8554/0。该方案资源占用低,无需复杂协议转
2026-06-15 23:14:23
438
原创 imx6ullpro的WiFi启动问题
查找驱动:find /lib/modules/$(uname -r) -name "*.ko" | grep -i -E "8188|8723|rtl|wlan"连接WiFi:wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant.conf。加载驱动:insmod /lib/modules/4.9.88/extra/8723bu.ko。查找SSID:iw dev wlan0 scan | grep SSID。动态获取IP:udhcpc -i wlan0。
2026-06-15 18:25:28
479
v4l2.pdf【多媒体驱动】V4L2子系统架构与数据流管理:Linux视频设备驱动设计与实现
2026-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅