CN102662811B - 一种实现对51软核在线应用代码调试的方法 - Google Patents
一种实现对51软核在线应用代码调试的方法 Download PDFInfo
- Publication number
- CN102662811B CN102662811B CN201210092753.0A CN201210092753A CN102662811B CN 102662811 B CN102662811 B CN 102662811B CN 201210092753 A CN201210092753 A CN 201210092753A CN 102662811 B CN102662811 B CN 102662811B
- Authority
- CN
- China
- Prior art keywords
- space
- soft
- monitor
- soft core
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供一种实现51软核在线应用代码调试的方法,通过对51软核与Monitor-51进行修改,将51软核的独立的外部数据空间与代码空间合并,形成统一的可读写的外部存储空间RAMx,生成包含51软核的FPGA配置数据文件;将包含51软核的FPGA配置数据文件下载至FPGA中,实现对51软核应用代码的在线调试,切实可行,大大缩短了基于51软核的可编程片上系统开发的周期,适用于MC8051核以及其它51软核。
Description
技术领域
本发明涉及电子计算机技术,特别涉及单片机调试技术。
背景技术
随着现场可编程逻辑阵列(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组织的OC8051及T51核,MC8051核等。这些IP核都是采用硬件描述语言(HDL)描述的软MCU内核,其与工艺无关,能够在多种FPGA上进行逻辑综合及实现。
如图1所示,MC8051核结构的最顶层(MC8051_top)将代码空间ROM(MC8051_ROM)、外部数据空间RAMx(MC8051_RAMx)、内部存储空间RAM(MC8051_RAM)、及微处理器核MC8051_core封装在内部。实际应用中用户可添加自定义附加逻辑模块。本发明的涉及部分主要集中于这一层次。
MC8051核的应用程序的一般开发流程如下:
1)在keil等单片机开发平台中写下源代码,且编译成hex文件;
2)hex文件转化为FPGA中的ROM初始化数据文件,如xilinx公司FPGA中ROM数据初始化的.coe文件;
3)在FPGA开发工具中基于转化后的文件生成ROM,再把该ROM和MC8051_core源代码一起执行综合布局布线等,得到可以配置FPGA的下载文件,如xilinx的.bit文件;
4)将bit文件下载至FPGA中,进行验证,如果发现错误则需要转回第一步修改代码,再重做上述流程。
由以上开发流程可见,MC8051核在实际应用中其开发流程费时费力:
1)任意的代码上的小改动都需要开发人员从第一步生成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存储空间中从零地址开始按由低位到高位的顺序依次将放入用户程序、用户外部数据、Monitor-51监视程序、监视程序外部数据。
本发明的有益效果是,通过对51软核与Monitor-51进行修改,使用Monitor-51对核进行在线仿真成为可能,实现了对51软核应用代码的在线调试,切实可行,大大缩短了基于51软核的可编程片上系统开发的周期,适用于MC8051核以及其它51软核。
附图说明
图1为现有的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软核中用户程序在线仿真调试:
1.实例的软硬件平台:
自制带RS232串口的FPGA开发板,其中FPGA为xilinx公司的spartan3e系列芯片;计算机PC(personal computer)机一台;串口连接线一根。软件为xilinx公司的FPGA开发软件ISE,及keil公司的51单片机开发软件keil uVision(自带Monitor-51工具)。
2.代码修改:
1)Monitor-51的配置修改:
(1)对51软核外部存储空间RAMx进行分配:为了用户使用的方便,将用户程序和数据放入存储空间低位,为0000h-27FFh,共10K。Monitor-51监视程序放置在2800h-3EFFh中(其中Monitor-51监视程序的大小4-5K,这里有1K左右的余量);监视程序外部数据存储空间3F00h-3FFFh。这里各空间的分配是由于实例中RAMx只有16KB,所以这样分配。若在其他应用中,那么可以修改用户存储空间大小,Monitor-51监控程序所占空间依次改变。
(2)将Monitor-51监控程序所用串口的波特率设置为9600bps:根据MC8051最高可运行主频,本实施例将MC8051的频率设置为18MHz。因此,为获得9600bps的波特率,设置时选择新添加的定时器组中的定时器TH1,修改定时器TH1中定时变量为0FBH;当其它应用中MC8051主频不一样时,需要改变此值,使得Monitor-51监控程序依然能以9600bps的串口波特率与PC机端的调试程序通信。
Monitor-51的配置修改之后,将Monitor-51监控程序编译生成mon51.hex文件,再将hex文件转化为FPGA中随机存取存储器初始化数据格式文件,如本实施转换为MON51.coe文件。
2)修改MC8051微处理器核(MC8051_core)内代码:
(1)添加定时器组:由于Monitor-51在运行时要占用一个定时器,所以添加一组定时器组,串口总数量不变;
(2)修改核内空间访问指令,将空间选择信号引出,合并数据空间与代码空间:
主要将代码空间的地址线与数据空间地址线合并,以及将代码空间和数据空间数据总线合并,使得代码空间与数据空间合并为统一且可读写的存储空间。
(3)片上复位的实现:为了方便用户程序的设置,Monitor-51将存储空间中低位地址用作用户存储空间。由此带来的问题是,每当MC8051复位时,不能正确调用Monitor-51对用户代码进行监控。所以修改MC8051核的复位地址,使其指向51软核存储空间中存储监控程序的首地址,使得Monitor-51能被正确调用。
3)进行MC8051核的创建:
(1)添加数字时钟管理模块DCM:通过DCM实现时钟信号的管理,设置MC8051的工作频率为18MHz。这是因为开发所用的FPGA上MC8051运行主频最高为20MHz;
(2)配置存储器:
内部RAM(MC8051_RAM)是MC8051的内部随机存取存储器,是不具有在线调试功能MC8051单片机也需要的。现有的MC8051中,RAMx是外部数据随机存取存储器,与代码空间ROM是独立的。本实施例中RAMx(MC8051_RAMx)是外部数据空间与代码空间合并一起的存储空间,去掉了物理上的代码空间(MC8051_ROM),如图2所示。
定制单片机核的存储空间大小:MC8051核的存储空间最大为64KB,根据FPGA片内资源和实际应用不同,需定制。本实例中,将RAMx适当减小,将原来的64KB的RAMx减小为16KB。
MC8051核中的内部RAM及RAMx部分采用硬核,通过调用ISE中的IP核BlockMemory Generator v2.7(内存块生成工具)来实现:
(I)内部RAM实现的配置:将存储类型Memory Type设置为单端口RAM(Single PortRAM);设置存储容量(Memory Size)的写宽度(Write Width)为8,写深度(Write Depth)为128;设置工作模式(Operating Mode)为写优先(Write First),设置使能端(Enable)为使能信号启用(Use ENAPin)。
(II)RAMx实现的配置:将存储类型Memory Type设置为单端口RAM(Single Port RAM);设置存储容量(Memory Size)的写宽度(Write Width)为8,写深度(Write Depth)为16384,设置工作模式(Operating Mode)为写优先(Write First),设置使能端(Enable)为始终启用(AlwaysEnable),并使用MON51.coe文件进行存储器初始化(Memory Initialization)。
至此,将生成的内部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核内部寄存器,内部存储空间的使用情况,调试程序的运行。
Claims (3)
1.一种实现51软核在线应用代码调试的方法,其特征在于,包括以下步骤:
Monitor-51预处理步骤:
根据51软核的工作频率,设置Monitor-51监控程序的串口波特率;
将Monitor-51监控程序编译成hex文件,再将hex文件转换为可被51软核中合并后的外部存储空间RAMx使用的初始化文件;
51软核预处理步骤:
设置51软核的工作频率;
生成51软核的内部存储空间RAM;将51软核的独立的外部数据空间与代码空间合并,形成统一的可读写的外部存储空间RAMx,并使用初始化文件对外部存储空间RAMx进行初始化;将51软核的外部数据空间与代码空间的合并具体为:合并代码空间的地址线与外部数据空间地址线,合并代码空间和外部数据空间的数据总线;
生成包含51软核的FPGA配置数据文件;
在线调试步骤:
将包含51软核的FPGA配置数据文件下载至FPGA中,设置PC机中Monitor-51驱动模块的串口波特率与Monitor-51监控程序的串口波特率相匹配,用RS232串口线连接PC机及FPGA开发板进行在线调试。
2.如权利要求1所述一种实现51软核在线应用代码调试的方法,其特征在于,Monitor-51预处理步骤中还包括对51软核外部存储空间RAMx划分:将51软核存储空间中从零地址开始按由低位到高位的顺序依次分配给用户程序、用户外部数据、Monitor-51监视程序、监视程序外部数据。
3.如权利要求2所述一种实现51软核在线应用代码调试的方法,其特征在于,51软核预处理步骤中还包括,修改51软核的复位地址,使其指向51软核存储空间中存储监控程序的首地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210092753.0A CN102662811B (zh) | 2012-03-31 | 2012-03-31 | 一种实现对51软核在线应用代码调试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210092753.0A CN102662811B (zh) | 2012-03-31 | 2012-03-31 | 一种实现对51软核在线应用代码调试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662811A CN102662811A (zh) | 2012-09-12 |
CN102662811B true CN102662811B (zh) | 2014-08-13 |
Family
ID=46772308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210092753.0A Expired - Fee Related CN102662811B (zh) | 2012-03-31 | 2012-03-31 | 一种实现对51软核在线应用代码调试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662811B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104049995B (zh) * | 2014-05-23 | 2017-06-16 | 北京兆易创新科技股份有限公司 | 在mcu芯片中配置fpga的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN101963934A (zh) * | 2010-10-27 | 2011-02-02 | 山东大学 | 一种基于8051核的片上系统的在线调试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1185570A (ja) * | 1997-09-05 | 1999-03-30 | Nec Corp | オンライン送受信データデバッグ方式 |
-
2012
- 2012-03-31 CN CN201210092753.0A patent/CN102662811B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN101963934A (zh) * | 2010-10-27 | 2011-02-02 | 山东大学 | 一种基于8051核的片上系统的在线调试方法 |
Non-Patent Citations (4)
Title |
---|
KeilMonitor- 51技术的研究与电路设计;程焱,王华奎;《安徽电气工程职业技术学院学报》;20060331;第十一卷(第一期);88-92 * |
串行通信接口实现MC8051软核在线编程;陈明义, 李彬;《电子科技》;20090630;第22卷(第6期);29-32 * |
程焱,王华奎.KeilMonitor- 51技术的研究与电路设计.《安徽电气工程职业技术学院学报》.2006,第十一卷(第一期),29-32. |
陈明义, 李彬.串行通信接口实现MC8051软核在线编程.《电子科技》.2009,第22卷(第6期),29-32. |
Also Published As
Publication number | Publication date |
---|---|
CN102662811A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340693B2 (en) | System for designing re-programmable digital hardware platforms | |
Yiu | The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors | |
Flynn | AMBA: enabling reusable on-chip designs | |
CN101344899B (zh) | 一种片上系统的仿真测试方法及仿真测试系统 | |
US20220292248A1 (en) | Method, system and verifying platform for system on chip verification | |
CN102521444A (zh) | 软硬件协同仿真/验证方法及装置 | |
CN106293807A (zh) | 一种基于DSP的Flash芯片引导加载方法 | |
WO2018018978A1 (zh) | 一种通用串行总线控制器验证方法、系统及设备 | |
CN101004707A (zh) | 一种嵌入式软件调试装置及其调试实现方法 | |
GRLIB | GRLIB IP Library User's Manual | |
Whatmough et al. | CHIPKIT: An agile, reusable open-source framework for rapid test chip development | |
Wang et al. | Modeling and integration of peripheral devices in embedded systems | |
CN102147831A (zh) | 逻辑验证方法和装置 | |
CN102662811B (zh) | 一种实现对51软核在线应用代码调试的方法 | |
Kang et al. | A design and test technique for embedded software | |
CN107967236A (zh) | 一种基于MPC7410处理器的VxWorks系统板及其软件设计方法 | |
Korbel et al. | Interesting applications of Atmel AVR microcontrollers | |
CN109471661B (zh) | 一种嵌入式板卡及驱动自动生成方法 | |
Willems et al. | Virtual prototypes for software-dominated communication system designs | |
CN105243040A (zh) | 一种基于PCIe总线支持USBTMC协议的仪器程控系统及方法 | |
US20230289500A1 (en) | Method and system for building hardware images from heterogeneous designs for eletronic systems | |
Saji et al. | Test suite for SoC interconnect verification | |
Wagner et al. | Hardware/software IP integration using the ROSES design environment | |
Gerstlauer et al. | System-on-chip component models | |
Pasternak et al. | In-circuit-emulation in ASIC architectural core designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140813 Termination date: 20190331 |