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

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

3天内不再提示

利用MicroBlaze除错模块实现FPGA嵌入式处理器的除错

电子设计 来源:郭婷 作者:电子设计 2019-05-23 08:00 次阅读

目前,越来越多的FPGA设计开始采用嵌入式处理器,如PowerPC和赛灵思(Xilinx)的MicroBlaze处理器来完成控制任务,采用C语言等软件语言描述这些控制任务,要比使用VHDL或Verilog硬件语言描述更加容易。

当进行嵌入式系统设计时,绝大部份的设计时间可能花费在除错阶段,因此缩短发现问题并解决问题的时间非常重要。作为一款整合除错器,Computex公司的F-Sight同时具备硬件和软件除错能力。一方面,它支持FPGA内部嵌入式处理器的全方位软件除错。另一方面,它还支持监视FPGA硬件讯号。本文将介绍如何利用F-Sight提高除错效率。

启动除错器

Computex公司的除错器非常适合用来实现FPGA内部嵌入式处理器的除错。对于MicroBlaze处理器来说,工程师可以利用MicroBlaze除错模块(MDM)控制处理器的执行过程并进行除错,也可以利用赛灵思公司的MicroBlaze追踪核心(XMTC)以非侵入方式监控处理器程序的执行情况。

由于FPGA的接脚限制,减少输出到接脚的讯号数量非常重要。XMTC提供了编码指令和数据追踪功能,所需要的接脚数量仅为非编码讯号所需的10%。

为了使除错器实现追踪功能,只需要将MDM和XMTC核心分别连接到MicroBlaze处理器的除错和追踪接口,然后将编码后的追踪讯号引到FPGA接脚以便F-Sight收集数据。完成FPGA设计后,再将F-Sight除错器连接到电路板的Mictor连接器。如果使用赛灵思不带Mictor连接器的ML400系列、ML500系列或Sparta-3E/3A/3AN FPGA板,那么在Computex F-Sight配接器帮助下仍可以使用F-Sight中的处理器追踪功能。图1是利用F-Sight配接器将F-Sight连接到Spartan-3板上的照片。

图1:F-Sight透过配接器连接到Spartan-3电路板。

使用处理器追踪功能

处理器追踪功能可以在不中断处理器执行的情况下监控程序执行情况,因此用户可以长时间对程序进行分析,以确定程序代码中的问题,而不会改变处理器的执行状态。Computex F-Sight提供的处理器追踪能力已证明适用在许多情况。

试想一段程序总是不停地产生例外。例外可能产生在程序的任何位置;工程师面临的挑战在于找出并厘清例外之处。为了解决这个问题,可以在例外产生之前或在例外向量中设置断点,这样当程序到达断点时就会暂停。当程序停止时,可查看F-Sight记录的执行历史数据,可从中发现在进入例外处理前执行了哪些指令。

在嵌入式系统中堆栈溢出也是一个常见的问题。程序突然开始从看起来不太正常的地方执行。堆栈可能由于溢出而被破坏。如果怀疑产生了这样的问题,可以透过设计触发器来开始或停止追踪数据的采集。透过设置触发器条件进行堆栈指针和堆栈上限之间的比较,当条件满足时,程序将及时中止,然后用户就可以很容易地确认堆栈溢出以及产生的地方。

在某些实时系统中,为了除错目的而停止处理器的执行过程并非很好的选择,因为停止执行本身可能会改变程序行为。有时候问题可能极少出现,因此可能需要长时间监控程序执行情况。F-Sight可以用来设置复杂的触发条件并收集追踪数据,然后透过事后分析来除错问题。

探测内部讯号

FPGA除错经常从设计模拟开始。尽管仿真器能够发现设计中的错误,但却不能发现与技术指标相关的问题。而且还经常产生设计在模拟时通过了所有测试、但在FPGA中实现时却无法工作的情况。产生这种情况时,设计人员将被迫利用逻辑分析仪在实际的目标系统中进行除错。

