一种实现对51软核在线应用代码调试的方法

文档序号:6367471阅读:251来源:国知局
专利名称:一种实现对51软核在线应用代码调试的方法
技术领域
本发明涉及电子计算机技木,特别涉及单片机调试技木。
背景技术
随着现场可编程逻辑阵列(FPGA)及电子设计自动化(EDA)技术的发展,百万门级的FPGA、可重构的嵌入式MCU、功能复杂的IP核(Intellectual Property core)及各种功能强大的EDA工具的出现,实现将MCU、存储器和ー些外围电路集成到ー个芯片成为可能。随着IP核技术在FPCA中的应用,特别是MCU IP核技术的发展。出现了各种性能不同的嵌入式MCU软核。MCS-51系列MCU是目前应用时间最长、最普及、可获得应用资料最多的功能强大的8位MCU。建立8051MCU可综合IP核对于各种嵌入式系统和片上系统(SOC)的应用起到了极大的促进作用。针对8051MCU的应用前景,出现了几个比较典型的8051IP核,如DW8051核,OpenCore组织的0C8051及T51核,MC8051核等。这些IP核都是采用硬件描述语言(HDL)描述的软MCU内核,其与エ艺无关,能够在多种FPGA上进行逻辑综合及实现。如图I所示,MC8051核结构的最顶层(MC805l_top)将代码空间ROM(MC8051_ROM)、外部数据空间RAMx(MC8051_RAMx)、内部存储空间RAM(MC8051_RAM)、及微处理器核MC8051_cOre封装在内部。实际应用中用户可添加自定义附加逻辑模块。本发明的涉及部分主要集中于这ー层次。MC8051核的应用程序的一般开发流程如下I)在keil等单片机开发平台中写下源代码,且编译成hex文件;2) hex文件转化为FPGA中的ROM初始化数据文件,如xilinx公司FPGA中ROM数据初始化的· coe文件;3)在FPGA开发工具中基于转化后的文件生成R0M,再把该ROM和MC8051_core源代码一起执行综合布局布线等,得到可以配置FPGA的下载文件,如xilinx的.bit文件;4)将bit文件下载至FPGA中,进行验证,如果发现错误则需要转回第一歩修改代码,再重做上述流程。由以上开发流程可见,MC8051核在实际应用中其开发流程费时费力I)任意的代码上的小改动都需要开发人员从第一歩生成hex文件开始重头再来
一遍;2)中间步骤太多,如果出现错误,不好判断是开发流程中哪ー步出错。也可能是单片机代码出错,也可能是文件转换错误,也可能是FPGA代码出错。3)开发人员无法实时监控8051内部寄存器及变量的变化情況,这就导致软件错误寻找的困难。4)对开发人员要求较高,需要开发人员不仅掌握51开发工具的使用,还要掌握FPGA开发工具的使用。由于以上原因,当需要在MC8051核中开发实用程序时,往往在代码的调试阶段耗费大量时间和精力,而效果却并不理想。keil公司的Monitor-51是最为常用的51仿真エ具之一。而MC8051核等51软核因为其不同于一般实体的51单片机,为软MCU内核的性质,现有的Monitor-51对51单片机的在线调试方法不能用于51软核。如果MC8051核等51软核要推广应用,如何高效率地进行代码的调试是需要首先解决的问题。

发明内容
本发明所要解决的技术问题是,提供一种基于Monitor-51,在51软核上实现在线应用代码调试的方法。本发明为解决上述技术问题所采用的技术方案是,一种实现51软核在线应用代码调试的方法,其特征在于,包括以下步骤Monitor-51 预处理步骤根据51软核的工作频率,设置Monitor-51监控程序的串ロ波特率;将Monitor-51监控程序编译成hex文件,再将hex文件转换为可被51软核中合并后的外部存储空间RAMx读取的初始化文件;51软核预处理步骤设置51软核的工作频率;生成51软核的内部存储空间RAM ;将51软核的独立的外部数据空间与代码空间合并,形成统ー的可读写的外部存储空间RAMx,并使用初始化文件对外部存储空间RAMx进行初始化;生成包含51软核的FPGA配置数据文件;在线调试步骤将包含51软核的FPGA配置数据文件下载至FPGA中,设置PC机中Monitor-51驱动模块的串ロ波特率与Monitor-51监控程序的串ロ波特率相匹配,用RS232串ロ线连接PC机及FPGA开发板进行在线调试。具体的,将51软核的外部数据空间与代码空间合并具体为合井代码空间的地址线与外部数据空间地址线,合井代码空间和外部数据空间的数据总线。进ー步的,Monitor-51预处理步骤中,为了用户设置的方便,Monitor-51预处理步骤中还包括对51软核外部存储空间RAMx的划分在Monitor-51存储空间中从零地址开始按由低位到高位的顺序依次将放入用户程序、用户外部数据、Moni tor-51监视程序、监视程序外部数据。本发明的有益效果是,通过对51软核与Monitor-51进行修改,使用Monitor-51对核进行在线仿真成为可能,实现了对51软核应用代码的在线调试,切实可行,大大缩短了基于51软核的可编程片上系统开发的周期,适用于MC8051核以及其它51软核。


