4.5_demo/README.md

157 lines
3.7 KiB
Markdown
Raw Permalink Normal View History

2026-06-01 02:37:23 +00:00
# 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 旋转功能
- ✅ 保留了图形显示功能
- ❌ 移除了视频播放功能
- ❌ 移除了网络下载功能
- ❌ 移除了播放列表功能
- ✅ 添加了详细的测试图案
- ✅ 添加了清晰的调试输出