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

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

3天内不再提示

一种基于MCU内部Flash的在线仿真器设计方法

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-08-25 16:36 次阅读

摘要:提出了一种基于MCU内部Flash的仿真器设计方法,并完成了设计和仿真

关键词:微控制器 在线仿真 开发系统 Flash SRAM

由于市场对MCU功能的要求总是不断变化和升级,MCU应用的领域也不断扩展, 因此往往需要对最初的设计进行修改。Flash MCU与以往OTP/MASK MCU相比,最大的优点就在于可进行高达上万次的擦写操作,顺应了MCU功能不断修改的需求;另一方面,Flash MCU市场价格也在不断下降。因此,许多OEM已将Flash MCU用于产品的批量生产。对于Flash MCU,基于内部Flash的在线仿真器更接近于程序真实的运行特性,程序调试的效果更好,效率更高。实际上,Flash MCU工作时Flash的延时、读写时充等特性是非常,程序存储在MCU外部仿真板上的SRAM中,由额外的硬件逻辑来模拟Flash的这些特性是费时低 效的;同时将Flash和MCU内嵌的其他类型存储器如SRAM、ROM等区分开来也是十分重要的。如果在程序的调试阶段就可以反映出这特性,有且于实现 程序从仿真器到商用MCU芯片的无缝转移。

1 关于Flash MCU

Flash MCU的构成如图1所示,主要由CPU核、Flash IP及其控制模块、SRAM IP及基控制模块、WatchDog、PMU(Power Manage Unit,功耗管理单元)、I/O端口以及ISP在线编程接口等组成。不同功能的Flash MCU还包含一些各自独特的应用模块单元,如用于寻呼的Flash MCU所包含的解码模块。对于用来构成在线仿真器的Flash MCU还可能包括仿真接口单元。本文在讨论Flash MCU的在线仿真时,指的都是包含仿真接口的Flash MCU。

Flash存储器几乎拥有现今追求个性化的用户所需要的所有优点:掉电数据不丢失、快速的数据存取时间、电可擦除、容量大、在线(系统)可编程、价格低廉以及足够多的擦写次数的高可靠性等,已成为新一代嵌入式应用的首选存储器。与Flash MCU相比,MASK(掩膜)MCU尽管在大指生产时仍具备一定价格优势,但其升级不便的缺点,随着今后Flash成本的进步降低和MCU功能需求的逐渐增多,将表现得更为显著。

2 基于外部SRAM的MCU在线仿真器

MCU仿真器的一种常见做法是,将用户的待调试程序(以下简称用户程序)存储在 MCU外部仿真板的SRAM(以下简称外部SRAM)中,在bond-out MCU的外部结构仿真监控硬件(以下简称外部仿真逻辑),通过监视和控制仿真接口信号即bond-out的信号,来获取MCU的状态,是指将MCU内部的 某种信号连接到封装的管脚上,使得外部仿真逻辑可以监视和控制MCU内部的状态。这种非商用芯片专用于构成在线仿真器,当用户程序在仿真器中调试完成后, 编程到商用MCU芯片中,应用到用户系统。在商用MCU中,这些仿真接口信号不会出现在芯片封装的管脚上。

在Flash MCU没有被广泛应用之前,仿真器设计公司通常将用户程序和监控程序都存储在外部SRAM中,这种做法基本上可以反映SRAM MCU真实的运行情况,对用户程序的调度效果影响不大。但是对于Flash MCU而言,则存在一定的问题。毕竞SRAM和Flash在工艺和读写时序上相去甚远,CPU运行存储在SRAM和Flash中的程序,情况是完全不同 的。有可能出现程序存储的仿真器的外部SRAM中运行良好,但是编程到商用MCU中工作起来却不正常。随着Flash MCU在 MCU市场中的比重越来越大,这一问题显得越来越突出,有必要加以重视。

本文介绍的Flash MCU仿真器的设计方法,几乎不增加MCU的仿真接口信号和芯片设计的复杂程度,就可以接近程序在商用MCU中的运行情况,实现用户程序从仿真器到商用MCU的良好转移。

3 基于MCU内部Flash的在线仿真器的一种设计方法

图2是Flash MCU仿真器系统构成示意图,其中的虚线接口信号是MCU的仿真接口,通常包括仿真使能信号,bond-out MCU中的CPU的地址、数据、读/写和取指等信号,以及少数几个用于仿真的控制信号。仿真接口是Flash MCU与外部仿真逻辑之间的桥梁,使得外部仿真逻辑能够监控MCU的内部状态。

3.1 仿真器的工作原理

仿真器复位后,CPU开始运行存储在MCU内部Flash(以下简称内部 Flash)中的用户程序,外部仿真逻辑实时监测仿真接口信号,取得当前CPU运行指令的地址,判断是否断点。一旦遇到断点,外部仿真逻辑停止用户程序的 运行,切换程序运行的地址空间,开始运行存储在外部SRA模块的监控程序。监控程序取得MCU的当前状态,并根据软件的调试要求,改变MCU内部的一个或 多个寄存器的值,控制MCU的下一步运行。当监控程序完成使命,需要将程序的运行空间切换回用户程序空间,CPU取指从外部回到内部,继续运行用户程序。 在用户程序运行过程中,软件通过并口发送的调试指令可以控制外部仿真逻辑,随时打断程序运行,或者单步调试,工作的过程与断点相心。断点、单步及软件中断 在下文中断称为程序中断事件。

