157 lines
3.7 KiB
Markdown
157 lines
3.7 KiB
Markdown
# 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 旋转功能
|
||
- ✅ 保留了图形显示功能
|
||
- ❌ 移除了视频播放功能
|
||
- ❌ 移除了网络下载功能
|
||
- ❌ 移除了播放列表功能
|
||
- ✅ 添加了详细的测试图案
|
||
- ✅ 添加了清晰的调试输出
|