procise纯PL流程点灯记录

本文详细介绍了如何使用Procise工具创建一个JFMQL15T纯PL工程,涉及添加sourceVerilog文件、配置时钟和LED管脚、编写约束文件以及生成并下载bitstream进行LED闪烁的调试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

procise纯PL流程点灯记录

一、概述

此篇记录使用procise工具构造JFMQL15T 纯PL工程,显示PL_LED闪烁;
硬件说明如下:
时钟引脚 Pl_CLK: U2 ,IO_L14P_T2_SRCC_34
PL_LED1 : E2, IO_L17P_T2_AD5P_35 PL_LED2: D6, IO_L2N_T0_AD8N_35
PL_LED3 : F5, IO_L5P_T0_AD9P_35 PL_LED4: E3, IO_L21N_T3_DQS_AD14N_35
在这里插入图片描述

二、新建procise工程

在这里插入图片描述
在这里插入图片描述

三、选择对应的Device

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、添加source Verilog文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
`timescale 1ns / 1ps

module pl_leda(
input sys_clk,
output reg [3:0] led
);
reg[31:0] timer_cnt;
always@(posedge sys_clk)
begin
if(timer_cnt >= 32’d49_999_999)
begin
led <= ~led;
timer_cnt <= 32’d0;
end
else
begin
led <= led;
timer_cnt <= timer_cnt + 32’d1;
end
end
endmodule

五、添加约束文件

在这里插入图片描述
在这里插入图片描述
编辑约束文件,添加管脚约束和时钟约束
在这里插入图片描述
NET “led[0]” IOSTANDARD = LVCMOS25;
NET “led[1]” IOSTANDARD = LVCMOS25;
NET “led[2]” IOSTANDARD = LVCMOS25;
NET “led[3]” IOSTANDARD = LVCMOS25;
NET “led[0]” LOC = E2;
NET “led[1]” LOC = D6;
NET “led[2]” LOC = F5;
NET “led[3]” LOC = E3;

NET “sys_clk” LOC = U2;
NET “Sys_clk” IOSTANDARD = LVCMOS18;
TIMESPEC TS_SYS_CLK = PERIOD “sys_clk” 50 MHz HIGH 50 %;

六、生成bitstream文件

在这里插入图片描述

七、下载调试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

<think>嗯,用户想了解如何使用Procise软件将FSBL程序、PL位流和裸机程序打包成一个BIN文件。首先,我需要确认Procise软件的具体功能和操作流程。可能用户是在开发基于Xilinx Zynq系列芯片的项目,因为FSBL和PL位流这些术语常见于Zynq平台。 首先,FSBL是First Stage Boot Loader,负责初始化硬件和加载后续程序。PL位流指的是FPGA部分的配置数据,裸机程序则是运行在ARM处理器上的应用程序。将它们打包成一个BIN文件可能方便系统启动时一次性加载所有必要组件。 接下来,我需要回忆Procise的使用步骤。可能需要先准备好各个组件:编译好的FSBL.elf文件,PL的.bit或.bin文件,以及裸机程序的.elf文件。然后,在Procise中创建新项目,选择正确的芯片型号和配置。添加这些文件到项目中,并设置启动顺序,确保FSBL先运行,然后加载PL位流,最后是应用程序。 需要注意的地方可能包括地址分配是否正确,每个部分的内存映射是否冲突。例如,FSBL通常从0x0地址开始,PL位流可能需要特定的加载地址,而应用程序可能有自己的运行地址。此外,生成BIN文件时的配置选项是否正确,比如是否启用了位流加载和应用程序的加载。 用户可能遇到的问题包括打包后的BIN文件无法启动,这时候需要检查各个组件的兼容性,地址设置是否正确,或者是否有遗漏的步骤,比如生成boot image时的选项是否正确。另外,可能还需要确认Procise版本是否支持所用的芯片型号和工具链版本。 总结来说,回答需要分步骤说明准备文件、配置Procise项目、设置启动顺序和地址、生成BIN文件,以及可能的注意事项和常见问题。确保用户能够按照步骤操作,并理解每个步骤的作用,避免常见错误。</think>使用 Xilinx Procise(现称为 Vivado 工具链中的 Bootgen 工具)将 FSBL 程序、PL 位流及裸机程序打包为单个 BIN 文件的主要步骤如下: **1. 准备必要文件** - **FSBL.elf**:通过 Vitis 生成的 First Stage Boot Loader 可执行文件 - **PL 位流文件**:通过 Vivado 生成的 `.bit` 或 `.bin` 格式 FPGA 配置数据 - **裸机程序.elf**:使用 Vitis 编译的应用程序可执行文件 - **BIF 文件**:引导镜像配置文件(例:`boot.bif`) **2. 创建 BIF 配置文件** ```bash // boot.bif 示例 the_ROM_image: { [bootloader] FSBL.elf PL_bitstream.bit [load=应用程序运行地址] app.elf } ``` **3. 通过 Bootgen 生成镜像** ```bash bootgen -image boot.bif -arch zynq -o BOOT.bin -w on ``` **关键参数说明** | 参数 | 说明 | |------------|-----------------------------| | `-image` | 指定输入的 BIF 配置文件 | | `-arch` | 指定芯片架构zynq/zynqmp) | | `-o` | 输出文件名 | | `-w` | 覆盖已存在文件 | **4. 启动顺序解析** 1. Zynq 芯片上电执行 ROM 代码 2. 加载 FSBL 完成: - DDR 控制器初始化 - PL 配置控制器使能 - 外设基本初始化 3. FSBL 自动加载 PL 位流文件 4. 跳转到应用程序入口地址执行 **5. 地址空间注意事项** - FSBL 默认加载地址:0x0 - PL 位流加载地址:建议通过 Vivado 的 `address` 属性指定 - 应用程序加载地址:应避开 FSBL 和 PL 配置区域 - 典型地址分配示例: ```text 0x00000000 - 0x0003FFFF : FSBL (256KB) 0x00100000 - 0x0012FFFF : PL Bitstream (192KB) 0x00200000 - 0x003FFFFF : Application (2MB) ``` **6. 验证方法** - 通过 SD 卡启动测试 - 使用 JTAG 调试器查看运行状态 - 通过 UART 输出调试信息 - 使用 Vitis 的 XSCT 工具进行内存校验 **常见问题处理** 1. **启动卡在 FSBL 阶段** - 检查 DDR 初始化代码 - 验证时钟配置是否正确 - 确认电源时序符合要求 2. **PL 配置失败** - 检查 `.bit` 文件是否包含头部信息 - 确认 PCAP 接口已正确使能 - 验证 PL 供电是否稳定 3. **应用程序无法跳转** - 检查链接脚本中的入口地址 - 确认向量表正确重定位 - 验证堆栈指针初始化 **扩展应用** - 支持多阶段引导(如加入 SSBL) - 实现安全启动(RSA 认证) - 生成 QSPI 可编程镜像 - 创建工厂/升级双镜像备份 建议通过 Vivado 2020.1 及以上版本配合 Vitis 工具链使用,可获得更完整的 Zynq UltraScale+ MPSoC 支持。实际开发时建议结合芯片手册中的 Boot and Configuration 章节进行寄存器级验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值