[Zynq] Zynq Linux 环境下 AXI UART Lite 使用方法详解(代码示例)

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 属性详解
  1. compatible属性

    • 必须设置为"xlnx,xps-uartlite-1.00.a"以匹配Xilinx提供的驱动程序
    • 多个兼容字符串可以用逗号分隔,提供向后兼容
  2. reg属性

    • 第一个值表示UART控制器的基地址(示例中为0x43c00000)
    • 第二个值表示寄存器映射范围大小(示例中为4KB)
    • 地址必须与硬件设计中的AXI地址映射一致
  3. interrupts属性

    • 三个值分别表示:
      • 中断类型(0表示SPI中断)
      • 中断号(示例中为29)
      • 中断触发类型(1表示高电平触发)
  4. 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节点信息。典型步骤如下:

  1. 编辑设备树源文件

    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设置默认波特率
  2. 编译设备树

    dtc -I dts -O dtb -o system.dtb system.dts
    
  3. 更新设备树

    • 将生成的system.dtb复制到目标板的/boot目录
    • 重启系统生效
3.2 驱动加载验证

因为串口驱动linux内核自带,所以不需要再继续编写驱动。
驱动加载成功后,系统会自动注册tty设备

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客不孤独

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值