接口调试

设备调试
USB 调试
接口信息:mx1.25
连接设备
USB 接通调试设备,如果电脑USB 接口供电不足无法启动,
| 引脚号 | 功能说明 | 默认配线对应颜色 |
|---|---|---|
| 1 | VCC5V0 | 红色 |
| 2 | OTG_DM | 白色 |
| 3 | OTG_DP | 绿白 |
| 4 | GND | 黑色 |
USB接口
ADB 调试
可以先下载 QtScrcpy 或者
- 下载
QtScrcpy-win-x64-v3.3.3.zip并解压
解压 QtScrcpy-win-x64
- 在 cmd 中打开
打开解压的 QtScrcpy-win-x64 目录
示例: 通过 ADB 在设备执行命令
roy@HUAWEIMcMiniM4 ~ % adb devices
List of devices attached
fec3d3812d367ee device
roy@HUAWEIMcMiniM4 ~ % adb shell
root@rv1126_rv1109:/# uname -a
Linux rv1126_rv1109 4.19.111 #1 SMP PREEMPT Thu Sep 5 12:31:38 UTC 2024 armv7l GNU/Linux
USB 软件信息速查
| 项目 | 值 |
|---|---|
| USB2 PHY | usb2-phy@21400000(节点 &usb2phy,板级 &usb2phy_host / &usb2phy_otg) |
| USB3 OTG 控制器 | usb@21500000(节点 &usb_drd_dwc3,UDC 名 21500000.usb) |
| 模式 | dr_mode = "otg",板级 extcon = <&usb2phy>、phys = <&usb2phy_otg>、maximum-speed = "high-speed" |
| 供电 | Host 口 phy-supply = <&vcc5v0_host> |
DTS 位置:节点在
arch/arm64/boot/dts/rockchip/rv1126b.dtsi,板级配置在rv1126bp-evb-v14.dtsi;RV1126B SDK 里即sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/下。
USB OTG 切换
下面用的是 RV1126B-p 的地址:USB2 PHY 为
21400000.usb2-phy,dwc3 控制器为21500000.usb。 (RV1126/RV1109 上的旧地址是ff4c0000.usb2-phy/ffd00000.dwc3,在 1126B 上取不到。)
USB OTG 强制切换为 Host 模式:
echo disconnect > /sys/class/udc/21500000.usb/soft_connect ##(断开 usb device 的连接)
echo host > /sys/devices/platform/21400000.usb2-phy/otg_mode
USB OTG 强制切换为 Device 模式:
echo peripheral > /sys/devices/platform/21400000.usb2-phy/otg_mode
echo connect > /sys/class/udc/21500000.usb/soft_connect ##(使能 usb device 的连接)
USB OTG 强制切换为 OTG 模式:
echo otg > /sys/devices/platform/21400000.usb2-phy/otg_mode
echo connect > /sys/class/udc/21500000.usb/soft_connect ##(使能 usb device 的连接)
ETH 调试
接口信息:mx1.25
查看 IP
可以通过调试串口、adb、ssh 查看IP地址,例如:
进入ADB 的方法过可参考示例: 通过-adb-在设备执行命令
roy@HUAWEIMcMiniM4 ~ % adb shell
root@rv1126_rv1109:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
link/ether 62:c6:19:eb:91:a5 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.254/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
连接方法
ETH 软件信息速查
| 项目 | 值 |
|---|---|
| 网络设备 | eth0 |
| 控制器 | gmac(节点 ethernet@21c70000) |
| PHY 接口 | phy-mode = "rgmii",clock_in_out = "output" |
| PHY 复位 | snps,reset-gpio = <&gpio5 RK_PB4 GPIO_ACTIVE_LOW>(板级 rv1126bp-evb1-v12.dts) |
| 默认 IP | 10.0.0.254/24(随 rkipc 配置,见下) |
DTS 位置:节点在
arch/arm64/boot/dts/rockchip/rv1126b.dtsi,板级配置在rv1126bp-evb-v14.dtsi(&gmac)与rv1126bp-evb1-v12.dts(reset-gpio);RV1126B SDK 里即sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/下。
查看网口状态与协商速率:
# 查看链路状态
ip link show eth0
# 查看/强制协商速率(1000 / 100 / 10)
ethtool eth0
ethtool -s eth0 speed 100 duplex full autoneg off
MIPI 调试
-
40PIN 双 MIPI/LVDS 输入接口 (支持 4lane)
-
接口定义见规格书
-
默认套餐
IMX415IMX307可选
连接方法
MIPI 软件信息速查
| 项目 | 值 |
|---|---|
| 摄像头 I2C | i2c1 @ 0x21110000(复用 i2c1m2),sensor 地址 imx415=0x1a、sc450ai/sc850sl=0x30 |
| D-PHY | &csi2_dphy0(节点 csi2-dphy0) |
| CSI 控制器 | &mipi0_csi2(节点 mipi0-csi2) |
| sensor 时钟 | xvclk = <&cru CLK_MIPI0_OUT2IO>,pinctrl 用 cam_clk0_pins |
| sensor 复位 | reset-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW> |
| 默认套餐 | IMX415 / IMX307 可选 |
DTS 位置:CSI/D-PHY 节点在
arch/arm64/boot/dts/rockchip/rv1126b.dtsi,D-PHY 连线在rv1126b-evb-cam-csi0.dtsi,sensor 挂在rv1126bp-evb-cam-csi0.dtsi的&i2c1;RV1126B SDK 里即sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/下。
查看当前注册出的视频节点:
v4l2-ctl --list-devices
附 40pin MIPI 接口信息:
40 PIN 0.5MM FPC 连接座 型号: X05C2040TZ
可以通过命令 dmesg 或者 logcat 查看 sensor 状态日志,确保 sensor 正常加载,否则请检查链接或者尝试更换摄像头。
# 如果 senser 是 imx307
dmesg | grep imx307
# 如果 senser 是 imx415
dmesg | grep imx415
# 如果 senser 是 imx307
logcat | grep imx307
# 如果 senser 是 imx415
logcat | grep imx415
参考日志 rv1126bp 未接摄像头报错情况:
root@rv1126bp-buildroot:/# logcat | grep imx415
Jan 1 00:00:01 rv1126bp-buildroot kern.info kernel: [ 0.871121] /i2c@21110000/imx415@10: Fixed dependency cycle(s) with /csi2-dphy0
Jan 1 00:00:01 rv1126bp-buildroot kern.info kernel: [ 1.344418] imx415 1-0010: driver version: 00.01.08
Jan 1 00:00:01 rv1126bp-buildroot kern.warn kernel: [ 1.344450] imx415 1-0010: Get hdr mode failed! no hdr default
Jan 1 00:00:01 rv1126bp-buildroot kern.info kernel: [ 1.344484] imx415 1-0010: detect imx415 lane 4
Jan 1 00:00:01 rv1126bp-buildroot kern.warn kernel: [ 1.344597] imx415 1-0010: Failed to get power-gpios
Jan 1 00:00:01 rv1126bp-buildroot kern.info kernel: [ 1.344617] imx415 1-0010: could not get default pinstate
Jan 1 00:00:01 rv1126bp-buildroot kern.info kernel: [ 1.344631] imx415 1-0010: could not get sleep pinstate
Jan 1 00:00:01 rv1126bp-buildroot kern.warn kernel: [ 1.344668] imx415 1-0010: supply dvdd not found, using dummy regulator
Jan 1 00:00:01 rv1126bp-buildroot kern.warn kernel: [ 1.344850] imx415 1-0010: supply dovdd not found, using dummy regulator
Jan 1 00:00:01 rv1126bp-buildroot kern.warn kernel: [ 1.344922] imx415 1-0010: supply avdd not found, using dummy regulator
Jan 1 00:00:01 rv1126bp-buildroot kern.err kernel: [ 1.511281] imx415 1-0010: Unexpected sensor id(000000), ret(-5)
直接截取画面保存 V4L2 调用摄像头使用
支持的格式
v4l2-ctl -d /dev/video12 --list-formats-ext
/tmp/111.yuv
4K
v4l2-ctl -d /dev/video12 \
--set-fmt-video=width=3840,height=2160,pixelformat=NV12 \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/tmp/111.yuv \
--stream-count=1 \
--stream-poll
2K
v4l2-ctl -d /dev/video12 \
--set-fmt-video=width=1920,height=1080,pixelformat=NV12 \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/tmp/111.yuv \
--stream-count=1 \
--stream-poll
UART 说明
RV1126B-p 默认接口为 ttyS2 默认波特率为 9600
ttyS2 串口信息速查
| 项目 | 值 |
|---|---|
| 设备节点 | /dev/ttyS2 |
| 控制器 | uart2 @ 0x21170000(别名 serial2 = &uart2) |
| 引脚复用 | uart2m0(func 4) |
| TX | 24PIN-22 UART0_TX = GPIO3_B1(uart2_tx_m0) |
| RX | 24PIN-23 UART0_RX = GPIO3_B0(uart2_rx_m0) |
| RTS / CTS | 24PIN-21 = GPIO3_A6(默认归蓝牙)/ 24PIN-24 = GPIO3_A7 |
| 默认波特率 | 9600 |
DTS 位置:节点在
arch/arm64/boot/dts/rockchip/rv1126b.dtsi,引脚在rv1126b-pinctrl.dtsi;RV1126B SDK 里即sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/下。
查看 / 修改串口参数:
# 查看当前串口参数
stty -F /dev/ttyS2 -a
# 修改波特率(示例:115200)
stty -F /dev/ttyS2 115200
座子网名是 UART0_*。在当前固件里,21–24 接到 SoC 的 UART2 uart2m0,设备节点是 /dev/ttyS2。1–20 的 SoC 球号没有逐脚核对,说明保持原样。
| pin | 定义 | 管脚号 Ball | RV1126 | RV1126BP | Pin name RV1126B-p |
|---|---|---|---|---|---|
| 1 | GND | ||||
| 2 | GND | ||||
| 3 | VCC5V0 | ||||
| 4 | VCC5V0 | ||||
| 5 | USB_HOST_DP | Y1 | USB_HOST_DP | ||
| 6 | USB_HOST_DM | Y2 | USB_HOST_DM | ||
| 7 | GND | ||||
| 8 | ADKEY_IN0 | E17 | SARADC_IN0 | ||
| 9 | GND | ||||
| 10 | WIFI_WAKE_HOST | A13 | GPIO1_D1 | GPIO3_B7 | SAI2_SDI1_M0/UART1_RX_M1/I2C5_SDA_M1/GPIO3_B7 |
| 11 | BT_RST | T18 | GPIO3_A5 | GPIO6_A1 | VI_CIF_D1_M0/CAN0_TXD_M1/SAI0_LRCK_M1/PWM1_CH1_M2/UART4_RX_M2/I2C3_SDA_M3/GPIO6_A1 |
| 12 | BT_WAKE | P17 | GPIO3_A6 | GPIO6_A2 | VI_CIF_D2_M0/CAN1_RXD_M1/SAI0_SDO0_M1/PWM1_CH2_M2/UART5_tX_M2/I2C4_SCL_M1/GPIO6_A2 |
| 13 | BT_WAKE_HOST | R17 | GPIO3_A4 | GPIO6_A0 | VI_CIF_D0_M0/CAN0_RXD_M1/SAI0_SCLk_M1/PWM1_CH0_M2/UART4_TX_M2/I2C3_SCL_M3/GPIO6_A0 |
| 14 | WIFI_REG_ON | B13 | GPIO1_D0 | GPIO3_B6 | SPI1_CSN1_M1/SAI2_MCLK_M0/SDMMC1_DETN/UART1_TX_M1/I2C5_SCL_M1/GPIO3_B6 |
| 15 | SDIO_D0 | B16 | GPIO1_B4 | GPIO3_A2 | SDMMC1_D0/I2C1_SCL_M1/GPIO3_A2 |
| 16 | SDIO_D1 | C16 | GPIO1_B5 | GPIO3_A3 | SDMMC1_D1/I2C1_SDA_M1/GPIO3_A3 |
| 17 | SDIO_D2 | D15 | GPIO1_B6 | GPIO3_A4 | SDMMC1_D2/GPIO3_A4 |
| 18 | SDIO_D3 | C15 | GPIO1_B7 | GPIO3_A5 | SDMMC1_D3/GPIO3_A5 |
| 19 | SDIO_CMD | A16 | GPIO1_B3 | GPIO3_A1 | SDMMC1_CMD/GPIO3_A1 |
| 20 | SDIO_CLK | D16 | GPIO1_B2 | GPIO3_A0 | SDMMC1_CLK/GPIO3_A0 |
| 21 | UART0_RTSN | B15 | GPIO1_C0 | GPIO3_A6 | UART2_RTSN_M0/GPIO3_A6 |
| 22 | UART0_TX | C14 | GPIO1_C3 | GPIO3_B1 | SAI2_SDI2_M0/UART2_TX_M0/GPIO3_B1 |
| 23 | UART0_RX | D14 | GPIO1_C2 | GPIO3_B0 | UART2_RX_M0/GPIO3_B0 |
| 24 | UART0_CTSN | A15 | GPIO1_C1 | GPIO3_A7 | UART2_CTSN_M0/GPIO3_A7 |
| 来源 | 原理图 | 1126-1126BP 24pin.xlsx | 原理图 | 原理图 | Datasheet 1126B-p |
图中的 USB-TTL 适配器需要自行配置购买。
24 PIN 0.5MM FPC 调试小板/排线需要自行购买
SDIO 电压为 1.8V
连接方法
附 24pin 扩展 接口信息:
24 PIN 0.5MM FPC 连接座 型号: X05C2024TZ
RV1126B-p 端,查看波特率等信息
root@rv1126bp-buildroot:/# stty -F /dev/ttyS2 -a | grep speed
stty: /dev/ttyS2: Inappropriate ioctl for device
speed 9600 baud; line = 0;
PC端 (USB-TTL) 端,查看波特率等信息
root@Ubuntu-Magicmini-i5-8500B:~$ stty -F /dev/ttyUSB0 -a | grep speed
speed 9600 baud; rows 0; columns 0; line = 0;
测试方法:
## PC 先查看
cat /dev/ttyUSB0
TX_Test
## RV1126 再发送
echo "TX_Test" > /dev/ttyS2
测试效果
ttyS2 的 DTS
运行中的设备树型号是 Rockchip RV1126B-P EVB1 V12 Board。SDK rv1126b_linux_ipc_sdk_release_v1.2.0 里,板级入口只转去 V14,自己没有 UART 节点:
sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/rv1126bp-evb1-v12.dts
#include "rv1126bp-evb-v14.dts"
rv1126bp-evb-v14.dts 再包含 rv1126bp.dtsi、rv1126bp-evb.dtsi、rv1126bp-evb-v14.dtsi。rv1126bp.dtsi 包含 rv1126b.dtsi,rv1126b.dtsi 末尾包含 rv1126b-pinctrl.dtsi。
/dev/ttyS2 来自别名 serial2 = &uart2,在 rv1126b.dtsi:
serial2 = &uart2;
控制器默认定义也在 rv1126b.dtsi。这里 status 是 disabled,并且同时申请了 TX/RX、CTS、RTS:
uart2: serial@21170000 {
compatible = "rockchip,rv1126b-uart", "snps,dw-apb-uart";
reg = <0x21170000 0x100>;
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
clock-names = "baudclk", "apb_pclk";
reg-shift = <2>;
reg-io-width = <4>;
dmas = <&dmac 5>, <&dmac 4>;
pinctrl-names = "default";
pinctrl-0 = <&uart2m0_xfer_pins &uart2m0_ctsn_pins &uart2m0_rtsn_pins>;
status = "disabled";
};
当前板子在 rv1126bp-evb-v14.dtsi 里把它打开,RTS 不在 UART 节点上:
&uart2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart2m0_xfer_pins &uart2m0_ctsn_pins>;
};
同一文件里,21 脚 RTS 归蓝牙节点:
wireless-bluetooth {
compatible = "bluetooth-platdata";
uart_rts_gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "rts_gpio";
pinctrl-0 = <&uart2m0_rtsn_pins>;
pinctrl-1 = <&uart2_gpios>;
BT,power_gpio = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
status = "okay";
};
wireless-bluetooth {
uart2_gpios: uart2-gpios {
rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
引脚复用在 rv1126b-pinctrl.dtsi。现在用的是 m0,不是 uart2m1:
uart2m0_xfer_pins: uart2m0-xfer-pins {
rockchip,pins =
/* uart2_rx_m0 */
<3 RK_PB0 4 &pcfg_pull_up>,
/* uart2_tx_m0 */
<3 RK_PB1 4 &pcfg_pull_up>;
};
uart2m0_ctsn_pins: uart2m0-ctsn-pins {
rockchip,pins =
/* uart2m0_ctsn */
<3 RK_PA7 4 &pcfg_pull_none>;
};
uart2m0_rtsn_pins: uart2m0-rtsn-pins {
rockchip,pins =
/* uart2m0_rtsn */
<3 RK_PA6 4 &pcfg_pull_none>;
};
对应关系:RK_PB1 是 22 UART0_TX,RK_PB0 是 23 UART0_RX,RK_PA7 是 24 UART0_CTSN,RK_PA6 是 21 UART0_RTSN。
RV1126B 自己的板级 DTS 里没有 GPIO I2C。同一套内核里现成的是 gpio_i2c,照这个写:
sysdrv/source/kernel/arch/arm/boot/dts/rv1103-evb-ext-sii902x-bt656-to-hdmi-v10.dtsi
gpio_i2c: i2c@0 {
compatible = "i2c-gpio";
gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>, /* sda */
<&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>; /* scl */
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&gpio_i2c_pins>;
status = "okay";
};
gpio_i2c {
gpio_i2c_pins: gpio-i2c-pins {
rockchip,pins =
/* gpio_i2c_sda */
<3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none_smt>,
/* gpio_i2c_scl */
<3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none_smt>;
};
};
gpios 的第一只是 SDA,第二只是 SCL。同目录还有 rk3506g-test1-v10-audio.dts 的 gpio_i2c0,属性相同。
改为 I2C
GPIO3_B0、GPIO3_B1 在 rv1126b-pinctrl.dtsi 里没有 I2C 复用,不能改到 &i2c0–&i2c5。i2c0 现在在 i2c0m0 上接 RK809,不要改它的 pinctrl。
22/23 按上面的 gpio_i2c 改脚。写在 rv1126bp-evb-v14.dtsi,或写在包含它的板级 dts 里覆盖。先关掉 &uart2,否则这两只脚仍被串口占着:
&uart2 {
status = "disabled";
};
/ {
gpio_i2c: i2c@0 {
compatible = "i2c-gpio";
gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>, /* sda,24PIN 23 */
<&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; /* scl,24PIN 22 */
i2c-gpio,delay-us = <2>; /* ~100 kHz */
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&gpio_i2c_pins>;
status = "okay";
};
};
&pinctrl {
gpio_i2c {
gpio_i2c_pins: gpio-i2c-pins {
rockchip,pins =
/* gpio_i2c_sda,GPIO3_B0 */
<3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none_smt>,
/* gpio_i2c_scl,GPIO3_B1 */
<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none_smt>;
};
};
};
SCL、SDA 需要外部上拉。21 脚仍由 wireless-bluetooth 占用;若这只脚也要空出来,把该节点改成 status = "disabled"。
RS-485 调试
接口信息:mx1.25
RS-485 接口为 ttyS3 默认波特率为 9600
| 引脚号 | 功能说明 |
|---|---|
| 1 | GND |
| 2 | A |
| 3 | B |
图中的 USB-RS485 适配器需要自行配置购买。
连接方法
RV1126 端,查看波特率等信息
root@rv1126_rv1109:/# stty -F /dev/ttyS3 -a | grep speed
speed 9600 baud; rows 0; columns 0; line = 0;
PC端 (USB-TTL) 端,查看波特率等信息
root@Ubuntu-Magicmini-i5-8500B:~$ stty -F /dev/ttyUSB0 -a | grep speed
speed 9600 baud; rows 0; columns 0; line = 0;
测试方法:
## PC 先查看
cat /dev/ttyUSB0
TX_Test
## RV1126 再发送
echo "TX_Test" > /dev/ttyS3
测试效果
RS-485 串口信息速查
| 项目 | 值 |
|---|---|
| 设备节点 | /dev/ttyS3 |
| 控制器 | uart3 @ 0x21180000(别名 serial3 = &uart3) |
| 引脚复用 | uart3m0(func 2) |
| TX | GPIO2_A3(uart3_tx_m0) |
| RX | GPIO2_A2(uart3_rx_m0) |
| 默认波特率 | 9600 |
DTS 位置:节点在
arch/arm64/boot/dts/rockchip/rv1126b.dtsi,引脚在rv1126b-pinctrl.dtsi,板级使能在rv1126bp-evb.dtsi/rv1126bp-evb-v14.dtsi;RV1126B SDK 里即sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/下。
RS-485 是普通 UART 外接 485 电平转换(收发方向自动切换),软件上等同普通串口,改波特率的方法和 ttyS2 完全一样:
# 查看当前串口参数
stty -F /dev/ttyS3 -a
# 修改波特率(示例:115200)
stty -F /dev/ttyS3 115200
本 SDK 的板级 DTS 默认没有使能 uart3(rv1126b.dtsi 里 uart3 为 status = "disabled"),若固件里查不到 /dev/ttyS3,需要在板级 DTS 里打开 uart3。可加到 rv1126bp-evb.dtsi:
/*
* 使能 uart3 作为 RS-485 串口 /dev/ttyS3(复用 uart3m0):
* GPIO2_A2 = uart3_rx,GPIO2_A3 = uart3_tx
*/
&uart3 {
status = "okay";
};
改完重新编译内核 DTS 并烧录即可。
Debug 调试
接口信息:焊盘触点
请使用 TTL debug 1500000 (5个0️⃣)
Linux screen 参考使用:
screen /dev/ttyUSB0 1500000
退出方法:
Ctrl+A : quit
通电开机会看到日志:
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
PartType 0xfde00000 as drm logo base memory
Model: Rockchip RV1126B-P E 0N/A)
gpll 1188000 KHz
aupll 786431 KHz
t 100000 KHz
aclk_top_root 600000 KHz
pclk_top_root 100000h0: ethernet@21c70000
Hit key to stop autoboot('CTRL+C'): 0
图中的 USB-TTL 适配器需要自行配置购买。
调试触点需要自行焊接。

Debug 串口的软件信息
默认固件里,这个调试口由 Rockchip fiq-debugger 接管,内核注册为 /dev/ttyFIQ0,物理上对应 uart0(serial@20810000),波特率 1500000(与上面的 screen 一致)。
| 项目 | 值 |
|---|---|
| 设备节点 | /dev/ttyFIQ0 |
| 控制器 | uart0 @ 0x20810000(别名 serial0 = &uart0) |
| 引脚复用 | uart0m0:GPIO2_A0 = uart0_rx,GPIO2_A1 = uart0_tx |
| 默认波特率 | 1500000 |
| 登录 shell | busybox ::respawn:-/bin/sh 跑在 /dev/console 上,console=ttyFIQ0 时即登录到该调试口 |
相关文件路径(RV1126B SDK,内核源码目录为 sysdrv/source/kernel,DTS 均在其 arch/arm64/boot/dts/rockchip/ 下):
| 需要改的内容 | 文件路径 |
|---|---|
| 实际编译的板级 DTS(型号入口) | sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/rv1126bp-evb1-v12.dts |
bootargs、&fiq_debugger 开关、&uart0(改这里) | sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/rv1126bp-evb.dtsi |
fiq_debugger 节点、uart0 节点、aliases | sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/rv1126b.dtsi |
引脚复用 uart0m0 / uart2m0 | sysdrv/source/kernel/arch/arm64/boot/dts/rockchip/rv1126b-pinctrl.dtsi |
| 登录 getty / shell(可选) | buildroot/package/busybox/inittab(生成到 rootfs 的 /etc/inittab) |
bootargs(rv1126bp-evb.dtsi):
chosen {
bootargs = "earlycon=uart8250,mmio32,0x20810000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootwait snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=32K";
};
fiq_debugger 控制器(rv1126b.dtsi 定义,板级把它打开):
fiq_debugger: fiq-debugger {
compatible = "rockchip,fiq-debugger";
rockchip,serial-id = <0>; /* 0 = uart0 */
rockchip,wake-irq = <0>;
rockchip,irq-mode-enable = <0>;
rockchip,baudrate = <1500000>; /* 只支持 115200 和 1500000 */
interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled"; /* 板级 dtsi 中改为 "okay" */
};
查看设备节点:
root@rv1126bp-buildroot:/# ls -l /dev/ttyFIQ0
root@rv1126bp-buildroot:/# dmesg | grep -i fiq
改成普通 ttyS0
如果要把这个调试口当普通 TTL 串口(/dev/ttyS0)使用,需要关掉 fiq-debugger,把 uart0 交给普通 8250 驱动,并把 console 换成 ttyS0。以 rv1126bp-evb.dtsi 为例:
/* console 由 ttyFIQ0 换成 ttyS0(earlycon 的 0x20810000 就是 uart0,保持不变) */
chosen {
bootargs = "earlycon=uart8250,mmio32,0x20810000 console=ttyS0 root=PARTUUID=614e0000-0000 rootwait snd_soc_core.prealloc_buffer_size_kbytes=16 coherent_pool=32K";
};
/* 关闭 fiq-debugger,uart0 才能被普通 8250 驱动接管,注册成 /dev/ttyS0 */
&fiq_debugger {
status = "disabled";
};
/* 使能 uart0 作为普通串口 */
&uart0 {
status = "okay";
};
改后 /dev/console 即指向 /dev/ttyS0,登录 shell 会自动跟随;若想显示登录提示,可在 /etc/inittab 增加 ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100。
常用Linux 命令
查看核心温度
cat /sys/class/thermal/thermal_zone0/temp
cat /sys/class/thermal/thermal_zone1/temp
45200
输出结果 除以 100 就为摄氏温度,NPU CPU 都在一起,可视为相同
USB接口
解压 QtScrcpy-win-x64
打开解压的 QtScrcpy-win-x64 目录
连接方法
连接方法
连接方法
测试效果
连接方法
测试效果