当试图将讯号从FPGA中引出以便让逻辑分析仪监视其波形时,问题就出现了。对于大规模嵌入式系统设计来说,在大多数情况下即使只有很小的修改(例如将所需要的讯号引到组件外部接脚),也可能需要很长时间才能完成FPGA的重新合成和实体建置。此外,还可能会由于不同的布局和布线而带来时序问题。执行实体建置工具所需要的实际时间依赖于电路的规模以及主计算机的性能,但很可能一天内只够完成几次除错。

幸运的是,Computex F-sight提供了一项非常有用的功能,它不需要重新执行合成和实体实现工具就能透过设计修改把内部FPGA讯号引到组件外部接脚。这一功能被称为‘探测’(Probing)。只需在显示HDL原始程序代码的视图中简单地选择内部FPGA讯号(图2),F-Sight将自动完成其余工作,并根据上述选择为测试接脚分配合适的布线资源。这是透过利用Xilinx ISE软件工具中包含的FPGA编辑器实现的。有了这一功能,除错时必须花在逻辑合成和布局布在线的时间被缩到了最短,因而可以有更多时间用在监视讯号波形上。

图2:F-Sight探测。

协同除错

当系统工作不正常时,唯一能做的就是根据实际产生的事件检查问题产生的原因。在有些情况下,利用硬件来实现事件追踪会更容易;而在其它情况下,利用软件可能更容易一些。例如,在使用硬件的情况中,如果能够确定显示例外的讯号,那么可以将这个讯号设为触发讯号。在使用软件的情况中,如果例外处理被调用,那么可以在例外处理程序处设置断点并执行用户程序。这样事件产生的过程将被撷取进F-Sight的追踪缓冲器中。

然而,这儿的问题是即使撷取了事件的产生过程,确定原因仍然需要很长的时间,除非了解硬件和软件之间的相关性。针对这一点,Computex实现了协同除错功能,即可以在F-Sight中实现硬件(分析仪)和软件(追踪)历史之间的同步。利用这一功能,可以在相同时间轴上检查事件产生时的波形和程序行为。当在分析仪窗口中滚动显示波形时,程序执行历史和原始程序代码视图也相应滚动(图3)。协同除错功能的强大之处在于能够透过硬件和软件协同除错快速确定问题原因。

利用MicroBlaze除错模块实现FPGA嵌入式处理器的除错

图3:F-Sight协同除错。

对闪存除错

FPGA内部存储器经常被用来储存嵌入式处理器程序。然而,如果程序太大,内部存储器的容量经常不够用。一种可行的方法是利用外部闪存来储存用户程序。

虽然有些除错器不支持闪存写入功能,但F-Sight却能够像除错位于内部存储器中的程序一样,全面对外部闪存中的程序除错。例如,它可以用来下载用户程序,对内存的某部份加上外挂程序,或在闪存中设置软件断点。

F-Sight支持1000多种类型的闪存。即使所使用的闪存不在已支持列表中,也可以透过图形化用户接口方便地手工增加相应项目。


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

    关注

    68

    文章

    19170

    浏览量

    229182
  • FPGA
    +关注

    关注

    1626

    文章

    21675

    浏览量

    601950
  • 嵌入式
    +关注

    关注

    5069

    文章

    19023

    浏览量

    303435