仿真器工作时,CPU的取指空间需要在内外存储器之间反复切换。CPU地址空间划分示意图如图3所示。总体上,仿真器的工作受图4所示的状态机控制。该状态机共有四个状态:

·用户程序运行态(简称用户态)

仿真器复位后,处在运行用户程序的状态。在该状态下,CPU运行存储在内部Flash中的用户程序;外部仿真逻辑实时监测仿真接口,等待程序中断事件的发生,进入下一状态-跳转态。
审核编辑:彭菁

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

    关注

    146

    文章

    16017

    浏览量

    343631
  • FlaSh
    +关注

    关注

    10

    文章

    1550

    浏览量

    146646
  • 存储
    +关注

    关注

    12

    文章

    3856

    浏览量

    84661
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82995
  • 芯片封装
    +关注

    关注

    10

    文章

    399

    浏览量

    30156
收藏 人收藏

    评论

    相关推荐

    为什么需要仿真器

    为什么需要仿真器  软件模拟和目标 Monitor提供了一种经济的调试手段,对于很多设计来说已经足够。但是也有很多场合,需要利用仿真器来找到程序错误。 无论在哪
    发表于 08-11 14:18

    ARM仿真器内部和外部模式

    ROM中。为了有效地仿真这种芯片,要求仿真器使用bondout或增强型Hooks芯片。  外部模式是当程序存储,可能还有部分数据存储,位于MCU
    发表于 08-11 14:19

    基于外部SRAM的MCU在线仿真器

    基于外部SRAM的MCU在线仿真器MCU 仿真器一种常见做法是,将用户的待调试程序(以下简称用
    发表于 03-29 16:09

    基于外部SRAM的MCU在线仿真器

    基于外部SRAM的MCU在线仿真器MCU 仿真器一种常见做法是,将用户的待调试程序(以下简称用
    发表于 03-29 16:14

    CC DeBuger 仿真器是如何往CC1110中的Flash写入固件文件的?

    和CPU SFR方式,但其都是用代码实现这个过程的。我想知道仿真器是以一种什么样的方式将固件文件写入Flash的。(数据手册中说是以一种类似SPI的协议方式烧录)求讲解?我用逻辑分析仪
    发表于 11-03 16:59

    新手入门必备:ARM仿真器是干啥用的?

    编译,以一种标准格式生成目标代码文件,比如Intel HEX。这个目标代码将被存储在最终产品的非挥发存储,比如EPROM或FLASH中。2.仿真器是什么?
    发表于 08-27 09:45

    哪里有51在线仿真器教程

    ①是51单片机的在线硬件仿真器教程(pdf、视频),因为我最熟希的就是51。②不要仅仅只有keil软件单仿真那种,因为软件仿真我也会些简单
    发表于 05-29 05:36

    C6747 FLASH烧写程序后,仿真器连接不上的原因?

    原先在线调试仿真器的连接直都是没有问题的,烧写FLASH后,也提示烧写成功,但是上电重启后,没有工作,再连接仿真器怎么都连接不上,
    发表于 07-27 14:04

    JTAG仿真器连接不上的原因及解决办法?

    谁遇到过类似问题?另外进步讨论下:1 使用ti dsp芯片时,经常碰到连不上仿真器的情况(自己设计的电路板),ti提供的开发板这方面还是比较稳定的;2 仿真器通过jtag连接dsp芯片时,是
    发表于 07-29 11:22

    编程仿真器的区别

    对于51系统来说,很容易理解编程仿真器。通俗的说,仿真器是用来调试仿真的,编程是用来批量生产时对M
    发表于 07-19 07:21

    介绍一种嵌入式系统仿真方法

    /计数等功能。本文介绍一种嵌入式系统仿真方法,通过一种特殊设计的指令集仿真器ISS将软件调试
    发表于 11-08 06:16

    利用DAP仿真器和串口ISP键下载程序

    KEIL集成开发环境安装过程必须安装MCU库,路径不能含中文可利用DAP仿真器和串口ISP键下载程序,配置BOOT0和BOOT1引脚可选择启动方式三启动方式:
    发表于 02-10 07:33

    关于Flash MCU仿真器的几种设计方法详解

    中,由额外的硬件逻辑来模拟Flash的这些特性是费时低效的;同时将FlashMCU内嵌的其他类型存储器如SRAM、ROM等区分开来也是十分重要的。如果在程序的调试阶段就可以反映出这特性,有且于实现程序从
    发表于 08-05 09:58 3477次阅读

    QB-788061 在线仿真器

    QB-788061 在线仿真器
    发表于 04-20 19:07 0次下载
    QB-788061 <b class='flag-5'>在线</b><b class='flag-5'>仿真器</b>

    QB-V850ERS2在线仿真器

    QB-V850ERS2 在线仿真器
    发表于 05-04 20:00 0次下载
    QB-V850ERS2<b class='flag-5'>在线</b><b class='flag-5'>仿真器</b>