问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 111 人浏览分享

开启左侧

03 Microblaze 程序的固化方法

[复制链接]
111 0
AMD-FPGA课程
AMD课程: 05-典型入门实验 » 第一个MB软核实验
1 概述
本实验完成 SDK 程序固化到 FLASH,并且从 FLASH 启动


2 系统框图
image.jpg

3 基于图形化设计 SOC 系统

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

image.jpg
展开层次化后如下:

image.jpg

4 搭建 Vitis-sdk 工程
创建 soc_base sdk platform 和 APP 工程。
4.1 创建 SDK Platform 工程
image.jpg
过程不再重复,如果不清楚的请看第一个 demo


4.2 创建 helloworld APP 工程
过程不再重复,如果不清楚的请看第一个 demo。
如下图右击 helloworld 工程,选择 Generate Linker Script
image.jpg
如下图设置,程序、数据、堆在的运行地址空间为 DDR 内存空间,设置在 DDR 中代码执行效率会降低,根据实际
情况可以把堆栈设置大一些,也可以在 Microblaze IP 核中,配置更大的 cache 和对性能就行优化
image.jpg
之后重新编译下
image.jpg

4.3 创建 bootloader 引导程序
创建 APP 过程不再重复,到最后一页,选择 SREC SPI Bootloader
image.jpg
创建完成后
image.jpg
右击工程选择 Generate Linker Script
image.jpg
设置程序、数据、堆栈全部运行于 BRAM,所以 BRAM 就不能太小,Bootloader 也不能太大,bootloader 启动把应用程序复制到 DDR 中运行
image.jpg
修改 blconfig.h 中的文件,FLASH_IMAGE_BASEADDR 0x00500000,这个是 FLASH 的地址,也就是 bootloader 程序从这个地址加载进来,后面我们会涉及如何下载程序到 FLASH
image.jpg
修改后保存,右击编译工程
image.jpg
编译完成后产生 bootloader.elf
image.jpg

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
image.jpg
image.jpg
image.jpg
image.jpg
单击 Program
image.jpg
开发板可以不通电,因为我们主要为了产生 download.bit,JTAG 不接通开发板会报一个错误,可以不管,单击 OK
image.jpg
控制台已经产生了 download.bit 文件
image.jpg

5.2 固化 download.bit 文件
连接好 JTAG,并且给开发板通电,右击选择 Program Flash
image.jpg
Download.bit 的加载地址从 0x00 开始
image.jpg
image.jpg
下载结束
image.jpg

5.3 固化 helloworld.elf 文件
选择 helloworld 工程,右击选择 Program Flash
image.jpg
以下 offset 的地址是 FLASH 中 hellowrold.elf 程序的起始地址,和 bootloader 程序中的 FLASH_IMAGE_BASEADDR 0x00500000 保持一致。设置好后,单击 Program
image.jpg
提示下载成功
image.jpg

5.4 断电重启开发板
首先打开串口
image.jpg
给开发板断电后通电
可以看到串口输出了启动打印过程,最后输出了“Hello World”
image.jpg

5.5 优化 bootloader 程序

在 bootloader.c 中,注释掉#define VERBOSE,之后重新编译
image.jpg
重新制作 download.bit,然后下载 downlaod.bit 方法和前面一样
固化完成后,重新上电串口打印输出如下
image.jpg


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

10

粉丝

87

主题
精彩推荐
热门资讯
    网友晒图
      图文推荐
        
        • 微信公众平台

        • 扫描访问手机版