Skip to main content

Linux辅助开发

1 配置流程

1

2 接口/命令详解

2.1 GPIO

gpio支持的命令/接口有:

gpio shell命令

2

3

gpio shell命令详解:

cmd_gpio get_func <GPIO>
功能:获取指定IO功能状态
参数:GPIO //IO的名字
example:
cmd_gpio get_func PB28
cmd_gpio get_value <GPIO>
功能:获取IO电平
参数:GPIO //IO的名字
example:
cmd_gpio get_value PB28
cmd_gpio set_func <GPIO> <FUNC>
功能:设定指定IO功能
参数:GPIO //IO口的名字
FUNC //IO的功能
example:
cmd_gpio set_func PB28 func0

2.2 SPI

spi支持的命令/接口有:

spi shell命令

5

6

spi shell命令详解:

cmd_spi info <dev_path>
功能:获取spi设备的传输配置信息
参数:dev_path //spi设备节点的路径
example:
cmd_spi info /dev/spidev0.0
cmd_spi set <dev_path> <arg>[arg...]
功能:设置spi设备传输的配置信息
参数:dev_path //spi设备节点的路径
arg /*配置参数(至少配置一项)
mode=(传输模式)
speed=(传输速度)
lsb=(数据低位发送顺序,0表示低位在后,1表示低位在前)
bits=(数据每次传输的位数)*/
example:
cmd_spi set /dev/spidev0.0 mode=0x01 speed=5000000 lsb=0 bits=8
cmd_spi transfer <dev_path> <data0>[data...]
功能:SPI传输(收发)
参数:dev_path //spi设备节点路径
<data0>[data...] //数据(单位:16进制)
example:
cmd_spi transfer /dev/spidev0.0 0x01 0x02 0x03 0x05 0x05
cmd_spi write <dev_path> <data0>[data...]
功能:SPI传输(只发不收)
参数:dev_path //spi设备节点路径
<data0>[data...] //数据(单位:16进制)
example:
cmd_spi write /dev/spidev0.0 0x01 0x02 0x03 0x05 0x05
cmd_spi read <dev_path> <len>
功能:SPI传输(只收不发)
参数:dev_path //spi设备节点路径
len //要接收的长度
example:
cmd_spi read /dev/spidev0.0 10
cmd_spi add_dev <busnum> <cs_gpio>
功能:添加一个spi设备到spi总线上,生成/dev/spidev节点
参数:busnum //要挂载的spi总线号
cs_gpio //该设备的片选引脚
example:
cmd_spi add_dev 0 pc26
cmd_spi del_dev <dev_path>
功能:删除已有的spi设备
参数:dev_path //spi设备节点路径
example:
cmd_spi del_dev /dev/spidev0.0

2.3 I2C

I2C支持的接口/命令有:

I2C shell命令

7

8

i2c shell命令详解:

cmd_i2c detect <busnum>
功能:探测i2c设备
参数:busnum //探测的i2c总线号
example:
cmd_i2c detect 0
注意:探测前需要先给设备上电,确保设备iic工作正常
cmd_i2c read <busnum> <dev_addr> <size>
功能:从指定的i2c总线下的设备接收数据
参数:busnum //指定的i2c总线号
dev_addr //指定设备相对应的设备地址
size //接收的大小
example:
cmd_i2c read 2 0x58 8
cmd_i2c write <busnum> <dev_addr> <data0> [data...]
功能:往指定的i2c总线下的设备发送数据
参数:busnum //指定的i2c总线号
dev_addr //指定设备对应的设备地址
<data0>[data...] //发送的数据(16进制)
example:
cmd_i2c write 2 0x58 0xaa 0xbb
cmd_i2c read_reg <busnum> <dev_addr> <reg_addr> <size>
功能:从指定的i2c总线下的设备的寄存器地址读取数据(8位寄存器)
参数:busnum //指定的i2c总线号
dev_addr //指定设备对应的设备地址
reg_addr //指定设备的寄存器地址
size //读取的大小
example:
cmd_i2c read_reg 2 0x58 0x00 8
cmd_i2c wrtie_reg <busnum> <dev_addr> <reg_addr> <data0> [data...]
功能:往指定的i2c总线下的设备的寄存器写入数据(8位寄存器)
参数:busnum //指定的i2c总线号
dev_addr //指定设备对应的设备地址
reg_addr //指定设备对应的寄存器地址
<data0>[data...] //写入的数据(16进制)
example:
cmd_i2c write_reg 2 0x58 0x00 0xaa 0xbb
cmd_i2c read_reg_16 <busnum> <dev_addr> <reg_addr_16> <size>
功能:从指定的i2c总线下的设备的寄存器地址读取数据(16位寄存器)
参数:busnum //指定的i2c总线号
dev_addr //指定设备对应的设备地址
reg_addr_16 //指定设备的寄存器地址
size //读取的大小
example:
cmd_i2c read_reg_16 0 0x10 0x3010 2
cmd_i2c wrtie_reg_16 <busnum> <dev_addr> <reg_addr_16> <data0> [data...]
功能:往指定的i2c总线下的设备的寄存器写入数据(16位寄存器)
参数:busnum //指定的i2c总线号
dev_addr //指定设备对应的设备地址
reg_addr_16 //指定设备对应的寄存器地址
<data0>[data...] //写入的数据(16进制)
example:
cmd_i2c write_reg_16 0 0x10 0x3010 0x55 0xaa

