国产之路:复旦微调试笔记3:环境配置

本文详细介绍了Xilinx和复旦微电子在嵌入式开发中的烧写步骤,包括Vivado、PetaLinux、SDK和IAR软件的使用。针对JTAG和QSPI模式,以及级联和独立模式进行了说明,并阐述了开发环境的变化。在调试串口方面,FSBL、u-boot和kernel阶段的配置和调试方法也有详细描述,确保在不同阶段能正确输出打印信息。

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

烧写步骤:

  Xilinx:基本流程为逻辑在vivado中配置开发生成hdf,不带操作操作系统时直接用sdk在线或者参考之前固化篇,带操作系统时用petalinux配制,生成BOOT.bin(含fsbl,自己生成的bit文件和uboot)和image.ub(默认文件系统,kernel和设备树的打包)(如果用jffs2文件系统需要设置将文件系统单独出来,再生成一个rootfs.jffs2)
  复旦微:基本流程为procise下生成hdf或者导入vivado的.bd和.xci文件,裸机正常用IAR软件,linux的话需要导出FSBL和设备树文件。设备树文件放置在linux编译环境中,build all,生成uboot和image.ub,将之前导出的FSBL文件,逻辑的bit文件,和刚刚生成的uboot文件image.ub打包成一个BOOT.bin烧录

模式说明

Jtag模式&Qspi模式
  这两个模式通常共用一组拨码开关
  Jtag模式用于在线调试,烧写
  Qspi模式用于离线独立运行
级联模式&独立模式
  这两个模式通常共用一组拨码开关
  当PL侧代码不用修改时可以用级联模式,jtag烧写器直接插到开发板上。
  PS和PL都要接仿真器联调时用独立模式,PS的JTAG接到飞线处

开发环境

  和进口的芯片比,开发环境的变化
   需要用到三个软件,vivado ,procise,IAR 。

PL:

  (1)Procise:
   生成裸跑程序的bsp ,可以在export hardware 时选择多个裸跑模板,主要包括fsbl ,以及生成psoc 设备树的顶层,有基础的memory和lwip测试。
  (2)IAR :
   用来编译和调试裸跑应用程序的,因为 ps 是全新设计,外设地址和寄存器定义都 不同,ps 的裸跑bsp 完全重新设计的,所以完全不兼容xilinx的SDK。
   IAR+Procise的部分功能相当于xlinx的sdk
   (3)Vivado:
   主要和之前xilinx的一样,还是逻辑工程师配置pl侧的工具,可以生成bit,也可以用vivado 调试,但必须在独立模式下。
   from vivado 流程是为了方便移植现有的ps 工程,不用在procise 里重新配置

PS:

   Petalinux :主要用来生成pl.dtsi,利用vivado 里的hdf 生成pl.dtsi 文件。 会更新 device-tree/hwplatform/pl.dtsi 文件内容,它会根据 hdf 文件里的 PL 部分设计变化, 一般需要有寄存器访问的 IP 才需要生成 pl.dtsi,即需指定–hdf 参数。
  Petalinux 生成的文件系统可以在psoc 上使用,目前已经测试过2018.2 和2018.3 的
  文件系统可以在psoc 上运行。
   Linux 应用程序可以通过网口利用SDK 调试,这个调试也是兼容的

文档;

   DS101 和DS102 两个文档相当于xlinx的ug585。
   UG102 是差异文档。
   UG201 是硬件设计指导
   UG202 是软件设计指导开发文档,

内存大小

   Rootfs :buildroot 默认最小配置为9.8MB,如果要放到qspi flash 的话,可以jffs2 或者ubi 文件系统。
   Image.ub:4.9MB,包括zImage 和devicetree。
   Boot.bin:732KB,加环境变量空间大约1MB
   Bit: 不压缩的话大小13MB。
  总计大小:10MB+4.9MB+1MB+13MB=29MB,建议32MB

调试串口

  PS测共有两个调试串口,区别于xilinx的petalinux中简单直接的图形界面配置而言,FMQL更需要灵活去单独配置,一共有三个阶段的串口打印

Fsbl阶段:

  为了在 FSBL 中使用 UART1 来打印输出。
  第一步, 在 Procise 工程中勾选 UART1,使用的 MIO/EMIO 则根据电路板设计选择。
在这里插入图片描述

  第二步, 在demo导出样例中, 重新导出 FSBL 和 DeviceTree。
在这里插入图片描述
第三步, 打开 FSBL 的工程,在 fmsh_ps_parameters.h 中可以确认 FSBL 选择的打印串口为 UART1。

在这里插入图片描述

  注 1: UART0 的基地址为 0xE0004000, UART1 的基地址为 0xE0023000。
  注 2:如果 Procise 中同时勾选了 UART0 和 UART1, FSBL 默认的打印串口将是 0xE0004000。用户如果仍需使用 UART1 就要手动修改为 0xE0023000。
  确认无误后,编译 FSBL 得到 FSBL.out。

