- 博客(115)
- 收藏
- 关注
原创 使用 Lua 进行汽车 UDS 诊断:轻量级脚本化诊断新思路
本文探讨了使用轻量级脚本语言Lua实现汽车UDS诊断协议的可行性。文章首先介绍了UDS协议的基本服务(如读取VIN码、诊断会话控制等),然后分析了Lua在嵌入式诊断系统中的优势:体积小、可嵌入性强、语法简洁且支持热更新。通过示例代码展示了如何用Lua构建UDS请求、处理CAN通信和解析响应,建议将UDS服务封装为可复用模块。文章还讨论了高级应用场景,如利用协程实现自动化诊断流程,并给出部署建议(使用LuaJIT、C模块加速等)。最后指出Lua虽非主流,但在车载终端、快速原型开发等场景具有独特优势,未来在汽车
2026-01-27 21:16:08
1003
原创 《微信小程序demo开发》第二部分-基于云函数的邮箱发送
本文介绍了微信小程序开发中使用云函数和SMTP发送邮件的完整流程。首先需在微信公众平台注册账号并完成小程序备案,然后创建云函数模板工程,配置云开发环境。通过Node.js环境安装nodemailer包实现邮件发送功能,详细说明了SMTP服务开启和授权码获取方法。接着编写云函数代码并上传至云端,更新表单JS逻辑实现邮件内容提交。最后将代码上传至管理平台等待审核上线。文章为小程序开发者提供了从云函数配置到功能实现的完整指引,适合新手开发者参考。
2026-01-27 21:11:52
1170
原创 《微信小程序demo开发》第一部分-编写页面逻辑
本文介绍了微信小程序开发的入门指南,分享了一个简单的表单页面demo实现过程。作者建议前端基础薄弱的开发者可以先专注于页面逻辑和样式设计,逐步深入框架学习。文章详细讲解了微信开发者工具的使用方法,包括项目结构、文件创建和配置说明。通过示例代码展示了主页跳转功能、表单页面验证逻辑的实现,以及CSS样式的应用技巧,如渐变色按钮、长按动画等效果。最后提到后续将介绍云函数实现邮件发送功能,为小程序正式上线做准备。
2026-01-25 17:14:48
823
原创 Linux 系统硬盘分区挂载点建议
本文介绍了Linux系统安装时的分区方案建议。对于单硬盘用户,推荐创建三个基本分区:EFI分区(200-500MB FAT32格式)、swap分区(内存1-2倍)、根分区(剩余空间ext4格式)。多硬盘用户可额外增加/var和/home分区。作者倾向于不单独创建/boot分区,将其合并到根分区以便灵活管理多内核版本。文章还提供了Windows+Ubuntu双系统引导的参考链接。
2026-01-25 17:13:21
557
原创 使用 OpenVINO 本地部署 DeepSeek-R1 量化大模型(第二章:前端交互与后端服务)
本文介绍了基于OpenVINO的本地AI模型部署方案,包含前端交互界面和后端服务器实现。前端采用HTML/CSS/JavaScript构建聊天界面,支持状态检测和消息交互;后端使用Flask框架提供REST API,通过OpenVINO GenAI实现模型推理优化。系统在CPU上运行DeepSeek-R1-8B量化模型,内存占用约10GB,推理耗时40秒左右。文章详细展示了前后端代码实现,包括模型初始化、状态检测和对话接口,为开发者提供了完整的本地AI部署参考方案。
2025-12-25 14:13:43
1493
原创 使用 OpenVINO 本地部署 DeepSeek-R1 量化大模型(第一章:基础概念与模型转换)
本文探讨了在无独立显卡环境下部署大语言模型的三种方案:Ollama(简单易用但定制性差)、vLLM(GPU优化但CPU兼容性差)和OpenVINO(针对Intel CPU优化)。作者基于i7-13700H/32G内存环境,选择OpenVINO方案部署Qwen3-8B模型,详细介绍了使用Optimum-Intel工具进行INT4量化的转换过程(包括命令行和Python接口两种方式),以及转换前后的目录结构变化。文章还提及OpenVINO GenAI提供的多种推理流水线支持,并预告将另文介绍前后端交互实现。该方
2025-12-25 14:12:02
1503
原创 TensorRT 推理 YOLO Demo 分享 (Python)
本文介绍了基于TensorRT 8.6.1和CUDA 11.8环境的YOLOv8目标检测模型推理实现。通过YOLOv8TRTInference类封装了完整的推理流程,包括图像预处理、模型推理和后处理。关键实现包括:1)使用letterbox保持图像宽高比;2)支持COCO数据集80类检测;3)包含NMS后处理优化;4)提供详细的推理时间统计。测试结果表明,该方法能有效完成目标检测任务,并支持结果可视化输出。代码兼容YOLOv8和v12模型,实现了端到端的高效推理。
2025-12-03 20:32:31
513
原创 OpenVINO 推理 YOLO Demo 分享 (Python)
本文介绍了基于OpenVINO 2025.3的YOLO模型推理实现方案。主要内容包括:1) 环境配置(Python 3.11);2) 支持YOLOv5及后续版本的通用推理框架,采用动态输入尺寸和LetterBox预处理;3) ONNX模型转换OpenVINO格式的完整代码;4) YOLOv13推理实现,包含预处理、推理、后处理全流程;5) 支持多设备推理(CPU/GPU)。该系统具有通用性强、自动化程度高的特点,实测在i7-13700H笔记本上可成功使用集显GPU进行推理。
2025-12-03 20:31:56
403
原创 wsl: Failed to start the systemd user session for ‘***‘. See journalctl for more details.
摘要:Win11更新WSL至2.6.2版本后出现systemd启动失败问题,经确认是官方已知BUG。建议降级至2.5.9版本(内核6.6.87.2-1),只需下载安装wsl.2.5.9.0.x64.msi包即可解决该问题,且不影响系统稳定性。若需保留新版本功能,可参考Github社区其他解决方案。(98字)
2025-11-30 09:08:11
2743
原创 局域网内大文件传输方案分享(跨平台,低依赖)
摘要:本文介绍利用Python内置HTTP服务器在两台Windows电脑间快速传输大文件的方法。通过在分享端运行python -m http.server 8080命令启动简易服务器,下载端通过浏览器访问IP+端口即可下载文件。该方法跨平台、依赖少,实测千兆网络可达110MB/s传输速度,12G文件约3分钟完成。特别适用于无法开启传统网络共享的受限环境,但需注意防火墙权限和端口开放问题。
2025-11-30 09:05:57
856
原创 RK3588 使用 FFmpeg 硬件解码输出到 DRM Prime (DMA Buf) 加速数据传输
本文介绍了在RK3588开发板上基于DRMPrime和RGA硬件加速的视频处理优化方案。通过FFmpeg的RKmpp插件实现硬件解码,输出为DRMPrime格式的DMA缓冲区,避免了CPU参与的数据拷贝。作者详细阐述了如何修改解码器设置以支持DRMPrime输出,并展示了如何将解码后的NV12格式数据直接送入RGA进行硬件加速的色彩空间转换。文章还探讨了处理H264编码中stride对齐问题的解决方案,提供了修改后的RGA调用API示例。该方案充分利用RK3588的硬件加速能力,显著提升了视频处理效率。
2025-10-23 23:28:34
2672
2
原创 Python嵌入(绿色免安装)版:解决安装第三方包后仍无法使用问题
解决安装第三方包后仍无法使用问题:需手动修改pythonXX._pth文件,取消"import site"注释以启用标准库路径扫描。最后通过命令验证安装,使用国内镜像加速第三方包安装。
2025-10-23 23:25:21
722
原创 Windows 系统一键清理 TEMP 临时文件
本文提供了两种Windows系统临时文件清理方法:1.用户级清理脚本,主要清理用户临时文件夹、AppData临时文件及浏览器缓存;2.系统级清理脚本,额外清理Windows系统临时目录及其他常见临时文件。两个批处理脚本均包含删除文件、重建临时目录等功能,并建议在关闭其他程序后运行。用户可根据需要选择使用,系统级清理不建议频繁执行。
2025-08-17 13:54:47
2671
原创 WSL 设置网络镜像,并实现多个 WSL 间 SSH 相互登录和 SCP 文件传输
摘要: Windows WSL子系统默认共享相同IP地址,导致实例间无法直接通信。针对SSH和SCP等工具的使用需求,本文提供两种解决方案:一是为每个WSL实例配置独立IP地址(需谨慎处理网络配置);二是更简单的端口修改法,通过编辑/etc/ssh/sshd_config文件,为不同实例设置不同SSH端口(如2222/2223)。重点介绍了第二种方法的实施步骤,包括修改配置文件、重启服务以及测试连接的方法,为WSL实例间通信提供了便捷的解决途径。
2025-08-17 13:54:30
1298
原创 CUDA 编程笔记:CUDA延迟隐藏
GPU延迟隐藏技术通过多线程调度实现高性能计算。当部分线程束因内存访问或计算指令等待时,调度器立即切换执行其他就绪线程束,保持计算资源持续满载。该技术依赖两个关键条件:足够的并行线程束数量(通过合理配置线程块和网格实现)和均衡的负载分配(避免分支分化)。其本质是利用大量线程束快速切换,用计算时间填补等待时间,从而隐藏单一线程束的延迟,这是CUDA架构实现高效计算的核心机制。
2025-08-16 16:57:22
688
原创 CUDA 编程笔记:CUDA内存模型概述
CUDA内存模型包括寄存器、共享内存、局部内存、常量内存、纹理内存和全局内存。寄存器用于存储线程私有变量;共享内存位于片上,支持线程块内通信;局部内存用于寄存器溢出情况;常量内存具有只读特性,优化读取性能;全局内存容量最大但延迟最高。不同内存类型在访问速度、作用域和生命周期上各有特点,合理使用对CUDA程序性能优化至关重要,特别是共享内存和常量内存的缓存机制能显著提升数据访问效率。
2025-08-16 16:57:03
1723
原创 CUDA 编程笔记:GPU 硬件资源
本文总结了NVIDIA GPU的核心架构,主要包含三部分内容:1)流多处理器SM作为GPU的核心处理单元,由CUDA核心(SP)、寄存器、共享内存等组件构成,支持多线程并发执行;2)线程模型采用线程块(Block)和网格(Grid)的层级结构,线程块绑定到SM执行,并通过32线程的线程束(Warp)实现调度;3)线程束是SIMT架构的基本执行单元,同一线程束内的线程同步执行相同指令。文章详细分析了GPU的逻辑线程组织与物理硬件限制,强调优化线程块大小以匹配SM特性的重要性。
2025-08-15 16:18:28
1275
原创 CUDA 编程笔记:使用 CUDA 加速数组总和
本文介绍了使用CUDA并行计算加速数组求和的方法。通过将大数组划分为多个区间,由GPU线程并行累加,再将部分和汇总,相比CPU单线程累加显著提高了计算速度。文中详细说明了核函数实现,包括动态分配元素给线程、共享内存优化、折半归约求和等关键技术,并使用原子操作确保线程安全。测试结果表明,在1000万元素数组求和任务中,GPU方案正确且高效。代码采用统一内存管理,简化了数据传输过程。通过对比CPU串行实现,验证了并行计算的加速效果,测试通过且性能提升明显。
2025-08-15 16:17:34
535
原创 ubuntu 安装 RTL8192EU 驱动报错 Unknown symbol in module, or unknown parameter (see dmesg)
摘要:服务器升级内核后出现有线网卡和USB无线网卡驱动问题。有线网卡通过官方脚本快速解决,但无线网卡驱动安装持续报错。经排查发现缺少cfg80211模块依赖,安装linux-modules-extra包后问题解决。文章记录了这一故障排除过程,提醒注意内核升级时的模块依赖问题。
2025-07-26 22:39:47
552
原创 CH341 Linux驱动 没有 /dev/ttyCH341USB0
摘要:安装CH341串口模块驱动后出现设备识别不稳定的问题,通过dmesg检查发现与brltty服务存在冲突。解决方法是先停止并卸载brltty服务(视障人士用的盲文显示器软件),然后重新加载CH341驱动模块。执行命令停止服务、卸载软件、重新加载驱动后,设备可正常识别使用。该方案适用于需要长期连接CH341设备的用户。
2025-07-26 22:38:42
752
原创 CUDA 编程笔记:Block 独立性与共享内存隔离性
本文探讨了GPU矩阵乘法中共享内存优化的两个关键特性:Block独立性和共享内存隔离性。Block作为基本执行单元具有硬件级的独立性,不同Block由SM动态调度并行执行,且仅支持Block内同步。共享内存则具有物理隔离性,每个Block的共享内存副本独立分配,生命周期与Block绑定,开发者无需考虑跨Block冲突。文中提供了优化后的矩阵乘法代码示例,展示了如何利用共享内存的Block级隔离特性进行高效计算。这些特性使开发者只需关注Block内的协作逻辑,简化了并行编程模型。
2025-07-14 09:40:38
433
原创 CUDA 编程笔记:使用共享内存优化 CUDA 矩阵乘法
本文介绍了使用CUDA共享内存优化矩阵乘法的方法。通过在GPU核函数中使用__shared__内存分块加载矩阵数据,减少重复访问全局内存的延迟。关键点包括:1) 将BLOCK_SIZE大小的矩阵子块载入共享内存;2) 线程协作完成子块乘积累加;3) 使用__syncthreads()确保数据同步。实验在NVIDIA Jetson Nano平台进行,通过cudaEvent计时对比显示,共享内存版本性能显著提升。文章还详细分析了线程隔离与共享内存机制,并提供了完整源码实现和性能测试代码。
2025-07-14 09:40:00
1497
原创 CUDA 编程笔记:使用 CUDA 加速矩阵乘法
摘要:本文介绍了使用CUDA实现GPU并行矩阵乘法的方法。通过对比CPU串行计算(三重循环)与GPU并行计算(核函数调用多个线程)的差异,展示了CUDA编程的核心思想。文章详细讲解了核函数中线程索引计算、内存分配(固定内存优化)、数据传输及错误检查的实现,并提供了完整代码示例。测试结果表明,GPU并行计算能有效提升矩阵乘法效率。关键点包括:网格/线程块组织、一维数组存储方式、异构计算流程设计等,为CUDA初学者提供了实践参考。
2025-07-13 18:41:24
1403
原创 Ubuntu 设置自动挂载 SD 卡,扩容根目录
摘要:为解决Jetson Nano开发板16G emmc存储不足问题,本文介绍了将SD卡扩展为辅助存储的方法。首先将64G SD卡格式化为ext4文件系统,然后在/home目录创建挂载点,通过记录分区UUID并修改/etc/fstab配置文件实现自动挂载。配置参数包含nofail(确保系统无卡启动)、user(普通用户权限)和noatime(减少写入)等优化选项。该方法适用于存储可重复下载的开发文件,但需注意SD卡存在损坏风险,适合作为临时扩容解决方案。
2025-07-13 18:40:35
702
原创 基于 STM32 的 PC ARGB 风扇控制器设计与实现
本文介绍了一个基于STM32F103C6T6A单片机的风扇控制器项目,旨在解决X99系列主板在Ubuntu系统上风扇调速和ARGB彩灯控制的问题。项目通过单片机实现了风扇转速的PWM控制和WS2812B彩灯的多种效果模式,包括彩虹跑马灯、单色呼吸灯和单色常亮。此外,还开发了一个PC端控制APP,通过串口与单片机通信,实现对风扇转速和彩灯模式的远程控制。
2025-05-21 17:35:18
2585
原创 在 Ubuntu 下通过 C APP程序实现串口发送数据并接收返回数据
本文介绍了在Ubuntu系统下使用C语言进行串口通信的配置方法。首先需要手动配置串口参数并设置设备文件权限,通过将用户加入dialout组解决权限问题。文章详细分析了serial.c源码,包括串口打开、参数配置(波特率115200、8N1格式)、数据收发函数实现等关键部分,特别说明了硬件流控CRTSCTS的宏定义问题。示例代码展示了如何设置串口为原始输入输出模式,并实现基本的发送接收功能。最后强调了权限配置的重要性,提供了将用户加入dialout组的命令。
2025-05-21 17:27:42
663
原创 colcon: error: unrecognized arguments: --packages-select报错
colcon: error: unrecognized arguments: --packages-select报错
2025-05-06 20:28:32
1064
原创 GitCode 提交时提示文件过大:size of the file has exceeded the limited size (10 MiB) in commit
GitCode 提交时提示文件过大:size of the file has exceeded the limited size (10 MiB) in commit
2025-04-19 15:13:19
760
原创 WSL (ext4.vhdx文件)占用空间过大,清理方式记录,同时更改 WSL 保存位置
WSL (ext4.vhdx文件)占用空间过大,清理方式记录,同时更改 WSL 保存位置
2025-04-19 15:12:59
11509
2
原创 基于 RK3588 的 YOLO 多线程推理多级硬件加速引擎框架设计(代码框架和实现细节)
基于 RK3588 的 YOLO 多线程推理多级硬件加速引擎框架设计(代码框架和实现细节)
2025-03-31 12:40:55
2389
原创 基于 RK3588 的 YOLO 多线程推理多级硬件加速引擎框架设计(项目总览和加速效果)
基于RK3588的YOLO多线程推理多级硬件加速引擎框架设计(项目总览和加速效果)
2025-03-29 08:57:01
5950
34
原创 瑞芯微 RKrga接口 wrapbuffer_virtualaddr 使用笔记
瑞芯微 RKrga接口 wrapbuffer_virtualaddr 使用笔记
2025-03-29 08:56:17
1363
原创 在 RK3588 多线程推理 YOLO 时,同时开启硬件解码和 RGA 加速的性能分析
在 RK3588 多线程推理 YOLO 时,同时开启硬件解码和 RGA 加速的性能分析
2025-03-28 10:10:53
4305
5
原创 FFmpeg链接时报错 undefined reference to av_frame_free
FFmpeg链接时报错 undefined reference to av_frame_free
2025-03-27 10:17:12
569
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