关闭
关闭
首页 > 嵌入式硬件 > 存储技术

如何从Flash启动嵌入式系统

本文引用地址: http://embed.21ic.com/hardware/storage/201712/49920.html

以Arty A7开发板为例手把手教你实现

在诸多关于MicroBlaze软核处理器的例程中,往往都是使用JTAG下载然后借助SDK执行程序代码。然而无论是在项目展示还是实际应用中,我们都希望我们的设计可以即插即用,免去重复烧写的麻烦和必须使用SDK运行程序的限制。

事实上,为了部署一个真实的系统,需要在没有任何人为操作的情况下从非易失性存储器中启动MicroBlaze处理器并加载程序代码。

本篇文章,我们就围绕这个话题,以Digilent Arty Artix-7开发板为例,教你如何在板载的QSPI Flash中存储比特流配置文件和应用程序。

QSPI有两个主要作用:

配置Artix FPGA

存储应用软件

对于第一个功能,我们在Vivado设计中不需要包含QSPI接口。我们只需要在Vivado配置中更新对QSPI的设置,提供QSPI Flash存储器与FPGA配置管脚的连接。然而,一旦FPGA配置完成并调用MicroBlaze软核处理器,我们则需要在设计中引入与QSPI Flash通信的接口。这个新添加的接口允许引导程序(bootloader)从QSPI Flash存储器中复制应用程序到Arty实际执行的DDR SDRAM存储介质中。

当然,这会引起一个问题,即MicroBlaze bootloader(引导程序)从何而来?

开发bootloader(引导程序)的流程图如下所示:

 

1.jpg

我们的目标是创建一个MCS镜像,它包含了FPGA比特流和应用软件文件,我们要将它烧写到QSPI Flash中。为了实现这个方案我们需要在Vivado和SDK中执行以下步骤:

在已经存在的Vivado MicroBlaze设计中引入(添加)一个QSPI接口。

在Vivado中编辑器件设置,使用Master SPI_4来配置器件,并且将bit文件压缩,构建完成后将应用导出到SDK。

 

2.jpg

在SDK中,基于导出的硬件设计创建一个新的应用工程。在工程创建对话框,选择SREC SPI Bootloader模板。这个选择会创建一个SREC bootloader应用,它会从QSPI Flash中加载主应用程序代码。在构建bootloader ELF之前,我们首先要为应用软件定义对于QSPI基址的地址偏移,在这个示例中为0x600000。我们在blconfig.h中定义这个偏移量。我们还需要更新SREC Bootloader BSP来鉴别正确的串口Flash存储器件。因此重新配置BSP。使用的系列标识号在BSP libsrc目录下的xilisf.h中定义。对于这个应用我们选择类型5,因为Arty板卡使用Micron QSPI器件,它的标识号即为类型5。

 

3.jpg

现在我们在SDK中创建第二个应用工程。这也是我们将使用bootloader加载的应用程序。在这个应用中我们创建了一个简单的“hello world”工程,确保在linker文件中这个程序从DDR SDRAM开始运行。为了创建MCS文件,我们需要应用程序为S-record格式。这个格式以ASCII格式存储二进制信息。(这个格式已经有40年的历史,最初是为8位Motorola 6800微处理器而开发的。)我们可以使用SDK将生成的ELF转换为S-record格式。为了在SDK中生成S-record文件,我们打开bash shell窗口,切换到ELF所在的目录然后输入如下命令:

cmd /c mb-objcopy -O srec .elf .srec

创建好bootloader ELF文件后,现在我们要在Vivado内将比特流(bitstream)文件与bootloader ELF文件合并。这个步骤允许bootloader被加载到MicroBlaze处理器的本地存储空间,并且按照配置运行。因为这个存储空间很小,所以bootloader应用也需要很小才可以。如果你正遇到减小软件应用大小的问题,不妨在增加本地存储内存之前考虑使用编译器优化。

 

4.jpg

创建好bit文件和S-record文件后,我们使用Vivado硬件管理器来增加配置存储器。

 

5.jpg

最后一步是生成统一的MCS文件,包含合并的bitstream(比特流)文件和应用软件。当生成这个文件时,我们需要记住加载应用程序时使用与SREC bootloader相同的偏移量。

 

6.jpg

一旦这个文件构建完成并烧写到QSPI存储中,我们就可以进行测试查看MCS文件的工作情况。将Arty板卡与PC终端建立连接然后按下板卡上的复位(reset)按钮。几秒钟后你就会看到Arty板卡上的“done”LED灯亮起,然后在终端窗口中看到SREC bootloader的执行结果。报告应该显示S-record文件在程序执行前已经从QSPI加载到DDR SDRAM中了。

到这里,我们就有了一个可以部署到我们设计中的MicroBlaze工作系统了。

换一批

延伸阅读

[行业资讯] 三星SK中国半导体工厂“无异常” 免遭中美贸易战打击

三星SK中国半导体工厂“无异常” 免遭中美贸易战打击

三星电子与SK海力士在中国生产的半导体免受中美两国贸易战打击。据半导体业界最新消息,特朗普政府日前宣布计划对1333种中国商品征收25%关税,但其中不包括闪存与DRAM存储器。 ......

关键字:半导体 三星 存储器

[行业资讯] 外媒:中国已成为全球最大半导体后道工序市场,增长23.4%

外媒:中国已成为全球最大半导体后道工序市场,增长23.4%

SEMI近日宣布,中国半导体后道工序使用的封装设备和材料的市场规模2017年同比增长23.4%,达到290亿美元。由于政府投入巨资,培育半导体产业,中国目前已成为全球半导体最大后道工序市场。 ......

关键字:半导体 存储器 芯片

[行业资讯] 韩国央行表示半导体需求依旧热络,厂商应重非存储器市场

韩国央行表示半导体需求依旧热络,厂商应重非存储器市场

有史以来维持最大成长周期的半导体产业,未来会再继续成长吗?这答案恐怕是肯定的。因为,近日韩国央行在 8 日所发出的报告指称,全球半导体产业的强劲需求趋势仍会持续一年,并且呼吁韩国本土的半导体制造商仍应当重点关注非存储器产品的生产,以为未来的......

关键字:半导体 存储器 DRAM

[行业资讯] 东芝重建成败在中国?半导体存储器业务是关键

东芝重建成败在中国?半导体存储器业务是关键

《日本经济新闻》4月9日报道称,在仍面临半导体存储器业务出售的相关风险下,东芝的新经营体制扬帆起航。出售半导体存储器业务作为经营重建的前提,未能在原定的3月底之前完成,截至4月3日仍没有眉目。这是因为未能通过中国政府的反垄断审查。如果售价达......

关键字:半导体 存储 东芝

[行业资讯] 兆易创新NOR Flash获Galaxy S9采用

兆易创新NOR Flash获Galaxy S9采用

中国半导体最近几年的快速发展使许多国外企业都开始布局中国市场,在今年的SEMICON China上表现的尤其明显。不管是半导体制造设备提供商,还是材料供应商都对中国半导体市场未来的发展充满信心,也都纷纷布局中国市场。致力于开发和制造创新材料......

关键字:NOR Flash 存储 三星
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14