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

157 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FB 旋转测试程序
## 功能说明
这是一个专门用于测试 Framebuffer 旋转功能的简化程序,不包含视频播放功能。
## 测试内容
1. **Framebuffer 旋转配置** - 测试 90° 旋转是否正确应用
2. **图形显示** - 测试旋转后的图形是否正确显示
3. **方向验证** - 通过彩色方块和文字标签验证旋转方向
## 测试图案说明
程序会显示以下测试图案:
- **四个角的彩色方块**
- 左上角:红色 (RED)
- 右上角:绿色 (GREEN)
- 左下角:蓝色 (BLUE)
- 右下角:黄色 (YELLOW)
- **方向指示文字**
- TOP顶部
- BOTTOM底部
- LEFT左侧
- RIGHT右侧
- **中心文字**ROTATION TEST
- **旋转角度信息**:显示当前旋转角度
- **十字参考线**:水平和垂直中心线
## 编译方法
```bash
cd /home/hyx/4.5/4.5_demo
chmod +x build.sh
./build.sh
```
## 运行方法
### 1. 准备配置文件
在设备上创建 `/data/config/param.ini`
```ini
show_hor = 1
```
参数说明:
- `0` = 0° (竖屏,无旋转)
- `1` = 90° (横屏,顺时针旋转)
- `2` = 180° (倒置)
- `3` = 270° (逆时针旋转)
### 2. 上传并运行
```bash
# 上传到设备
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
```
运行后可以通过以下命令验证:
```bash
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 旋转功能
- ✅ 保留了图形显示功能
- ❌ 移除了视频播放功能
- ❌ 移除了网络下载功能
- ❌ 移除了播放列表功能
- ✅ 添加了详细的测试图案
- ✅ 添加了清晰的调试输出