一、NVMe读写
-
设备模型 :NVMe 是面向 PCIe SSD 的高性能存储协议,Linux 中常见节点包括
/dev/nvme0、/dev/nvme0n1、/dev/nvme0n1p1。 -
PetaLinux配置 :需要启用 PCIe 支持、Xilinx PCIe Host 控制器和 NVM Express block device,并在 rootfs 中加入
nvme-cli、e2fsprogs、parted、util-linux、hdparm等工具。 -
分区与挂载 :先用
nvme list、fdisk -l确认设备,再用parted创建 GPT 分区,使用mkfs.ext4格式化,最后挂载到/mnt/nvme。 -
性能验证 :使用
hdparm -Tt、dd iflag/oflag=direct做读写测试,使用nvme smart-log查看温度、读写量和介质错误。
二、Qt界面显示
-
Qt基础:Qt 是跨平台 C++ GUI 框架,核心包括控件、布局、事件循环和信号槽机制。
-
板端运行环境 :开发板需要具备显示输出、输入设备、Qt 库、字体和平台插件。常用运行后端包括
linuxfb、eglfs、wayland。 -
Demo结构 :
qt_demo包含标题标签、输入框、按钮、滑块、进度条和日志区域,适合讲解 QWidget、布局管理和信号槽连接。 -
编译部署 :先
sourcePetaLinux SDK 环境,再执行qmake qt_demo.pro、make,最后将可执行文件复制到开发板运行。
三、摄像头GStreamer显示
-
V4L2检查 :通过
ls /dev/video*、v4l2-ctl --list-devices、--list-formats-ext确认摄像头设备、格式、分辨率和帧率。 -
管道思想 :GStreamer 管道由 source、filter、encoder、sink 组成,典型链路是
v4l2src ! videoconvert ! kmssink。 -
常见应用:可完成实时预览、截图保存、H.264 录制、VCU 硬件编码和 UDP 网络推流。
-
Demo价值 :
gst_camera_demo.sh把常用命令集中成可复现脚本,适合用于摄像头链路快速验证。
四、摄像头Qt显示
-
Qt Multimedia模块 :核心类包括
QCameraInfo、QCamera、QCameraViewfinder、QCameraImageCapture。 -
预览流程 :枚举摄像头,创建
QCamera,绑定QCameraViewfinder,调用start()启动预览。 -
截图功能 :使用
QCameraImageCapture设置 JPEG 编码质量和保存路径,通过信号回调确认截图完成。 -
Demo讲解重点 :
qt_camera_demo将设备选择、启动停止、实时预览、截图保存和缩略图显示整合到一个 Qt 应用中。
五、OpenCV人脸检测
-
算法基础:Haar 级联分类器基于 Haar 特征、AdaBoost 和级联结构,速度快、依赖少,适合嵌入式教学和快速验证。
-
检测流程 :摄像头取帧后进行灰度化和直方图均衡,再调用
detectMultiScale()输出人脸框,并在原图上绘制结果。 -
编译运行 :rootfs 需要 OpenCV 相关库和模型文件,编译时链接
core、imgproc、highgui、objdetect、videoio等模块。 -
性能优化 :可通过降低分辨率、跳帧处理、增大
minSize、使用 LBP 模型或 NEON 优化降低 CPU 压力。
💡 完整视频讲解可前往 ALINX 视频号进行直播回看
更多细节欢迎关注我们黑金云课堂全年免费直播课,
黑金云课堂六月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!
| 系列 | 内容定位 |
|---|---|
| Verilog开发 | 硬件描述语言基础、逻辑设计、仿真调试 |
| Vitis开发 | Zynq软硬件协同、外设驱动、网络协议栈 |
| Linux开发 | 嵌入式Linux系统移植、驱动编写、应用开发 |