摘要:提出了一种基于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内部Flash的在线仿真器设计方法
为什么数模转换器需要缓冲?
四个问题确定是否需要采用有源电缆(AEC)解决方案
过ISO 16750-2 测试标准专用TVS二极管-SM8S33A
浅谈汽车连接器可靠性的影响因素
英国公布“先进制造计划”,为汽车行业提供20亿英镑资金
逆变电路有哪些优点和缺点
当新餐饮遇上AI机器人,阿里口碑与优必选强强联合
魅蓝E2和魅蓝Note5哪个值得买?看完这些你还在纠结吗?
第一波R15用户口碑出炉 三大电商平台好评如潮
增强现实和虚拟现实将在三个方面改变工厂车间面貌
韩国针对出现裂痕的波音737 NG型飞机全面检查工作已结束
2019年中国移动将进一步推动低成本光模块的应用
玩家风暴魔方550机箱高清图赏
应用与移动设备设计的降压-升压设计解决方案