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

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

一、概述

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

二、vivado工程配置

2.1新建工程

打开FQML_AXI_GPIO工程构建调试记录的vivado工程依次点击File–>Project—>Save As…新建工程qspi_program。
FMQL BOOT.bin固化文件生成及固化流程记录_第1张图片

2.2 vivado处理器外设配置

使能DDR,型号选择MT41J256M16 RE-125
FMQL BOOT.bin固化文件生成及固化流程记录_第2张图片
使能PS_UART
FMQL BOOT.bin固化文件生成及固化流程记录_第3张图片
使能QSPI 接口
FMQL BOOT.bin固化文件生成及固化流程记录_第4张图片
配置QSPI 时钟源频率为120MHz
FMQL BOOT.bin固化文件生成及固化流程记录_第5张图片

2.3 新建SDK工程(bsp备用)

导出HDL,生成bitstream文件,(详细步骤可参考FQML_AXI_GPIO工程构建调试记录中相关章节)launch SDK新建应用工程,如下图所示
FMQL BOOT.bin固化文件生成及固化流程记录_第6张图片

三、procise工程配置

3.1 新建procise工程

3.1.1新建空白工程

FMQL BOOT.bin固化文件生成及固化流程记录_第7张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第8张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第9张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第10张图片

3.1.2从vivado 导入

FMQL BOOT.bin固化文件生成及固化流程记录_第11张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第12张图片

3.1.3 生成IAR工程

导出模板
FMQL BOOT.bin固化文件生成及固化流程记录_第13张图片

3.2 完善IAR工程

FMQL BOOT.bin固化文件生成及固化流程记录_第14张图片
添加头文件
FMQL BOOT.bin固化文件生成及固化流程记录_第15张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第16张图片
standalone_v6_8/src下添加源文件
FMQL BOOT.bin固化文件生成及固化流程记录_第17张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第18张图片
gpio驱动部分添加源文件和头文件
FMQL BOOT.bin固化文件生成及固化流程记录_第19张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第20张图片
xparameters.h文件中注释掉#include “xparameters_ps.h”
FMQL BOOT.bin固化文件生成及固化流程记录_第21张图片
xgpio_l.h中注释掉#include “xil_io.h”,添加#include “fmsh_common.h”
FMQL BOOT.bin固化文件生成及固化流程记录_第22张图片
更改读写接口宏定义
#define XGpio_In32(addr) FMSH_ReadReg(addr,0x0)
#define XGpio_Out32(addr,data) FMSH_WriteReg(addr,0x0,data)

FMQL BOOT.bin固化文件生成及固化流程记录_第23张图片

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

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

FMQL BOOT.bin固化文件生成及固化流程记录_第24张图片

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

4.2.1 编辑主程序

编辑主程序
#include
#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< delay_ms(200);
}
}
return 0;
}

4.2.2 更改ps初始化配置

更改Hello world工程下的FM_QL_bsp–>ps_a7–>bootloader下的bspconfig.h文件
FMQL BOOT.bin固化文件生成及固化流程记录_第25张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第26张图片

4.2.3 编译生成HelloWorld.out

FMQL BOOT.bin固化文件生成及固化流程记录_第27张图片

五、制作BOOT.bin文件

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

FMQL BOOT.bin固化文件生成及固化流程记录_第28张图片

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

FMQL BOOT.bin固化文件生成及固化流程记录_第29张图片

5.3 添加FSBL.out文件

FMQL BOOT.bin固化文件生成及固化流程记录_第30张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第31张图片

5.4 添加vivado中的bit文件

FMQL BOOT.bin固化文件生成及固化流程记录_第32张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第33张图片

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

FMQL BOOT.bin固化文件生成及固化流程记录_第34张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第35张图片

5.6 生成BOOT.bin文件

FMQL BOOT.bin固化文件生成及固化流程记录_第36张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第37张图片

六、烧录

6.1 启动Program Flash

烧录到QSPI_Flash中,在procise 中依次点击PSOC—>Program Flash,然后添加BOOT.bin文件
FMQL BOOT.bin固化文件生成及固化流程记录_第38张图片

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

FMQL BOOT.bin固化文件生成及固化流程记录_第39张图片

6.3 等待烧录

FMQL BOOT.bin固化文件生成及固化流程记录_第40张图片

6.4烧录完成提示

FMQL BOOT.bin固化文件生成及固化流程记录_第41张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第42张图片

七、IAR在线调试

进入调试模式
FMQL BOOT.bin固化文件生成及固化流程记录_第43张图片
选择JTAG目标设备选择Cortex-A7
FMQL BOOT.bin固化文件生成及固化流程记录_第44张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第45张图片
FMQL BOOT.bin固化文件生成及固化流程记录_第46张图片

八、总结

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

你可能感兴趣的:(ZYNQ,linux,fpga开发,arm开发,zynq,vivado,FMQL,BOOT.bin固化)