• 正文
  • 相关推荐
申请入驻 产业图谱

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

1小时前
143
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、设备树

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 节点内添加子节点,指定 compatiblereg(设备地址)

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编译设备树。

image

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

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

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

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

芯驿电子自 2012 年成立以来,旗下 AUMO 与 ALINX 两大品牌,在智能车载与 FPGA 行业解决方案领域持续深耕。 ALINX 聚焦 FPGA 解决方案高端产品市场,并积极参与 FPGA 国产化应用发展。至今已推出 100 多款 FPGA SoM 模组和配套板卡,基本完成对 AMD FPGA 产品、紫光同创 FPGA 产品的全系列覆盖,产品远销海外 40 多个国家。 AUMO 专注智能车载,为自动驾驶技术开发破题。至今已推出车载仿真测试系统、视频数据采集、视频数据旁路采集分流、视频数据注入、车载摄像头、车载后视镜等产品线,满足车企和汽车产业链的车载产品开发需求。

微信公众号