0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何调试存储在Max 10开发套件片上闪存中的代码

电子工程师 来源:李倩 2018-11-29 14:49 次阅读

调试代码对于懂程序的你来说不难,但一定麻烦。尤其在初次接触一个程序而又尚未能完全理解时,你可能不清楚要如何才能快速找准需要调试之处,全程设置断点进入Debug模式是一种很糟心的做法。如果你有接触英特尔®Max 10 开发套件片上闪存的代码,会不会想要动手调试一些功能呢?

MAX 10 FPGA开发电路板

首先,我们需要了解英特尔®MAX 10 FPGA设备中片上闪存的结构与功能。它分为两个部分:

配置闪存:用于存储硬件配置数据

用户闪存:用于存储用户数据/软件应用

其中,片上闪存IP是用于访问UFM的唯一IP。片上闪存IP内核在Quartus Prime安装过程就可以完成安装,我们可从英特尔®FPGA IP库选择这个IP并为其设置参数。UFM内存结构根据f片上闪存IP内核参数编辑器中指定的配置模式而改变。那么它总共有多少种内部配置模式呢?请看下图。

5种内部配置模式

Nios II从UFM就地执行,能够最大限度地降低RAM使用率。因此该启动解决方案十分适合需要限制片上内存使用率的Nios II处理器应用。从UFM就地执行时,基于BSP设置,数据段(.radata、.rwdata或.eceptions)将从启动内存复制到RAM中,而只读代码段仍存放在片上闪存区域。

如何调试存储在Max 10开发套件片上闪存中的代码

Nios II处理器复位向量指向UFM的基地址,因此系统重置后,代码会从UFM执行,如果您使用源码级调试工具调试应用,则需要使用硬件断点进行调试,因为UFM不支持随机内存存取。

那么具体该如何调试代码呢?

我们可以创造一个从UFM就地执行的Nios II应用,并使用Nios II软件构建工具中的调试工具调试存储在UFM中的代码。先创建一个Quartus项目和Qsys系统,如下图,这是一个在Platform Designer中创建的设计。

如前所述,我们需要使用硬件断点调试应用。因此,在Qsys设计中,我们需要启用硬件断点。具体操作步骤详见视频。【滑稽】不过一定要将硬件断点要启用到位,具体可通过选择JTAG调试选项卡查看。同时要注意,我们最多可以启用四个硬件断点。此外,片上闪存IP一定要添加到设计中,这样能便于访问UFM闪存。

在上面这个设计中,我们选择使用的配置模式是单个未压缩映像。接下来,可以将Nios II处理器中复位向量设置为片上闪存IP内核,以通过从UFM就地执行启动Nios应用。完成这些设置后,才能够去生成系统。

接下来,我们可以在Quartus中编译这个设计,创建SOF文件。同时,也可以在Nios II软件构建工具中创建一个简单的Nios II应用。在创建完硬件设计和软件应用后,我们可以使用转换编程文件工具,创建包含UFM数据和SOF文件的POF文件。然后,可以使用Quartus编程工具将POF文件编程至Max 10中。

如上图,已将POF文件编程至Max 10中,并重启电路板。接下来才是真正开始调试存储在片上闪存中的代码。插入断点后,想要调试该应用,就得进行“应用”、“调试”、“选择配置”等一系列操作。(如有不明白的,请详细看上面的视频)在调试配置中,由于代码存储在片上闪存中,所以可能没有选项“将elf下载到选中的目标系统”选择以启动处理器并重置选中的目标系统。

重点来了!

这个时候如果选择“启动停止”,则最多用一个硬件断点,这也意味着您只能在代码上设置另外三个断点。而如果插入断点超过4个,就会在开始调试代码时遇到错误,因为只能使用四个硬件断点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18250

    浏览量

    222049
  • 代码
    +关注

    关注

    30

    文章

    4554

    浏览量

    66732
  • 编辑器
    +关注

    关注

    1

    文章

    787

    浏览量

    30166

原文标题:代码怎么调?方法打包在此,拿走不谢~

