Zynq Linux 环境下 AXI UART Lite 使用方法详解
文章目录
一、硬件环境配置
这是zynq开发的前提,在Vivado工程中配置 AXI UART Lite IP 核,包括添加到 Block Design 并连接至 Zynq 处理器。
说明如何设置时钟、中断和寄存器空间,并生成比特流文件,导出硬件描述文件.hdf 或 .xsa。
二、设备树(Device Tree)配置
设备树是嵌入式系统中用于描述硬件配置的重要机制。对于AXI UART Lite控制器,需要在设备树中正确配置节点才能使其正常工作。本节详细介绍如何在设备树中定义AXI UART Lite节点,包括关键参数配置和示例说明。
实际上这一步骤,如果使用petalinux工具,在petalinux-config --get-hw-description后,会自动完成,但是在这里仍然描述以下手动过程
2.1 节点基本结构
AXI UART Lite节点通常包含以下关键属性:
compatible: 用于匹配驱动程序的兼容性字符串reg: 寄存器地址和大小interrupts: 中断号配置current-speed: 默认波特率设置
2.2 属性详解
-
compatible属性:
- 必须设置为"xlnx,xps-uartlite-1.00.a"以匹配Xilinx提供的驱动程序
- 多个兼容字符串可以用逗号分隔,提供向后兼容
-
reg属性:
- 第一个值表示UART控制器的基地址(示例中为0x43c00000)
- 第二个值表示寄存器映射范围大小(示例中为4KB)
- 地址必须与硬件设计中的AXI地址映射一致
-
interrupts属性:
- 三个值分别表示:
- 中断类型(0表示SPI中断)
- 中断号(示例中为29)
- 中断触发类型(1表示高电平触发)
- 三个值分别表示:
-
current-speed属性:
- 设置默认通信波特率(示例中为115200)
- 支持的标准波特率包括:9600、19200、38400、57600、115200等
2.3 完整配置示例
axi_uartlite_0: serial@43c00000 {
compatible = "xlnx,xps-uartlite-1.00.a";
reg = <0x43c00000 0x1000>;
interrupts = <0 29 1>;
current-speed = <115200>;
device_type = "serial";
clock-frequency = <100000000>;
};
三、Linux 驱动加载与验证
3.1 设备树编译与更新
在加载AXI-Uartlite驱动前,需要确保设备树(Device Tree)包含正确的uart节点信息。典型步骤如下:
-
编辑设备树源文件:
axi_uartlite_0: serial@42C00000 { compatible = "xlnx,xps-uartlite-1.00.a"; reg = <0x42C00000 0x1000>; interrupt-parent = <&intc>; interrupts = <0 29 4>; current-speed = <115200>; clock-frequency = <100000000>; };reg属性需与硬件地址一致current-speed设置默认波特率
-
编译设备树:
dtc -I dts -O dtb -o system.dtb system.dts -
更新设备树:
- 将生成的
system.dtb复制到目标板的/boot目录 - 重启系统生效
- 将生成的
3.2 驱动加载验证
因为串口驱动linux内核自带,所以不需要再继续编写驱动。
驱动加载成功后,系统会自动注册tty设备

最低0.47元/天 解锁文章
2477






