当前位置:首页>Linux>【黑金云课堂】FPGA技术教程Linux开发:设备树

【黑金云课堂】FPGA技术教程Linux开发:设备树

  • 2026-10-11 05:59:40
【黑金云课堂】FPGA技术教程Linux开发:设备树

Linux 开发第 37-38 节 系统进阶 · 设备树,选自ALINX 黑金云课堂 FPGA 免费直播课。该课程由 ALINX 资深工程师团队倾力打造,从 0 到 1 系统化教学,帮助每位工程师跨过 FPGA 开发门槛。

🔍 ALINX:关注 ALINX,进入视频号即可查看完整黑金云课堂 FPGA 视频教程。配合笔记学习效果更佳。

系统进阶 · 设备树

一、设备树

1. 设备树基础Device Tree 是描述硬件信息的数据结构,将硬件描述与内核代码分离。源文件 .dts 通过 dtc 编译器编译为二进制 .dtb,启动时由 U‑Boot 传递给内核。PetaLinux 用户自定义设备树在 system-user.dtsi 中。

2. 语法要点基本结构为 /dts-v1/; 和根节点 /{}。关键属性包括:

• compatible —— 驱动匹配

• reg —— 设备地址和大小

• status —— okay / disabled通过 & 引用可覆盖已有节点配置。

3. 应用举例

• 启用外设:在对应节点设置 status = "okay";

• 添加 I2C 设备:在 I2C 节点内添加子节点,指定 compatible 和 reg(设备地址)

• GPIO LED:使用 gpio-leds 节点配合 gpios 属性

4. 驱动调用驱动通过 of_device_id 匹配表与设备树 compatible 属性匹配,触发 probe() 函数。常用 API:

• of_property_read_u32() 读取整数

• of_address_to_resource() 获取寄存器地址

• devm_gpiod_get() 获取 GPIO 描述符


二、配置本地 U-Boot 和内核

1. U-Boot 使用本地源码PetaLinux 通过 petalinux-config 选择 ext-local-src 指定本地 U‑Boot 源码。也可直接克隆 u-boot-xlnx,使用 aarch64-linux-gnu- 交叉编译器编译:

make xilinx_zynqmp_virt_defconfig && make

2. Linux 内核使用本地源码

本地编译:PetaLinux 通过 ext-local-src 指定本地源码。

直接编译流程:克隆官方内核仓库后,执行以下步骤

git clone <内核仓库地址>make xilinx_zynqmp_defconfig      # 使用默认配置make menuconfig                   # 可选,定制内核功能make -j$(nproc)                  # 编译内核镜像

产出:Image(内核镜像)和 dtb(设备树)。

make modules编译模块,make dtbs编译设备树。

💡 完整视频讲解可前往 ALINX 视频号进行直播回看

更多细节欢迎关注我们黑金云课堂全年免费直播课,黑金云课堂七月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!

系列
内容定位
Verilog开发
硬件描述语言基础、逻辑设计、仿真调试
Vitis开发
Zynq软硬件协同、外设驱动、网络协议栈
Linux开发
嵌入式Linux系统移植、驱动编写、应用开发

最新文章

随机文章