u-boot 阶段

  为了在 u-boot 中使用 UART1 来打印输出。
  第一步, 将 1.1 节导出的 DeviceTree 文件夹复制到 LinuxSDK 所在的 Linux 操作系统中。
  第二步, 如下图所示,修改” FMQL-Linux-SDK/device-tree/hw-platform/ fmsh-psoc.dtsi”文件。将其中的“stdout-path = “serial0:115200n8”;”改为“stdout-path = “serial1:115200n8”;”
在这里插入图片描述
  第三步, 重新编译 DTB(设备树)和 u-boot。 最后验证,如下图所示, u-boot 可以正常打印且显示其使用的串口为“0xE0023000”,即 UART1。
在这里插入图片描述

kernel 阶段

  为了在 kernel 中使用 UART1 来输出打印。
  第一步,先执行make fmsh_fmql_defconfig 修改 kernel 的配置, 参照下图,将“kernel hacking”中的 debug uart 更改为 UART1。
然后重新编译 kernel,打包进 image.ub 中。
在这里插入图片描述
  注:当选择 UART1 后,下面的物理和虚拟地址应分别更新为 0xe0023000 和 0xf1023000, 如果未自动更新,需要手动修改。 如有疑问,可以查看.config 文件确认此项修改是否生效,如下图所示。
在这里插入图片描述
  第二步, 启动开发板,进入 u-boot 后停下, 依次输入(实际上没配置也直接过了,如果没自动配置好的时候在手动配):


setenv bootargs console=ttyPS0,115200 noinitrd earlyprintk root=/dev/mmcblk0p2 rootwait9
rw
mmc rescan && fatload mmc 0:1 0x2000000 /image.ub
bootm 0x2000000

  之后就可以看到正常的启动打印了(uboot的调试串口会默认uart0为控制台串口,如果实际是则无需更改,若实际为uart1,但是只修改 kernel 中的配置使 debug uart 为 UART1, 未在 u-boot 的 bootargs 中配置“console=ttyPS1”,将导致启动的后半段 log 通过 ttyPS0(UART0) 打印出来,因为它被作为默认的控制台串口。 而如果 Procise 没有勾选 UART0,则启动流程将 pending)
starting kernel 后的 early printk 打印也会相应正常

### 复旦微 FMK50T4 Vivado 补丁 使用教程 #### 已知条件 为了支持复旦微电子的 JFMK50T4 Demo 板及其配套的 FM25W128 Flash,在使用 Vivado 2018.3 进行开发时,可能需要通过特定补丁工具 `vvdpatch.exe` 完成配置。以下是详细的说明和操作指南。 --- #### 补丁工具的作用与适用范围 `vvdpatch.exe` 是由 Xilinx 提供的一款用于修复或增强某些硬件兼容性的工具[^1]。它主要用于解决 Vivado 软件版本与目标器件之间的不匹配问题,尤其是在涉及第三方厂商(如复旦微电子)提供的 FPGA 或存储器设备时。 --- #### 应用补丁的具体流程 ##### 准备工作 确保以下前提条件满足: 1. **软件环境**:已安装 Vivado 2018.3 版本。 2. **硬件资源**:具备 JFMK50T4 Demo 板以及对应的 FM25W128 Flash 存储芯片。 3. **补丁文件**:确认下载并解压了适用于该平台的 `vvdpatch.exe` 文件。 ##### 步骤描述 1. 打开命令提示符窗口,并导航至 `vvdpatch.exe` 的存放目录。 ```bash cd C:\Path\To\vvdpatch ``` 2. 输入以下指令运行补丁程序: ```bash vvdpatch -i <path_to_vivado_installation> -p <target_patch_file> ``` 参数解释如下: - `-i`: 指定 Vivado 的安装路径。 - `-p`: 指向具体的补丁文件位置。 示例命令: ```bash vvdpatch -i "C:\Xilinx\Vivado\2018.3" -p "C:\Patches\FMK50T4.patch" ``` 3. 如果成功执行,则会显示一条类似于 “Patch applied successfully”的消息。 4. 接下来重新启动 Vivado IDE,以便使更改生效。 --- #### 配置流程中的注意事项 - 确认所使用的补丁版本与当前 Vivado 和硬件型号完全一致;否则可能导致不可预期的行为或者错误发生。 - 对于首次使用者来说,建议先备份原始项目数据以防万一出现问题可以迅速恢复初始状态。 - 若遇到任何异常情况,请查阅官方文档获取进一步指导。 --- ```python # Python脚本示例:自动化检测Vivado版本号 import subprocess def check_vivado_version(): try: result = subprocess.run([&#39;vivado&#39;, &#39;-version&#39;], capture_output=True, text=True) version_info = result.stdout.strip() print(f"Detected Vivado Version: {version_info}") except FileNotFoundError: print("Error: Vivado is not installed or PATH variable misconfigured.") check_vivado_version() ``` 上述代码可用于验证本地环境中是否存在有效版本的Vivado安装实例。 --- #### 总结 通过对 `vvdpatch.exe` 的合理运用能够显著提升基于复旦微 FMK50T4 平台项目的稳定性与可靠性。遵循以上介绍的方法即可顺利完成整个设置过程。 ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

快跑bug来啦

创作不易,来点动力

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

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

打赏作者

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

抵扣说明:

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

余额充值