文章出处:【微信号:FPGAer_Club,微信公众号:FPGAer俱乐部】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FRDM-KL25Z开发套件接口说明

    的接口功能和OpenSDA内部板级支持包有关,官方出厂默认为大容量存储设备闪存编程接口(MSD-FRDM-KL25Z_Pemicro_v105.SDA板级支持包),即无需安装工具,开发套件会虚拟成一个
    发表于 01-05 15:26

    调试代码程序启动闪存停止

    调试时,我的代码启动闪存停止。程序内存为84%,数据
    发表于 09-26 17:22

    CY8CKIT-040 PSoC 4000开发套件低成本开发平台

    Cortext-M3 PSoC 5LP器件实现编程,调试和串行桥调试。该套件通过赛普拉斯的非易失性低成本F-RAM I2C存储器件为用户提供板载
    发表于 04-10 09:39

    NI GOOP开发套件

    当前代码。 将功能添加至现有代码(往往是由其他人创建而且未编档)往往需要耗费较长的时间。 借助GOOP开发套件,即可分析现有的LabVIEW应用程序并且自动生成设计描述。 通过自动生
    发表于 08-01 16:11

    GPIO和LED闪烁代码做简单的程序应买什么开发套件

    HI Microchip,我是固件开发的新手。我安装了MPLAB X IDE,正在为PIC18f16j11,PIC16进行固件开发。我GPIO和一些LED闪烁代码
    发表于 04-23 13:57

    CANstarter-2开发套件

    CANstarter-2开发套件 “CANstarter-II开发套件”是一款非常高效的、基于PHILIPS 32bit ARM7芯片LPC2119的CAN-bus开发助手。该开发套件
    发表于 03-27 13:50 34次下载

    ZigBee开发套件内容

    ZigBee开发套件内容开发套件
    发表于 11-15 17:35 165次下载

    GDBServer编译指南_基于 EasyARM-i.MX287A 开发套件

    本文基于 EasyARM-i.MX287A 开发套件,介绍如何编译 GDBServer 软件以使用开发套件的远程调试功能。
    发表于 12-15 11:48 0次下载

    网蜂 Zigbee开发套件使用教程

    Zigbee 开发套件使用教程
    发表于 11-05 10:20 0次下载

    如何在 Arria 10 开发套件构建 RLDRAM3 EMIF 设计

    为 Arria 10 开发套件构建 RLDRAM3 EMIF 设计
    的头像 发表于 06-22 01:19 2980次阅读
    如何在 Arria <b class='flag-5'>10</b> <b class='flag-5'>开发套件</b>构建 RLDRAM3 EMIF 设计

    用以太网 Ping的方式对 MAX10 FPGA 开发套件进行测试

    MAX10 FPGA 开发套件进行以太网 Ping 测试
    的头像 发表于 06-20 01:00 4537次阅读
    用以太网 Ping的方式对  <b class='flag-5'>MAX10</b> FPGA <b class='flag-5'>开发套件</b>进行测试

    什么是物联网开发套件?如何挑选物联网开发套件

    关键词:物联网 , 开发套件 物联网应用的高速增长催生了越来越多的开发套件,为从事物联网产品和系统设计的工程师提供了丰富多样的新工具。但在选择开发套件时,五花八门的产品也会让设计师感到眼花缭乱
    发表于 05-29 17:55 4760次阅读

    Cyclone 10 GX开发套件板的电路原理图免费下载

    本文档的主要内容详细介绍的是Cyclone 10 GX开发套件板的电路原理图免费下载。
    发表于 08-19 08:00 11次下载
    Cyclone <b class='flag-5'>10</b> GX<b class='flag-5'>开发套件</b>板的电路原理图免费下载

    模拟微控制器软件开发套件(AMSDK)-下载生产代码

    模拟微控制器软件开发套件(AMSDK)-下载生产代码
    发表于 03-23 13:55 5次下载
    模拟微控制器软件<b class='flag-5'>开发套件</b>(AMSDK)-下载生产<b class='flag-5'>代码</b>

    Neptune开发套件_2021

    Neptune开发套件指南
    发表于 08-18 12:28 3次下载