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

2024-01-05 02:12

本文主要是介绍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。
在这里插入图片描述

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中。

这篇关于FMQL BOOT.bin固化文件生成及固化流程记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/571322

相关文章

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

Spring Boot 集成 mybatis核心机制

《SpringBoot集成mybatis核心机制》这篇文章给大家介绍SpringBoot集成mybatis核心机制,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值... 目录Spring Boot浅析1.依赖管理(Starter POMs)2.自动配置(AutoConfigu

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL