FMQL BOOT.bin固化文件生成及固化流程记录

发布时间:2024年01月04日

FMQL BOOT.bin固化文件生成及固化流程记录

一、概述

此篇记录上海复旦微JFMQL15T开发板 烧录固化文件BOOT.bin生成及固化操作流程。
以上一篇文章FQML_AXI_GPIO工程构建调试记录 中的工程为基础,做更改。

二、vivado工程配置

2.1新建工程

打开FQML_AXI_GPIO工程构建调试记录的vivado工程依次点击File–>Project—>Save As…新建工程qspi_program。
在这里插入图片描述

2.2 vivado处理器外设配置

使能DDR,型号选择MT41J256M16 RE-125
在这里插入图片描述
使能PS_UART
在这里插入图片描述
使能QSPI 接口
在这里插入图片描述
配置QSPI 时钟源频率为120MHz
在这里插入图片描述

2.3 新建SDK工程(bsp备用)

导出HDL,生成bitstream文件,(详细步骤可参考FQML_AXI_GPIO工程构建调试记录中相关章节)launch SDK新建应用工程,如下图所示
在这里插入图片描述

三、procise工程配置

3.1 新建procise工程

3.1.1新建空白工程

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

3.1.2从vivado 导入

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

3.1.3 生成IAR工程

导出模板
在这里插入图片描述

3.2 完善IAR工程

在这里插入图片描述
添加头文件
在这里插入图片描述
在这里插入图片描述
standalone_v6_8/src下添加源文件
在这里插入图片描述
在这里插入图片描述
gpio驱动部分添加源文件和头文件
在这里插入图片描述
在这里插入图片描述
xparameters.h文件中注释掉#include “xparameters_ps.h”
在这里插入图片描述
xgpio_l.h中注释掉#include “xil_io.h”,添加#include “fmsh_common.h”
在这里插入图片描述
更改读写接口宏定义
#define XGpio_In32(addr) FMSH_ReadReg(addr,0x0)
#define XGpio_Out32(addr,data) FMSH_WriteReg(addr,0x0,data)

在这里插入图片描述

四、IAR工程编译生成.out文件

4.1 更改工程编译生成fsbl.out

在这里插入图片描述

4.2 更改工程编译生成Helloworld.out

4.2.1 编辑主程序

编辑主程序
#include <stdio.h>
#include “platform.h”
#include “fmsh_common.h”
#include “xgpio.h”
#include “fmsh_ps_parameters.h”

int FGpioOutputExample(void);

int main()
{
//init_platform();
FMSH_WriteReg(FPS_SLCR_BASEADDR, 0x008, 0xDF0D767BU);
FMSH_WriteReg(FPS_SLCR_BASEADDR, 0x838, 0xf);
FMSH_WriteReg(FPS_SLCR_BASEADDR, 0x004, 0xDF0D767BU);
//printf(“1\r\n”);
while (1)
{
FGpioOutputExample();
}
//cleanup_platform();
return 0;
}

int FGpioOutputExample(void)
{
XGpio led_out;
u32 led_channel = 1;
int status;
u32 maxloop = 3;
u32 led_bit;
u32 led_width = 4;
u32 i;
status = XGpio_Initialize(&led_out, 0);
if(status != XST_SUCCESS)
{
return XST_FAILURE;
}
//set all output
XGpio_SetDataDirection(&led_out, led_channel, 0x0);
//set GPIO outputs to high
XGpio_DiscreteWrite(&led_out, led_channel, 0x0F);
for(i = 0; i < maxloop; i++)
{
for(led_bit = 0; led_bit < led_width; led_bit++)
{
XGpio_DiscreteWrite(&led_out, led_channel, ~(1<<led_bit));
delay_ms(200);
}
}
return 0;
}

4.2.2 更改ps初始化配置

更改Hello world工程下的FM_QL_bsp–>ps_a7–>bootloader下的bspconfig.h文件
在这里插入图片描述
在这里插入图片描述

4.2.3 编译生成HelloWorld.out

在这里插入图片描述

五、制作BOOT.bin文件

5.1 启动procise 中BOOT.bin制作应用接口

在这里插入图片描述

5.2 生成.bif文件后续直接导入BOOT.bin生成配置

在这里插入图片描述

5.3 添加FSBL.out文件

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

5.4 添加vivado中的bit文件

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

5.5 添加应用程序HelloWorld.out文件

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

5.6 生成BOOT.bin文件

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

六、烧录

6.1 启动Program Flash

烧录到QSPI_Flash中,在procise 中依次点击PSOC—>Program Flash,然后添加BOOT.bin文件
在这里插入图片描述

6.2 配置烧录偏移量,点击program

在这里插入图片描述

6.3 等待烧录

在这里插入图片描述

6.4烧录完成提示

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

七、IAR在线调试

进入调试模式
在这里插入图片描述
选择JTAG目标设备选择Cortex-A7
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、总结

按照此篇的操作步骤可完整实现上FMQL的 BOOT.bin文件生成烧录以及IAR工程在线调试,包含fsbl工程及编译配置,应用程序配置,BOOT.bin生成所需的文件添加顺序等,最终烧录到QSPI Flash中。

文章来源:https://blog.csdn.net/qq_42315062/article/details/135394891
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。