首页 > 编程语言 >07 Microblaze程序的固化方法

07 Microblaze程序的固化方法

时间:2023-09-11 16:25:11浏览次数:29  
标签:07 FLASH 程序 Microblaze download 固化 bootloader bit

软件版本:vitis2021.1(vivado2021.1)

操作系统:WIN10 64bit

硬件平台:适用AMD-XILINX A7/K7/Z7/ZU/KU系列FPGA

登录"米联客"SOC|SOC社区-www.uisrc.com视频课程、答疑解惑!

1 概述

前面学习了很多Microblaze软核的实验,但是最终我们是要固化到开发板运行的才有实际的工程价值。本实验完成SDK程序固化到FLASH,并且从FLASH启动。

2 系统框图

3 基于图形化设计SOC系统

本实验通过前面的实验完成,所以不再重复BD 图像化编程的过程,最小系统的层次化设计如下:

展开层次化后如下:

4 搭建Vitis-sdk工程

创建soc_base sdk platform和APP工程。

4.1 创建SDK Platform工程

过程不再重复,如果不清楚的请看第一个demo

4.2 创建helloworld APP工程

过程不再重复,如果不清楚的请看第一个demo。

如下图右击helloworld工程,选择Generate Linker Script

如下图设置,程序、数据、堆在的运行地址空间为DDR内存空间,设置在DDR中代码执行效率会降低,根据实际情况可以把堆栈设置大一些,也可以在Microblaze IP核中,配置更大的cache和对性能就行优化

之后重新编译下

4.3 创建bootloader引导程序

创建APP过程不再重复,到最后一页,选择SREC SPI Bootloader

创建完成后

右击工程选择Generate Linker Script

设置程序、数据、堆栈全部运行于BRAM,所以BRAM就不能太小,Bootloader也不能太大,bootloader启动把应用程序复制到DDR中运行

修改blconfig.h中的文件,FLASH_IMAGE_BASEADDR 0x00500000,这个是FLASH的地址,也就是bootloader程序从这个地址加载进来,后面我们会涉及如何下载程序到FLASH

修改后保存,右击编译工程

编译完成后产生bootloader.elf

5 固化测试

5.1 产生download.bit

首先要通过下载bit产生download.bit , download.bit包含了fpga部分的bit文件已经刚才产生的bootloader.elf文件部分。原理是包含microbalze的download.bit加载完成后,在bram中运行bootloader.elf程序,bootloader.elf文件程序从FLASH_IMAGE_BASEADDR 0x00500000设置的地址加载用户的应用程序,这里把应用程序加载到DDR中。

右击选择Program Device

单击Program

开发板可以不通电,因为我们主要为了产生download.bit,JTAG不接通开发板会报一个错误,可以不管,单击OK

控制台已经产生了download.bit文件

 

5.3 固化helloworld.elf文件

选择helloworld工程,右击选择Program Flash

以下offset 的地址是FLASH中hellowrold.elf程序的起始地址,和bootloader程序中的FLASH_IMAGE_BASEADDR 0x00500000保持一致。设置好后,单击Program

提示下载成功

5.2 固化download.bit文件

连接好JTAG,并且给开发板通电,右击选择Program Flash

Download.bit的加载地址从0x00开始

下载结束

5.4 断电重启开发板

首先打开串口

给开发板断电后通电

可以看到串口输出了启动打印过程,最后输出了"Hello World"

5.5 优化bootloader程序

在bootloader.c中,注释掉#define VERBOSE,之后重新编译

重新制作download.bit,然后下载downlaod.bit方法和前面一样

固化完成后,重新上电串口打印输出如下

 

6本章小结

本章节系统的学习了Microblaze的固化方法,方法具有通用性,在其他的Microblaze demo中也可以通过一样的方法实现程序固化。

标签:07,FLASH,程序,Microblaze,download,固化,bootloader,bit
From: https://www.cnblogs.com/milianke/p/17693804.html

相关文章

  • 04程序的固化和下载
    03使用ILAIP、直接添加信号法和VIO进行调试软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用AMD-XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"SOC|SOC社区-www.uisrc.com视频课程、答疑解惑!1概述在开发工程中,我们需要对一些信号进行debug调试,如果对于CPU......
  • 07SQL注入:明明设置了强密码,为什么还会被别人登录?
    预声明的原理是将SQL查询语句和参数分离,通过绑定参数的方式确保参数的值不会被解释为SQL代码的一部分,从而有效地防止注入攻击。 ......
  • Codeforces Round 807 (Div. 2) B. Mark the Dust Sweeper
    需要打扫\(n\)个房间,第\(i\)个房间有\(a_i\)的积灰。只能使用如下魔法打扫:选择\(i,j,(1\leqi<j\leqn,\min_{k=i}^{j}a_i>0)\)。执行\(a_i=a_i-1,a_j=a_j+1\)。需要将\(1\simn-1\)号房间的积灰全部清空,最少使用多少次魔法。观察一:显......
  • 代码随想录算法训练营第四天| 24. 两两交换链表中的节点, 19.删除链表的倒数第N个结点
    24.两两交换链表中的节点mydemo(超时)/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNode(intx,Lis......
  • 【树套树,LCT,出栈序】P4027 [NOI2007] 货币兑换
    其实是我Li-Chao-Tree哒!!考虑转移\(f_x=\minf_{anc}+(d_{x}-d_{anc})p_x+q_x\)其中\(anc\)为\(x\)的祖先,然后满足\(d_{anc}\geqd_{x}-li_{x})\)。考虑如果用权值线段树+带撤销的李超树可以维护\(li_{x}\)可以维护\(li_{x}<0\)的情况。但是这个题......
  • LeetCode207——课程表
    你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses-1 。在选修某些课程之前需要一些先修课程。先修课程按数组 prerequisites 给出,其中 prerequisites[i]=[ai,bi] ,表示如果要学习课程 ai 则 必须 先学习课程  bi 。例如,先修课程对 [0,1] 表......
  • Python基础学习day07
    昨日内容回顾基本数据类型列表(list)1.能够存储多个数据,且可获取单个或整体数据2.中括号括起来[],里面可以存放多个且不同数据类型的数据(包括列表),各个数据用逗号隔开3.索引取值:#索引通常是从0开始L1=[11,12,13,[14,15,16],17]print(L1[3])#出来的结果是14,15,16字典(dict)1.能......
  • 代码随想录算法训练营第三天| 203.移除链表元素 707.设计链表 206.反转链表
    203.移除链表元素链表定义structListNode{intval;ListNode*next;ListNode():val(0),next(NULL){};ListNode(intx):val(x),next(NULL){};ListNode(intx,ListNode*next):val(x),next(next){};}1.在原链表上移除链表元素classSolut......
  • LeetCode -- 207. 课程表 (拓扑排序)
     经典拓扑排序的应用,用拓扑排序的算法看看原图中是否有一个合法的拓扑序。classSolution{public:conststaticintN=2010,M=5010;inth[N],e[M],ne[M],idx;intd[N],q[N];voidadd(inta,intb){e[idx]=b,ne[idx]=h[a],h[......
  • 样本分析 99eddc2794077f97a5cfe3098f431c4cfc4fd6353957ee715b2eccbff066ce1d 由于.
     https://s.threatbook.com/report/file/99eddc2794077f97a5cfe3098f431c4cfc4fd6353957ee715b2eccbff066ce1d09:30:16:088, 99eddc2794077f97a5cfe3098f431c4cfc4fd6353957ee715b2eccbff066ce1d.exe, 1908:0, 1908, EXEC_create, C:\Users\bonelee\Desktop\99eddc2794077......