收藏 人收藏

    评论

    相关推荐

    利用 SoM 实现嵌入式微处理器/FPGA 组合设计和项目的快速运行

    作者:Jacob Beningo 很多嵌入式设计使用基于微处理器和微控制的单板计算机 (SBC) 和模块化系统 (SoM)(例如,请参阅“使用 Raspberry Pi 3构建低成本
    的头像 发表于 10-03 14:20 979次阅读
    <b class='flag-5'>利用</b> SoM <b class='flag-5'>实现</b><b class='flag-5'>嵌入式微处理器</b>/<b class='flag-5'>FPGA</b> 组合设计和项目的快速运行

    嵌入式处理器硬件设计

    ,Zynq UltraScale +™MPSoC或MicroBlaze处理器设计和调试基于微处理器的系统和嵌入式软件应用。Table of ContentsRevision Hist
    发表于 11-15 10:34

    如何提高FPGA嵌入式处理器的系统除错率?

    硬件和软件除错能力。一方面,它支持FPGA内部嵌入式处理器的全方位软件除错。另一方面,它还支持监视FPG
    发表于 09-17 07:42

    MicroBlaze处理器的PetaLinux操作系统怎么移植?

    )作为一种特殊的嵌入式微处理器系统,已逐渐成为一个新兴的技术方向。SOPC融合了SoC和FPGA各自的优点,并具备软硬件在系统可编程、可裁减、可扩充、可升级的功能。其核心是在FPGA实现
    发表于 03-16 06:37

    嵌入式系统能解决哪方面的除错问题?

    现在可用的嵌入式硬体硅智财权(intellectual property ,IP),以及该 IP 能解决哪方面的除错问题。
    发表于 04-09 08:30

    【正点原子FPGA连载】第一章MicroBlaze简介--摘自【正点原子】达芬奇之Microblaze 开发指南

    处理器IP核,将会大大减少开发人员的工作量,从而对于提升工作效率,节约项目成本具有重大意义。采用FPGAMicroBlaze进行嵌入式系统设计,可
    发表于 10-16 16:28

    怎么利用FPGA嵌入式处理器实现低成本智能显示模块

    怎么利用FPGA嵌入式处理器实现低成本智能显示模块
    发表于 04-28 07:10

    如何利用F-Sight提高除错效率?

    如何利用F-Sight提高FPGA嵌入式处理器的系统除错率?
    发表于 05-07 06:04

    基于Xilinx MicroBlaze多核嵌入式系统的设计

    MicroBlaze 核是嵌入在Xilinx FPGA之中的属于32位RISC Harvard架构软处理器核。针对Xilinx MicroBlaze
    发表于 07-20 17:22 68次下载
    基于Xilinx <b class='flag-5'>MicroBlaze</b>多核<b class='flag-5'>嵌入式</b>系统的设计

    基于FPGA嵌入式PLC微处理器设计

    目前利用FPGA设计高性能的嵌入式处理器已经成为SOC设计的重要部分,对一种基于FPGA芯片的嵌入式
    发表于 09-28 18:19 1947次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>嵌入式</b>PLC微<b class='flag-5'>处理器</b>设计

    嵌入式系统的除错策略分析

    嵌入式系统除错的工作量,可望占了嵌入式软体专案工作量的一半以上。了解硬体除错功能以及它们所能解决的问题,是选择正确的晶片、建立除错系统以及提
    发表于 10-20 10:01 0次下载
    <b class='flag-5'>嵌入式</b>系统的<b class='flag-5'>除错</b>策略分析

    MicroBlaze 处理器为内核的嵌入式系统开发过程详解

    系统应用,围绕Xilinx 公司的MicroBlaze处理器,对其体系结构、设计流程和相关开发工具一一做出介绍,并且通过一个简单的实例来说明以MicroBlaze 处理器为内核的
    发表于 07-17 11:49 2408次阅读
    以<b class='flag-5'>MicroBlaze</b> <b class='flag-5'>处理器</b>为内核的<b class='flag-5'>嵌入式</b>系统开发过程详解

    基于构造的的嵌入式微处理器MicroBlaze的开发与应用

    MicroBlaze处理器,在不同产品系列间实现方便的转换,具有很高的灵活性。但是,MicroBlaze系统设计不仅要在70多种参数中选择,而且还要借助一系列功能强大的
    发表于 11-24 19:09 1146次阅读
    基于构造的的<b class='flag-5'>嵌入式微处理器</b><b class='flag-5'>MicroBlaze</b>的开发与应用

    关于嵌入式处理器的在线调试方法

    FPGA 设计中使用嵌入式处理器软核( 如MicroBlaze、PicoBlaze 等) 构成可编程片上系统( SystemOn Programmable Chip,SOPC) ,相
    发表于 07-09 11:47 1206次阅读
    关于<b class='flag-5'>嵌入式</b><b class='flag-5'>处理器</b>的在线调试方法

    关于如何提高FPGA嵌入式处理器的系统除错

    目前,越来越多的FPGA设计开始采用嵌入式处理器,如PowerPC和赛灵思(Xilinx)的MicroBlaze处理器来完成控制任务,采用C
    发表于 03-23 08:55 447次阅读