跳到主要内容

接口调试

导航栏

设备调试​

USB 调试​

接口信息:mx1.25

连接设备​

USB 接通调试设备,如果电脑USB 接口供电不足无法启动,请先接通 5V 电源,再接通 USB 调试

引脚号功能说明默认配线对应颜色
1VCC5V0红色
2OTG_DM白色
3OTG_DP绿白
4GND黑色

photo USB接口

ADB 调试​

可以先下载 QtScrcpy 或者其他包含 adb 的软件

  1. 下载 QtScrcpy-win-x64-v3.3.3.zip 并解压

photo 解压 QtScrcpy-win-x64

  1. 在 cmd 中打开

photo 打开解压的 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 PHYusb2-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

Photo 连接方法

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)
默认 IP10.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)

  • 接口定义见规格书

  • 默认套餐 IMX415 IMX307 可选

Photo 连接方法

MIPI 软件信息速查​

项目值
摄像头 I2Ci2c1 @ 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)
TX24PIN-22 UART0_TX = GPIO3_B1(uart2_tx_m0)
RX24PIN-23 UART0_RX = GPIO3_B0(uart2_rx_m0)
RTS / CTS24PIN-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定义管脚号 BallRV1126RV1126BPPin name RV1126B-p
1GND
2GND
3VCC5V0
4VCC5V0
5USB_HOST_DPY1USB_HOST_DP
6USB_HOST_DMY2USB_HOST_DM
7GND
8ADKEY_IN0E17SARADC_IN0
9GND
10WIFI_WAKE_HOSTA13GPIO1_D1GPIO3_B7SAI2_SDI1_M0/UART1_RX_M1/I2C5_SDA_M1/GPIO3_B7
11BT_RSTT18GPIO3_A5GPIO6_A1VI_CIF_D1_M0/CAN0_TXD_M1/SAI0_LRCK_M1/PWM1_CH1_M2/UART4_RX_M2/I2C3_SDA_M3/GPIO6_A1
12BT_WAKEP17GPIO3_A6GPIO6_A2VI_CIF_D2_M0/CAN1_RXD_M1/SAI0_SDO0_M1/PWM1_CH2_M2/UART5_tX_M2/I2C4_SCL_M1/GPIO6_A2
13BT_WAKE_HOSTR17GPIO3_A4GPIO6_A0VI_CIF_D0_M0/CAN0_RXD_M1/SAI0_SCLk_M1/PWM1_CH0_M2/UART4_TX_M2/I2C3_SCL_M3/GPIO6_A0
14WIFI_REG_ONB13GPIO1_D0GPIO3_B6SPI1_CSN1_M1/SAI2_MCLK_M0/SDMMC1_DETN/UART1_TX_M1/I2C5_SCL_M1/GPIO3_B6
15SDIO_D0B16GPIO1_B4GPIO3_A2SDMMC1_D0/I2C1_SCL_M1/GPIO3_A2
16SDIO_D1C16GPIO1_B5GPIO3_A3SDMMC1_D1/I2C1_SDA_M1/GPIO3_A3
17SDIO_D2D15GPIO1_B6GPIO3_A4SDMMC1_D2/GPIO3_A4
18SDIO_D3C15GPIO1_B7GPIO3_A5SDMMC1_D3/GPIO3_A5
19SDIO_CMDA16GPIO1_B3GPIO3_A1SDMMC1_CMD/GPIO3_A1
20SDIO_CLKD16GPIO1_B2GPIO3_A0SDMMC1_CLK/GPIO3_A0
21UART0_RTSNB15GPIO1_C0GPIO3_A6UART2_RTSN_M0/GPIO3_A6
22UART0_TXC14GPIO1_C3GPIO3_B1SAI2_SDI2_M0/UART2_TX_M0/GPIO3_B1
23UART0_RXD14GPIO1_C2GPIO3_B0UART2_RX_M0/GPIO3_B0
24UART0_CTSNA15GPIO1_C1GPIO3_A7UART2_CTSN_M0/GPIO3_A7
来源原理图1126-1126BP
24pin.xlsx
原理图原理图Datasheet 1126B-p
注意

图中的 USB-TTL 适配器需要自行配置购买。

24 PIN 0.5MM FPC 调试小板/排线需要自行购买

SDIO 电压为 1.8V

Photo 连接方法

附 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

Photo 测试效果

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

引脚号功能说明
1GND
2A
3B
注意

图中的 USB-RS485 适配器需要自行配置购买。

Photo 连接方法

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

Photo 测试效果

RS-485 串口信息速查​

项目值
设备节点/dev/ttyS3
控制器uart3 @ 0x21180000(别名 serial3 = &uart3)
引脚复用uart3m0(func 2)
TXGPIO2_A3(uart3_tx_m0)
RXGPIO2_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
固件里没有 /dev/ttyS3 时

本 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 调试​

Photo

接口信息:焊盘触点

请使用 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
登录 shellbusybox ::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 节点、aliasessysdrv/source/kernel/arch/arm64/boot/dts/rockchip/rv1126b.dtsi
引脚复用 uart0m0 / uart2m0sysdrv/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 都在一起,可视为相同