4.5_demo/README.md
2026-06-01 10:37:23 +08:00

3.7 KiB
Raw Permalink Blame History

FB 旋转测试程序

功能说明

这是一个专门用于测试 Framebuffer 旋转功能的简化程序,不包含视频播放功能。

测试内容

  1. Framebuffer 旋转配置 - 测试 90° 旋转是否正确应用
  2. 图形显示 - 测试旋转后的图形是否正确显示
  3. 方向验证 - 通过彩色方块和文字标签验证旋转方向

测试图案说明

程序会显示以下测试图案:

  • 四个角的彩色方块

    • 左上角:红色 (RED)
    • 右上角:绿色 (GREEN)
    • 左下角:蓝色 (BLUE)
    • 右下角:黄色 (YELLOW)
  • 方向指示文字

    • TOP顶部
    • BOTTOM底部
    • LEFT左侧
    • RIGHT右侧
  • 中心文字ROTATION TEST

  • 旋转角度信息:显示当前旋转角度

  • 十字参考线:水平和垂直中心线

编译方法

cd /home/hyx/4.5/4.5_demo
chmod +x build.sh
./build.sh

运行方法

1. 准备配置文件

在设备上创建 /data/config/param.ini

show_hor = 1

参数说明:

  • 0 = 0° (竖屏,无旋转)
  • 1 = 90° (横屏,顺时针旋转)
  • 2 = 180° (倒置)
  • 3 = 270° (逆时针旋转)

2. 上传并运行

# 上传到设备
scp build-arm-Release/rotation_test root@10.10.12.107:/data/

# 在设备上运行
chmod +x /data/rotation_test
/data/rotation_test

预期结果

如果 show_hor = 1 (90° 旋转)

物理屏幕应该显示:

  • 红色方块 在物理屏幕的 左上角
  • 绿色方块 在物理屏幕的 左下角
  • 蓝色方块 在物理屏幕的 右上角
  • 黄色方块 在物理屏幕的 右下角
  • "TOP" 文字指向物理屏幕的 左侧
  • "BOTTOM" 文字指向物理屏幕的 右侧

Framebuffer 信息验证

程序启动时会打印:

Setting FB rotation: 1 (0=0°, 1=90°, 2=180°, 3=270°)
Resolution: 480x856
Virtual: 480x1712
FB actual: 480x856, smem_len=..., line_length=1920

运行后可以通过以下命令验证:

fbset -fb /dev/fb0
cat /sys/class/graphics/fb0/virtual_size

应该显示:

  • geometry: 480 856 480 1712 32
  • virtual_size: 480,1712

退出程序

Ctrl+C 退出程序

调试信息

程序会输出详细的调试信息,包括:

  • 旋转配置读取
  • Framebuffer 初始化
  • 显示设备创建
  • 测试图案创建

文件结构

4.5_demo/
├── CMakeLists.txt          # CMake 配置
├── toolchain-arm.cmake     # 交叉编译工具链
├── lv_conf.h              # LVGL 配置
├── build.sh               # 编译脚本
├── README.md              # 说明文档
├── include/
│   ├── rotation_test.h    # 主头文件
│   └── display/
│       └── fbdev.h        # Framebuffer 接口
└── src/
    ├── main.c             # 主程序
    ├── rotation_test.c    # 显示初始化
    └── display/
        └── fbdev_10xd.c   # Framebuffer 驱动

故障排查

1. 编译失败

  • 检查交叉编译工具链是否正确安装
  • 检查 /opt/qua/qm10xd_linux 路径是否存在

2. 运行时黑屏

  • 检查 /data/config/param.ini 是否存在
  • 检查 framebuffer 设备 /dev/fb0 是否可访问
  • 查看程序输出的调试信息

3. 旋转方向不对

  • 修改 param.ini 中的 show_hor
  • 或修改 src/rotation_test.c 中的 g_screen_rotation 默认值

与原程序的区别

相比 0212 目录的完整程序:

  • 保留了 FB 旋转功能
  • 保留了图形显示功能
  • 移除了视频播放功能
  • 移除了网络下载功能
  • 移除了播放列表功能
  • 添加了详细的测试图案
  • 添加了清晰的调试输出