# RT-Thread pisces调试说明

发布版本：1.0

作者邮箱：hjc@rock-chips.com

日期：2019.11

文件密级：公开资料

---
**前言**

**概述**

**读者对象**

本文档（本指南）主要适用于以下工程师：
需要了解RT-Thread显示的工程师

**修订记录**

| **日期**   | **版本** | **作者** | **修改说明** |
| ---------- | -------- | -------- | ------------ |
| 2019-11-18 | V1.0     | 黄家钗   | 初始发布     |
|            |          |          |              |

---
[TOC]
---

## 1 rt-thread编译和配置说明

1. 配置

   ```c
   scons --menuconfig
   ```

   配置完之后会在.config和rtconfig.h中生成对应的宏：

   ```c
   ./rtconfig.h:288:#define RT_USING_DISPLAY
   ./.config:323:CONFIG_RT_USING_DISPLAY=bu
   ```

2. 编译

   ```c
   scons
   ```

3. 清除

   ```c
   scons -c
   ```

4. 生成配置

   ```c
   scons --useconfig=board/xxx/defconfig
   ```

5. 保存配置

   ```c
   scons --genconfig
   cp .config board/xxx/defconfig
   ```

## 2 代码风格整理

HAL代码风格整理

```
uncrustify -c .uncrustify.cfg --replace --no-backup files
```

RTT代码风格整理

```c
./tools/as.sh file
```

## 3 AP通过spi写m1的寄存器

```c
echo w 0x400b0100 0xc0004000 > /dev/rk_olpc 
```

## 4 rt-thread上反汇编

```c
arm-none-eabi-objdump -d rtthread.elf > rtthread.S
```

## 5 更新固件

固件在AP端通过SPI下载带M1

```c
adb root
adb remount
echo "adb push rtthread.bin /mnt/sdcard/"
adb push rtthread.bin /mnt/sdcard/
adb shell sync
adb shell "echo "raw rtthread.bin" > /dev/rk_olpc"
```

## 6 mipi switch测试

RK3399 MIPI SWITCH测试

1. AP上执行

   ```c
   su
   ./data/flash.sh
   ```

2. M1上执行

   ```c
   io -4 0x400b0110 0x400040
   io -4 0x400b0110 0x10001
   io -4 0x400b0240 0x10000
   ```

3. AP上执行

   ```c
   reboot
   ```

4. AP系统起来后执行

   ```c
   su
   stop
   io -4 0xff900008 0x20c09800
   echo 133 > /sys/class/gpio/export
   echo out > /sys/class/gpio/gpio133/direction
   echo 1 > /sys/class/gpio/gpio133/value
   ```

5. M1上执行

   ```c
   display_test mipi_switch	
   ```

6. AP上执行

   ```c
   while true
   do
   # switch to ap
   echo 1 > /sys/class/gpio/gpio133/value
   echo "switch ap"
   sleep 0.1  #make sure switch complete
   io -4 0xff900008 0x20809800  #unstandby
   sleep 1
   io -4 0xff9000b0 0x00900010;io -4 0xff900018 0x3ff;io -4 0xff900000 0x1  #close win, display blue
   sleep 1
   io -4 0xff9000b0 0x00900010;io -4 0xff900018 0xffc00;io -4 0xff900000 0x1  #close win, display green
   sleep 1
   io -4 0xff9000b0 0x00900010;io -4 0xff900018 0x3ff00000;io -4 0xff900000 0x1  #close win, display red
   sleep 1
   io -4 0xff9000b0 0x00900011;io -4 0xff900000 0x1  #enable win
   
   #to m1
   io -4 0xff900008 0x20c09800  #standby
   sleep 0.1
   echo 0 > /sys/class/gpio/gpio133/value
   
   echo "switch m1"
   sleep 5
   done& 
   ```

## 7 常用的一些命令

1. 设置背光

   设置背光亮度为0x303

   ```c
   io -4 0x41110070 0x030351 
   io -4 0x4111006c 0x339
   ```

   设置背光亮度为0

   ```c
   io -4 0x41110070 0x000051
   io -4 0x4111006c 0x339
   ```

2. 开关显示

   关闭显示

   ```c
   io -4 0xff45006c 0x2805
   ```

   打开显示

   ```c
   io -4 0xff45006c 0x2905
   ```

3. 读panel id

   ```c
   io -4 0x4111006c 0xda06 
   io -4 0x41110070
   ```