2.4 PWM

pwm支持的命令/接口有:

pwm shell命令

9

10

pwm shell命令详解:

cmd_pwm config <gpio> <freq=value> <max_level=value> [active_level=value] [accuracy_priority=freq(levels)]
功能:请求pwm和配置
参数: gpio //io口的名字
freq=value //频率
max_level=value //PWM最大调制的级数
active_level=value //活跃电平(active_level =1、 active_level=0)
accuracy_priority=freq // 频率优先
accuracy_priority=levels // 极数优先
example:
cmd_pwm config pc11 freq=1000000 max_level=300 active_level=1 accuracy_priority=freq
cmd_pwm set_level <gpio> <level>
功能:设置pwm级数
参数:pwm_id //io口的名字
level //pwm 调制级数,即一个周期内非空闲电平长度
example:
cmd_pwm set_level pc11 100
cmd_pwm disable <gpio>
功能:失能pwm
参数:gpio //io口的名字
example:
cmd_pwm disable PC25

2.5 EFUSE

efuse支持的命令/接口有:

efuse shell命令

11

12

efuse shell命令详解:

cmd_efuse read_size <segment_name>
功能:读efuse某一段的大小
参数:segment_name //段的名字
example:
cmd_efuse read_size CHIP_ID
cmd_efuse read <segment_name>
功能:读efuse
参数:segment_name //段的名字
example:
cmd_efuse read CHIP_ID
cmd_efuse write <segment_name> <start> <size> <data0>[data...]
功能:写efuse
参数:segment_name //段的名字
start //写入的起始位
size //写入的大小
<data0>[data...] //写入的数据
example:
cmd_efuse write CHIP_ID 0 2 0x10 0x11
cmd_efuse print_segment_info
功能:打印efuse每个段的信息
参数:无
example:
cmd_efuse print_segment_info

2.6 FrameBuffer

framebuffer支持的命令/接口有:

framebuffer shell命令

framebuffer shell命令详解:

cmd_fb enable  <fb_dev_path>
功能:使能fb设备,上电并初始化
参数:fb_dev_path //要操作的设备驱动路径
example:
cmd_fb enable /dev/fb0
cmd_fb disable <fb_dev_path>
功能:关闭fb设备,掉电
参数:fb_dev_path //要操作的设备驱动路径
example:
cmd_fb disable /dev/fb0
cmd_fb info <fb_dev_path>
功能:显示fb的相关信息
参数:fb_dev_path //要操作的设备驱动路径
example:
cmd_fb info /dev/fb0
cmd_fb clear  <fb_dev_path> [color] [frame_index]
功能:清理某一帧的数据
参数:fb_dev_path //要操作的设备驱动路径
color //清理成的数据(默认为0x000000)数据格式为:ARGB(32位)
frame_index //要清理的帧(默认为第0帧)
example:
cmd_fb clear /dev/fb0 color=0x00ff00 frame_index=0
cmd_fb draw_rect <fb_dev_path> [color] [frame_index]
[x] [y] [width] [height]
功能:绘制某一帧的数据
参数: fb_dev_path //要操作的设备驱动路径
color //要绘制的颜色数据 数据格式为:ARGB(32位)
frame_index //要绘制的帧(默认为第0帧)
x //开始绘制的水平位置
y //开始绘制的垂直位置
width //绘制的宽度(默认为屏幕的宽度)
height //绘制的长度(默认为屏幕的长度)
example:
cmd_fb draw_rect /dev/fb0/ color=0xff0000 frame_index=0 x=0 y=0
cmd_fb display <fb_dev_path> [frame_index]
功能:将某一帧缓冲的数据刷新到屏幕上
参数:fb_dev_path //要操作的设备驱动路径
frame_index //要刷新的帧(默认为第0帧)
example:
cmd_fb display /dev/fb0/ frame_index=1