Linux 调试工具

工作需要,调试过程中需要很多调试工具检测硬件或者软件功能,这里把常用的调试工具汇总

通讯协议调试工具:

uart 调试

minicom

  • 安装
1
sudo apt install minicom
  • 使用
1
2
3
4
5
6
7
8
9
# 运行minicom 并配置
minicom -s

选择进入“Serial port setup” 配置串口,比特率

选择“Save setup as dfl” 保存为默认配置,后续直接运行“minicom” 就能直接加载

# 退出
ctrl +A +Z

i2c调试

i2c-tool

  • 安装
1
2
sudo apt-get install i2c-tools

  • 使用
    root 用户下使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 显示所有可用的I2C总线
    i2cdetect -l

    # 查看i2c-1总线下的设备
    i2cdetect -y 1

    # 往i2c-1 0x36(设备地址) 地址写 3byte 数据 后接数据
    i2ctransfer -f -y 1 w3@0x36 0x00 0x01 0x02

    # 往i2c-1 0x36(设备地址) 寄存器地址0x0001 读3 byte i2ctransfer -f -y 1 w2@0x36 0x00 0x01 r3

CAN调试

can-utils

编译源码后会得到CAN调试相关程序,与系统自带指令ip 配合调试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 开启/关闭can设备;
ip link set canX down
ip link set canX up

# 显示can设备详细信息;
ip -details link show canX

# 设置比特率 为250Kbps
ip link set can0 type can bitrate 250000

# 发送数据;
cansend canX --identifier=ID+数据

# 使用滤波器接收ID匹配的数据
candump canX --filter=ID:mask

测试参考用例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
基本调试步骤
#在收发端关闭can0设备
ip link set can0 down

#在收发端打开can0设备
ip link set can0 up

# 设置比特率 为250Kbps
ip link set can0 type can bitrate 250000

#在接收端执行candump,阻塞等待报文
candump can0

#在发送端执行cansend,发送报文
cansend can0 123#1122334455667788

CAN 环回模式调试

设置can设备属性和波特率

1
2
ip link set can0 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on
ip link set can1 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on

设置成环回模式

1
2
3
ip link set can0 type can loopback on

ip link set can1 type can loopback on

开启can设备

1
2
ip link set up can0
ip link set up can1

网络调试工具:

wifi 调试工具

iwconfig
类似ifconfig

  • 安装

ubuntu 默认自带

  • 使用
1
2
3
4
5
6
7
8
9
10
11
12
# 显示基本信息
iwconfig

# 设置essid
iwconfig wlan0 essid any

# 设置工作频率
iwconfig wlan0 freq 2.422G

# 设置通道 iwlist显示通道总数和可用频率
iwconfig wlan0 channel 3

wpa_cli

  • 安装

ubuntu 默认自带

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 搜索 wlan0 设备附近热点
wpa_cli -i wlan0 scan  

# 建立新的连接 返回id
wpa_cli -i wlan0 add_network

# 设置 ssid名称 密码
wpa_cli set_network < id > ssid '"name"'
wpa_cli set_network < id > psk '“psk”'

# 断开连接
wpa_cli -i wlan0 disable_network < id >


后续更新 …