复旦微实现串口在线升级BOOT.BIN

本文介绍了如何使用复旦微的器件实现串口在线升级BOOT.BIN,创建包含fsbl和app的golden image,并在qspi flash中进行烧录。升级流程包括软复位、CRC校验以及多业务APP切换。文中还提供了工程配置和波特率修改的细节。

将该 demo 生成的 app(升级用)和 fsbl、最简化 bit 文件(可选)打包成 BOOT.BIN,作为 golden image 烧写在 qspi flash 偏移 0 地址开始的位置,其中最简化 bit 文件为在线升级功能提供必要的物理通道(如果不需要,可以不打包该文件),golden image 一旦发布基本不需要进行升级,由该 golden image 负责和上位机进行通信交互,完成业务 app、业务 bit 文件、uboot 以及操作系统 image 等文件在线升级,在 qspi flash 容量足够的情况下,还可以进一步实现多个业务镜像、bit文件并存,通过在线切换不同的bit文件和业务镜像实现不同的功能,业务 bit 文件由业务 APP 负责加载到 PL 中。这个例子是裸机程序下的使用串口实现在线升级功能,对于操作系统下的升级和多业务镜像不在本文中进行讨论,操作系统下在线升级和多业务镜像相对更容易实现;用户可以在该 demo 的基础上,在升级过程中增加所有业务 app 和 bit 文件的 CRC 校验,并把 CRC 校验值保存在 flash 中(在 qspi flash 预留从 16M-64KB 开始的 64KB 保留升级相关的信息),启动加载业务app 和bit 文件时,如果某个文件CRC错误,则加载其他备份文件,实现PSOC multiboot的效果。

一,在线升级工作原理和程序流程

软复位重启系统流程不是必须的,可根据需要修改成右边的“加载业务app并启动”的流程。

 

<think>好的,我需要回答用户关于复旦微FPGA使用SD卡固化程序时,只更改PL端bit文件是否需要重新生成FSBL和BIF的问题。首先,我得回顾一下FPGA启动流程和相关文件的作用。 用户提到生成BOOT.BIN,通常这涉及到FSBL(First Stage Boot Loader)、PL端比特流和可能的其他组件。在Xilinx的流程中,BOOT.BIN通常包括FSBL、比特流和应用程序。但复旦微的流程可能类似,但可能有差异。 首先,FSBL的作用是初始化硬件,加载PL配置和启动软件。如果PL的bit文件有变化,是否需要新的FSBL?一般来说,FSBL主要处理初始化和加载,如果PL的结构(如时钟、外设)有变化,可能需要调整FSBL。但如果只是PL逻辑的修改,不涉及硬件配置的变化,可能不需要重新生成FSBL。 然后是BIF文件,它是生成BOOT.BIN的配置文件,指定各个组件的顺序和路径。如果只是替换bit文件,而其他组件不变,BIF文件可能需要更新bit文件的路径或名称,但不需要重新生成,只需修改指向新的bit文件即可。但若BIF文件中的路径或参数没有变化,可能直接替换bit文件后重新生成BOOT.BIN即可。 需要验证的是,复旦微的工具链是否在生成BOOT.BIN时严格依赖所有组件的版本。如果FSBL不依赖于PL的bit内容,可能不需要重新编译FSBL。但如果有依赖关系,比如FSBL需要知道PL的某些配置,可能需要重新生成。 另外,检查文档是否有说明:当PL bit更新时是否需要重新编译FSBL。例如,如果PL的时钟或复位配置改变,可能影响FSBL的执行,这时候可能需要更新FSBL。反之,如果只是PL内部逻辑修改,不影响初始化流程,可能不需要。 总结可能的步骤:用户只需替换BIF中的bit文件路径,运行生成工具生成新的BOOT.BIN,无需重新编译FSBL,除非有硬件配置变更。但需要确认复旦微的具体流程是否有特殊要求。</think>在复旦微FPGA使用SD卡固化程序的流程中,若**仅修改PL端比特文件(.bit)且不涉及硬件配置变更**,可遵循以下规则: --- ### 1. **是否需要重新生成FSBL?** - **不需要**,若以下条件均满足: 1. PL端修改**不涉及时钟、复位、外设接口**等硬件配置的改动 2. FSBL**未依赖PL端特定初始化逻辑**(例如未通过PS-PL交互代码触发特定硬件行为) - **需要**,若出现以下情况: - PL端改动影响了PS端初始化依赖的硬件资源(如DDR控制器配置、时钟树调整等) --- ### 2. **是否需要修改BIF文件?** - **需要**,但仅需在BIF文件中**更新PL比特文件的路径或名称**,例如: ```plaintext // 原BIF内容 { [bootloader] fsbl.elf pl_bitstream.bit app.elf } ``` 修改为: ```plaintext { [bootloader] fsbl.elf new_pl_bitstream.bit // 仅替换比特文件路径 app.elf } ``` --- ### 3. **操作步骤** 1. 替换原有PL比特文件(确保新文件与旧文件命名/路径一致,或同步更新BIF) 2. **无需重新编译FSBL**(前提:满足上述"不需要"条件) 3. 使用更新后的BIF文件重新生成`BOOT.BIN`: ```bash # 示例命令(工具名称以复旦微文档为准) pgl_gen -bif updated_config.bif -o BOOT.BIN ``` --- ### 4. **验证建议** - **关键检查点**: - 上电后FSBL能否正常加载PL比特流 - PS与PL的交互逻辑是否因PL改动受影响 - **风险场景**: - 若PL改动导致启动时序变化(例如延迟增大),需确认FSBL的超时配置是否兼容 --- ### 总结 | 修改类型 | 重新生成FSBL? | 更新BIF? | 重新生成BOOT.BIN? | |------------------------|---------------|----------------|-------------------| | PL比特流(无硬件配置变更) | 否 | 是(路径/名称) | 是 | | PL比特流(含硬件配置变更) | 是 | 是 | 是 | 建议参考复旦微官方文档《JFM7K系列FPGA启动配置指南》确认工具链细节。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寒听雪落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值