图I为现有的MC8051核结构的最顶层示意图;图2为经实施例修改后的MC8051核结构的最顶层示意图。
具体实施方式
以MC8051核为例,为了实现MC8051核的在线仿真调试,需要完成以下四方面的エ作—、哈佛结构改为冯·洛伊曼结构由于在线仿真的本质是通过Monitor-51代码监控用户代码的运行,所以需要可读写的代码空间。普通MC8051核是只读的代码空间与可读写的数据空间相分离的哈佛结构,所以将修改MC8051核的存储结构为冯·洛伊曼结构,即合并代码空间与数据空间为统ー且可读写的存储空间。ニ、Monitor-51的修改修改Monitor-51中所用串ロ波特率;对51软核外部存储空间RAMx进行分配,划分出用户程序空间和用户外部数据空间,Monitor-51监控程序和监控程序外部数据空间。三、定时器组增加由于Monitor-51在运行时要占用一个定时器,在MC8051核中、添加一组定时器。四、MC8051核复位后程序指针(PC,program counter)地址修改指向Monitor-51代码首地址。在xilinx FPGA上利用Monitor-51在线仿真功能进行MC8051软核中用户程序在线仿真调试I.实例的软硬件平台自制带RS232串ロ的FPGA开发板,其中FPGA为xilinx公司的spartan3e系列芯片;计算机PC (personal computer)机一台;串ロ连接线一根。软件为xilinx公司的FPGA开发软件ISE,及keil公司的51单片机开发软件keil uVision(自带Monitor-51工具)。2.代码修改I)Monitor-51 的配置修改(I)对51软核外部存储空间RAMx进行分配为了用户使用的方便,将用户程序和数据放入存储空间低位,为0000h-27FFh,共10K。Monitor-51监视程序放置在2800h_3EFFh中(其中Monitor-51监视程序的大小4-5K,这里有IK左右的余量);监视程序外部数据存储空间3F00h-3FFFh。这里各空间的分配是由于实例中RAMx只有16KB,所以这样分配。若在其他应用中,那么可以修改用户存储空间大小,Monitor-51监控程序所占空间依次改变。(2)将Monitor-51监控程序所用串ロ的波特率设置为9600bps :根据MC8051最高可运行主频,本实施例将MC8051的频率设置为18MHz。因此,为获得9600bps的波特率,设置时选择新添加的定时器组中的定时器TH1,修改定时器THl中定时变量为OFBH ;当其它应用中MC8051主频不一样时,需要改变此值,使得Monitor-51监控程序依然能以9600bps的串ロ波特率与PC机端的调试程序通信。Monitor-51的配置修改之后,将Monitor-51监控程序编译生成mon51. hex文件,再将hex文件转化为FPGA中随机存取存储器初始化数据格式文件,如本实施转换为M0N51.coe文件。2)修改MC8051微处理器核(MC8051_core)内代码(I)添加定时器组由于Monitor-51在运行时要占用一个定时器,所以添加一组定时器组,串ロ总数量不变;(2)修改核内空间访问指令,将空间选择信号引出,合并数据空间与代码空间主要将代码空间的地址线与数据空间地址线合井,以及将代码空间和数据空间数据总线合并,使得代码空间与数据空间合并为统一且可读写的存储空间。(3)片上复位的实现为了方便用户程序的设置,Monitor-51将存储空间中低位地址用作用户存储空间。由此带来的问题是,每当MC8051复位时,不能正确调用Monitor-51对用户代码进行监控。所以修改MC8051核的复位地址,使其指向51软核存储空间中存储监控程序的首地址,使得Monitor-51能被正确调用。3)进行MC8051核的创建(I)添加数字时钟管理模块DCM :通过DCM实现时钟信号的管理,设置MC8051的エ作频率为18MHz。这是因为开发所用的FPGA上MC8051运行主频最高为20MHz ;(2)配置存储器内部RAM(MC8051_RAM)是MC8051的内部随机存取存储器,是不具有在线调试功能 MC8051单片机也需要的。现有的MC8051中,RAMx是外部数据随机存取存储器,与代码空间ROM是独立的。本实施例中RAMx(MC8051_RAMx)是外部数据空间与代码空间合并一起的存储空间,去掉了物理上的代码空间(MC8051_R0M),如图2所示。定制单片机核的存储空间大小MC8051核的存储空间最大为64KB,根据FPGA片内资源和实际应用不同,需定制。本实例中,将RAMx适当减小,将原来的64KB的RAMx减小为16KB。MC8051核中的内部RAM及RAMx部分采用硬核,通过调用ISE中的IP核BlockMemory Generator v2. 7 (内存块生成工具)来实现(I)内部RAM实现的配置将存储类型Memory Type设置为单端ロ RAM (SinglePort RAM);设置存储容量(Memory Size)的写宽度(Write Width)为8,写深度(WriteDepth)为128 ;设置工作模式(Operating Mode)为写优先(Write First),设置使能端(Enable)为使能信号启用(Use ENAPin)。(II) RAMx实现的配置将存储类型Memory Type设置为单端ロ RAM (SinglePort RAM);设置存储容量(Memory Size)的写宽度(Write Width)为8,写深度(WriteDepth)为16384,设置工作模式(Operating Mode)为写优先(Write First),设置使能端(Enable)为始终启用(Always Enable),并使用M0N51. coe文件进行存储器初始化(MemoryInitialization)。至此,将生成的内部RAM、RAMx以及修改配置后的MC8051_core,添加管脚约束ucf文件,进行综合布局布线,最后生成包含MC8051核的可以配置FPGA的下载文件(xilinx的bit文件)。3.在线调试将生成好的带在线代码调试功能的MC8051核(bit文件)下载至带232串ロ的FPGA开发板中,用串ロ线连接PC机及FPGA开发板。keil软件设置为以Monitor-51方式调试,设置PC机中Monitor-51驱动模块的串ロ波特率为9600bps,与Monitor-51监控程序所用串ロ的波特率相匹配,在keil中创建51工程,添加应用代码文件,编译链接生成HEX文件。在PC端就能利用keil软件的调试界面通过串ロ与MC8051核中的监控代码通信,在线观察程序运行状态和MC8051核内部寄存器,内部存储空间的使用情况,调试程序的运行。
权利要求
1.一种实现51软核在线应用代码调试的方法,其特征在于,包括以下步骤 Monitor-51预处理步骤 根据51软核的工作频率,设置Monitor-51监控程序的串口波特率; 将Monitor-51监控程序编译成hex文件,再将hex文件转换为可被51软核中合并后的外部存储空间RAMx使用的初始化文件; 51软核预处理步骤 设置51软核的工作频率; 生成51软核的内部存储空间RAM ;将51软核的独立的外部数据空间与代码空间合并,形成统一的可读写的外部存储空间RAMx,并使用初始化文件对外部存储空间RAMx进行初始化; 生成包含51软核的FPGA配置数据文件; 在线调试步骤 将包含51软核的FPGA配置数据文件下载至FPGA中,设置PC机中Monitor-51驱动模块的串口波特率与Monitor-51监控程序的串口波特率相匹配,用RS232串口线连接PC机及FPGA开发板进行在线调试。
2.如权利要求I所述一种实现51软核在线应用代码调试的方法,其特征在于,将51软核的外部数据空间与代码空间的合并具体为合并代码空间的地址线与外部数据空间地址线,合并代码空间和外部数据空间的数据总线。
3.如权利要求I所述一种实现51软核在线应用代码调试的方法,其特征在于,Monitor-51预处理步骤中还包括对51软核外部存储空间RAMx划分将51软核存储空间中从零地址开始按由低位到高位的顺序依次分配给用户程序、用户外部数据、Monitor-51监视程序、监视程序外部数据。
4.如权利要求3所述一种实现51软核在线应用代码调试的方法,其特征在于,51软核预处理步骤中还包括,修改51软核的复位地址,使其指向51软核存储空间中存储监控程序的首地址。全文摘要
本发明提供一种实现51软核在线应用代码调试的方法,通过对51软核与Monitor-51进行修改,将51软核的独立的外部数据空间与代码空间合并,形成统一的可读写的外部存储空间RAMx,生成包含51软核的FPGA配置数据文件;将包含51软核的FPGA配置数据文件下载至FPGA中,实现对51软核应用代码的在线调试,切实可行,大大缩短了基于51软核的可编程片上系统开发的周期,适用于MC8051核以及其它51软核。
文档编号G06F11/26GK102662811SQ20121009275
公开日2012年9月12日 申请日期2012年3月31日 优先权日2012年3月31日
发明者唐续, 王嘉, 董平, 蒲晓蓉, 魏平 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1