国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種8051軟核的用戶程序在線調(diào)試方法

2014-05-17 01:34蒲曉蓉
實(shí)驗(yàn)室研究與探索 2014年3期
關(guān)鍵詞:串口代碼調(diào)試

唐 續(xù), 王 嘉, 蒲曉蓉

(電子科技大學(xué) a.電子工程學(xué)院;b.英才實(shí)驗(yàn)學(xué)院,四川成都 611731)

0 引言

8051及其兼容的單片機(jī)是目前最普及的8位單片機(jī),在我校國家級(jí)實(shí)驗(yàn)教學(xué)示范中心及其它高校實(shí)踐教學(xué)中被廣泛采用[1-6]。隨著現(xiàn)場可編程門陣列(FPGA)及EDA技術(shù)的發(fā)展,微處理器(MCU)有了新的應(yīng)用形式——IP核,也出現(xiàn)了多種針對(duì)8051 MCU的軟核,如DW8051核,OC8051核、T51核及MC805l核等[7-8]。這些MCU軟核促進(jìn)了各種嵌入式系統(tǒng)和片上可編程系統(tǒng)(SOPC)的應(yīng)用[9-11]。

本文提出一種對(duì)8051 MCU軟核中應(yīng)用程序在線調(diào)試的方法,以期促進(jìn)EDA、單片機(jī)和SOPC綜合實(shí)踐教學(xué)的改革。

1 8051軟核的現(xiàn)有應(yīng)用方法

當(dāng)前,8051軟核的應(yīng)用開發(fā)流程一般如圖1所示:使用 Keil μVision[12]等常用單片機(jī)開發(fā)平臺(tái)編寫應(yīng)用程序并離線初步調(diào)試。之后編譯生成hex格式的目標(biāo)文件,并將其轉(zhuǎn)換為FPGA的ROM初始化文件格式。然后執(zhí)行FPGA開發(fā)平臺(tái)上的項(xiàng)目流程,生成FPGA配置數(shù)據(jù),經(jīng)JTAG接口下載到FPGA目標(biāo)板,作上電驗(yàn)證。若結(jié)果與設(shè)計(jì)不符,將重新執(zhí)行所有流程。

圖1 51軟核應(yīng)用的開發(fā)流程

不難看出,該流程需在單片機(jī)和FPGA兩類開發(fā)平臺(tái)上切換。而實(shí)際應(yīng)用開發(fā)中,特別是實(shí)踐教學(xué)中,應(yīng)用程序往往需多次修改,使得多次反復(fù)執(zhí)行上述流程,相當(dāng)費(fèi)時(shí)。這嚴(yán)重制約了8051軟核在實(shí)踐教學(xué)和學(xué)生科技活動(dòng)(如電子設(shè)計(jì)競賽)中的運(yùn)用。

為此,文獻(xiàn)[13]提出一種在PC機(jī)上修改和編譯單片機(jī)應(yīng)用程序,再通過RS232串口將目標(biāo)代碼下載到FPGA的程序存儲(chǔ)器中的方法。它省去了FPGA項(xiàng)目流程部分的工作量,但程序編制和修改仍然是離線的,未能實(shí)現(xiàn)在目標(biāo)板上對(duì)應(yīng)用作在線仿真調(diào)試。

下文以MC8051軟核[14]為例,介紹一種基于在線仿真調(diào)試工具M(jìn)onitor-51[12],對(duì)軟核中應(yīng)用程序作在線調(diào)試的方法。

2 MC8051軟核介紹

MC8051是Oregano Systems公司提供的8051 MCU軟核。它提供VHDL語言設(shè)計(jì)源代碼,可配合各種設(shè)計(jì)平臺(tái)進(jìn)行綜合實(shí)現(xiàn)??筛鶕?jù)實(shí)際應(yīng)用需求進(jìn)行配置。非常適合SOPC應(yīng)用設(shè)計(jì)和實(shí)踐教學(xué)[15]。

2.1 MC8051 特點(diǎn)

采用全同步設(shè)計(jì),指令集和標(biāo)準(zhǔn)8051單片機(jī)全兼容。指令執(zhí)行時(shí)間為1~4個(gè)時(shí)鐘周期,性能優(yōu)于標(biāo)準(zhǔn)8051單片機(jī)8倍左右。用戶可選定時(shí)/計(jì)數(shù)器和串行接口單元的數(shù)量;可選是否提供乘法(指令MUL)、除法(指令DIV)以及十進(jìn)制調(diào)整(指令DA)功能;I/O口不復(fù)用以便于靈活定制;帶256 B的內(nèi)部RAM;最多可擴(kuò)展至64KB的ROM和64KB的外部RAM。

2.2 MC8051 組成結(jié)構(gòu)

圖2 MC8051組成結(jié)構(gòu)

MC8051的組成結(jié)構(gòu)如圖2所示。頂層MC8051_top包括處理器核心MC8051_core和三個(gè)存儲(chǔ)模塊:內(nèi)部存儲(chǔ)模塊MC8051_ram、外部代碼存儲(chǔ)模塊MC8051_rom和外部數(shù)據(jù)存儲(chǔ)模塊MC8051_ramx。存儲(chǔ)模塊處于設(shè)計(jì)的頂層而不包括于核心內(nèi),可便于不同F(xiàn)PGA平臺(tái)的仿真及應(yīng)用設(shè)計(jì)。處理器核心MC8051_core由定時(shí)/計(jì)數(shù)器MC8051_tmrctr、算術(shù)邏輯運(yùn)算單元MC8051_alu、串行接口MC8051_siu和控制單元等模塊組成。定時(shí)/計(jì)數(shù)器和串行接口單元的數(shù)量N可調(diào)。圖2中還給出了頂層的I/O接口。

3 Monitor-51介紹

Monitor-51是Keil μVision自帶的一種利用PC機(jī)與51單片機(jī)串口通信的侵入式在線調(diào)試工具[12]。該工具在單片機(jī)系統(tǒng)的應(yīng)用開發(fā)和教學(xué)中被廣泛使用。

基于Monitor-51的調(diào)試方法對(duì)硬件有以下要求:

●硬件系統(tǒng)為51系列MCU。

●5KB外部程序存儲(chǔ)器,存Monitor-51監(jiān)控程序。

●256 B外部數(shù)據(jù)存儲(chǔ)器,存監(jiān)控?cái)?shù)據(jù);

東莞理工學(xué)院理工科學(xué)生數(shù)學(xué)課程歷年成績分析 劉群鋒,姚嘉茹,趙子瑛,尹燕君,李健儀,徐珍樹,白樂(100)

●外部數(shù)據(jù)存儲(chǔ)器總?cè)萘勘仨氉銐蛉菁{所有應(yīng)用程序代碼及數(shù)據(jù),且必須為馮·諾伊曼存儲(chǔ)結(jié)構(gòu),即能統(tǒng)一尋址外部數(shù)據(jù)空間與代碼空間,以實(shí)現(xiàn)載入執(zhí)行和修改用戶代碼的功能。

●占用一個(gè)定時(shí)器作為串口波特率發(fā)生器。

●6 B的空余堆棧。

標(biāo)準(zhǔn)51單片機(jī)采用的是代碼空間和數(shù)據(jù)空間相互獨(dú)立的哈佛存儲(chǔ)結(jié)構(gòu)。為獲得馮·諾伊曼存儲(chǔ)結(jié)構(gòu),標(biāo)準(zhǔn)做法如圖3所示,把目標(biāo)單片機(jī)的PSEN引腳和RD引腳取邏輯“與”,再接外部存儲(chǔ)器的OE端,從而合并了外部程序空間和外部數(shù)據(jù)空間。由此,PC機(jī)端運(yùn)行于Keil μVision集成開發(fā)環(huán)境(IDE)的應(yīng)用程序和調(diào)試信息,通過Monitor-51驅(qū)動(dòng)程序,經(jīng)RS-232接口傳送給目標(biāo)板上的51單片機(jī),由Monitor-51監(jiān)控程序分析處理并反饋回PC機(jī),實(shí)現(xiàn)單步、全速和斷點(diǎn)等方式執(zhí)行,并能觀察各變量和寄存器的值。

圖3 Monitor-51調(diào)試51單片機(jī)系統(tǒng)的電路結(jié)構(gòu)

4 MC8051核中應(yīng)用程序在線調(diào)試方法

下面提出利用Monitor-51工具,通過標(biāo)準(zhǔn)串口對(duì)定制于FPGA中的51軟核的用戶程序進(jìn)行在線調(diào)試的方法。該方法工作原理如圖4所示,和Monitor-51標(biāo)準(zhǔn)用法相似。實(shí)現(xiàn)該方法的步驟包括Monitor-51配置和51軟核定制兩部分。

4.1 Monitor-51監(jiān)控程序定制

如圖4所示,Monitor-51需駐留一段監(jiān)控程序代碼在目標(biāo)系統(tǒng)的存儲(chǔ)空間。為能使該監(jiān)控程序根據(jù)不同目標(biāo)系統(tǒng)而定制,Keil軟件提供兩部分文件:INSTALL.A51和 MON51.DLL(與生成監(jiān)控程序相關(guān)的文件均位于Keil軟件安裝路徑下的C51MON51目錄中)。其中MON51.DLL為完成 Monitor-51所有功能的庫文件,INSTALL.A51則以51匯編源代碼的形式提供了定制的接口。最終的目標(biāo)代碼(hex格式)通過參數(shù)化腳本文件INSTALL.BAT編譯生成。

圖4 51軟核中用戶程序在線調(diào)試原理示意

這里,目標(biāo)系統(tǒng)是MC8051核,需定制的內(nèi)容有:

(2)配置單片機(jī)的外部存儲(chǔ)空間。本方法為用戶提供直接的零地址仿真調(diào)試方式[16],使用戶程序不做特別更改就能開展仿真調(diào)試。為此,對(duì)MC8051軟核的外部存儲(chǔ)空間,從零地址開始,依次分配給用戶程序、用戶數(shù)據(jù)、Monitor-51監(jiān)視程序和監(jiān)視程序外部數(shù)據(jù)。

4.2 支持Monitor-51的MC8051核定制

(1)定制馮·諾依曼存儲(chǔ)結(jié)構(gòu)。MC8051軟核也采用哈佛存儲(chǔ)結(jié)構(gòu)。為使用Monitor-51,需要合并其代碼空間與外部數(shù)據(jù)空間,定制成馮·諾依曼存儲(chǔ)結(jié)構(gòu)。具體來說,即是去掉圖2中的MC8051_rom空間,只設(shè)一個(gè)代碼和用戶數(shù)據(jù)統(tǒng)一編址的可讀可寫的MC8051_ramx空間。但由于MC8051沒有提供標(biāo)準(zhǔn)8051單片機(jī)的PSEN和RD信號(hào),不能直接套用已有的合并方式。需要修改MC8051_core相關(guān)代碼來定制。

通過分析MC8051的源代碼得知,MC8051_core內(nèi)部具有獨(dú)立的代碼空間地址總線和數(shù)據(jù)空間地址總線。定制的工作可歸結(jié)為把MC8051_core內(nèi)部總線與外部數(shù)據(jù)空間MC8051_ramx的地址總線和數(shù)據(jù)總線分別重新連接,形成和圖3中等效的統(tǒng)一尋址效果。

為此,在MC8051_core外添加一個(gè)兩路復(fù)用器,其輸入端分別接代碼空間地址總線信號(hào)rom_adr_o和外部數(shù)據(jù)空間地址總線信號(hào)adrx_o。復(fù)用器的選擇信號(hào)由MC8051核中指示當(dāng)前存儲(chǔ)器訪問類型(為代碼空間訪問或數(shù)據(jù)空間訪問)的信號(hào)s_adrx_mux提供。這使得MC8051對(duì)代碼空間或?qū)?shù)據(jù)空間各自的訪問都實(shí)質(zhì)上是對(duì)單一的MC8051_ramx塊的訪問。

而對(duì)于數(shù)據(jù)總線,這里只需將MC8051_ramx的數(shù)據(jù)線在保持與原內(nèi)部數(shù)據(jù)總線連接的同時(shí),也連接至代碼空間訪問的內(nèi)部數(shù)據(jù)總線。這樣,實(shí)際的傳送操作將由MC8051_core對(duì)各指令譯碼來判斷完成。定制MC8051核的電路原理如圖5所示。

圖5 定制MC8051的馮·諾依曼存儲(chǔ)結(jié)構(gòu)

(2)增加定時(shí)器。串口將占用一個(gè)定時(shí)器作為其波特率發(fā)生器。為給用戶提供完整的51單片機(jī)功能,修改mc8051_p.vhd文件中如圖6的配置代碼,可方便地補(bǔ)充一組定時(shí)器。

圖6 設(shè)置定時(shí)器數(shù)量為2的代碼

(3)修改復(fù)位向量。我們知道,Monitor-51工作方式下,單片機(jī)復(fù)位后需首先進(jìn)入Monitor-51監(jiān)控程序,這就要求把單片機(jī)標(biāo)準(zhǔn)的復(fù)位向量(零地址)修改為監(jiān)控代碼首地址:修改control_mem_rtl.vhd文件中pc< =conv_unsigned(0,16)為 pc< =conv_unsigned(10240,16),其中10240為監(jiān)控代碼的首地址。

4.3 可在線調(diào)試的MC8051核生成

以基于 Xilinx的 FPGA實(shí)驗(yàn)教學(xué)平臺(tái)(采用Spartan3E系列芯片XC3S250-144)為例,給出可在線調(diào)試的MC8051核生成步驟如下:

(1)通過配置INSTALL.A51,添加定時(shí)器,設(shè)置監(jiān)控串口波特率9600bps;執(zhí)行INSTALL.BAT,設(shè)置監(jiān)控程序首地址為0x2800,監(jiān)控程序的外部數(shù)據(jù)空間首地址為0x3F00,并編譯生成mon51.hex目標(biāo)文件。

(2)為能加載mon51.hex文件,通過 HEX_BIN.exe和 CoeGenerator.exe將 mon51.hex文件轉(zhuǎn)換為Xilinx FPGA中塊RAM的初始化數(shù)據(jù)文件MON51.coe(兩個(gè)小軟件使用簡單,不作贅述)。

(3)MC8051核中的內(nèi)部MC8051_ram及MC8051_ramx采用FPGA的塊RAM核實(shí)現(xiàn)。先建立ISE項(xiàng)目,再調(diào)用其IP核庫的Block Memory Generator(內(nèi)存塊生成工具)來實(shí)現(xiàn)。其中MC8051_ramx生成時(shí),以MON51.coe為其初始化數(shù)據(jù)文件。

(4)根據(jù)4.2小節(jié),定制MC8051_core。

(5)根據(jù)實(shí)驗(yàn)板時(shí)鐘,生成FPGA內(nèi)的時(shí)鐘模塊(DCM)為MC8051核提供工作時(shí)鐘為18 MHz。

(6)在一個(gè)ISE項(xiàng)目中,將生成的DCM模塊、MC8051_ram、MC8051_ramx和 MC8051_core等部分,添加管腳約束ucf文件,進(jìn)行綜合和布局布線,最后生成包含MC8051核的FPGA配置文件(.bit文件)。

(7)用JTAG接口下載.bit文件到FPGA。

至此,該FPGA平臺(tái)上建立了一個(gè)可在線調(diào)試8051單片機(jī)的程序。在實(shí)際的實(shí)驗(yàn)教學(xué)中,可進(jìn)一步形成更加標(biāo)準(zhǔn)的引腳封裝,如圖7所示。這樣,學(xué)生可方便地配合平臺(tái)外設(shè),開展各單片機(jī)實(shí)驗(yàn)項(xiàng)目。

圖7 MC8051封裝

4.4 在線調(diào)試應(yīng)用舉例

以MC8051單片機(jī)P0口驅(qū)動(dòng)8個(gè)LED的流水燈實(shí)驗(yàn)為例。中間還設(shè)置了一個(gè)除法運(yùn)算,驗(yàn)證18MHz主頻下除法功能的正常運(yùn)行。應(yīng)用Keil μVision4對(duì)其在線調(diào)試的過程如下:

(1)μVision2設(shè)置。新建工程,在工程中可選擇目標(biāo)器件為標(biāo)準(zhǔn)8051單片機(jī),如Atmel->89C51,再進(jìn)行options設(shè)置。在其中的“Debug”欄中選用“Keil Monitor-51 Driver”,并設(shè)置串口“Baudrate”為9600。

(2)調(diào)試界面。在項(xiàng)目中創(chuàng)建C51源程序文件,成功編譯后,點(diǎn)擊工具條中圖標(biāo)進(jìn)入調(diào)試界面。其中,單片機(jī)的內(nèi)部寄存器、各局部變量和觀察窗口中的變量都在線可見。所有程序修改和調(diào)試都只需PC端的操作,無需對(duì)FPGA及其中的51軟核作重配置。

5 結(jié)語

本文提出基于Monitor-51和MC8051軟核定制,實(shí)現(xiàn)在FPGA平臺(tái)中在線調(diào)試單片機(jī)應(yīng)用程序的方法。該方法有效解決了當(dāng)前8051軟核在單片機(jī)實(shí)驗(yàn)、EDA實(shí)驗(yàn)和SOPC實(shí)驗(yàn)等實(shí)踐教學(xué)中運(yùn)用的瓶頸問題,為三者的融合提供了可能,有力地支撐了本校電子技術(shù)綜合實(shí)踐教學(xué)的改革,也期望對(duì)其他高校的相關(guān)工作有所幫助。

[1]李 穎,習(xí)友寶.實(shí)驗(yàn)教學(xué)示范中心實(shí)驗(yàn)室運(yùn)行機(jī)制與管理模式的探索與實(shí)踐[J].實(shí)驗(yàn)室研究與探索,2009,28(4):88-90.

LI Yin,XI You-bao.Exploration and Practice on the Operational and Managerial Mode of Experimental Center[J]. Research and Exploration in Laboratory,2009,28(4):88-90.

[2]余 魅,習(xí)友寶.建設(shè)國家級(jí)實(shí)驗(yàn)教學(xué)示范中心構(gòu)建創(chuàng)新人才培養(yǎng)平臺(tái)[J].實(shí)驗(yàn)技術(shù)與管理,2006,23(12):10-11.

YU Mei,XI You-bao.Constructing a National Representative Center of Laboratory Education,and Building a Platform for Training Creative Students[J].Experimental Technology and Management,2006,23(12):10-11.

[3]陳學(xué)英.電子技術(shù)綜合實(shí)驗(yàn)教學(xué)方法研究與實(shí)踐[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011,9(2):127-130.

CHENG Xue-ying.Teaching Methods Research and Practice on Electronic Technique Comprehensive Experiments[J].Experiment Science and Technology,2011,9(2):127-130.

[4]劉京銳,袁惠梅,王 瑩,等.MCU應(yīng)用系統(tǒng)實(shí)驗(yàn)教學(xué)裝置設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(8):71-74.

LIU Jing-rui,YUAN Hui-mei,WANG Ying,et al.The Projection and Achievement of Practical Teaching Devices of MCU Application System[J].Experimental Technology and Management,2010,27(8):71-74.

[5]宋蘊(yùn)璞,周文泳,徐鳴謙,等.高校單片機(jī)教學(xué)實(shí)驗(yàn)設(shè)備與方式探討[J].實(shí)驗(yàn)室研究與探索,2009,28(11):6-9.

SONG Yun-pu,ZHOU Wen-yong,XU Ming-qian,et al.Exploration on the Ways and Facilities of Single-Chip Computer Experiment in Universities[J].Research and Exploration in Laboratory,2009,28(11):6-9.

[6]萬光毅,嚴(yán)義.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2005:149-258.

[7]王 瑞,游志宇,杜 楊,等.MC8051單片機(jī) IP核的FPGA實(shí)現(xiàn)與應(yīng)用[J].電子設(shè)計(jì)工程,2009,17(1):57-60.

WANG Rui,YIU Zhi-yu,DU Yang,et al.FPGA Implementation and Application of MC8051 MCU IP Core[J].Electronic Design Engineering,2009,17(1):57-60.

[8]徐 慧,王金海,王 巍.基于FPGA的8051 IP核的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(3):42-45.

XU Hui,WANG Jin-hai,WANG Wei.Design and Implementation of 8051 IP Core Based on FPGA[J].Computer Technology and Development,2009,19(3):42-45.

[9]丁 昊,莊貴敏,宋 杰,等.基于MC8051內(nèi)核的便攜幅頻特性測試儀設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2011,37(4):29-32.

DING Hao,ZHUANG Gui-min,SONG Jie.Design of Portable Frequency Characteristics Test Instrument Based on MC8051 IP Core[J].Application of Electronic Technique,2011,37(4):29-32.

[10]潘明方,李慧軍.基于MC8051軟核的星載智能1394終端[J].微計(jì)算機(jī)信息,2007,23(6):193-195.

PAN Min-fang,LI Hun-jun.On-board Intellectual 1394 Terminal Based on MC8051 IP[J].2007,23(6):193-195.Control&Automation,2007,23(6):193-195.

[11]羅侄敬.在嵌入FPGA的IP核8051上實(shí)現(xiàn)TCP/IP的設(shè)計(jì)[J].電子元器件應(yīng)用,2007,9(4):44-46.LUO Zhi-jing.Implementation of TCP/IP for 8051 core in FPGA[J].Electonic Component& Device Applications,2007,9(4):44-46.

[12]尹 勇.μVision2單片機(jī)應(yīng)用程序開發(fā)指南[M].北京:科學(xué)出版社,2005.3,300-306.

[13]陳明義,李 彬.串行通信接口實(shí)現(xiàn)MC8051軟核在線編程[J].電子科技,2009,22(6):29-32.

CHEN Ming-yi,LI Bin.Implementation of MC8051 Soft-core Insystem Programming Using the Serial Communications Interface[J].Electronic Science and Technology,2009,22(6):29-32.

[14]MC8051 IP CoreUserGuide [EB/OL]. http://www.oreganosystems.at/?page_id=96.[2012-7-1].

[15]高 昀.EDA技術(shù)在教學(xué)實(shí)踐中的研究與應(yīng)用[D].成都:電子科技大學(xué),2009.

[16]陳興文,劉 燕.基于KEIL 51的單片機(jī)開發(fā)系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,21(5):112-113.

CHEN Xing-wen,LIU Yan The Design of MCU Development System Based on KEIL 51[J].Control& Automation,2005,21(5):112-113.

猜你喜歡
串口代碼調(diào)試
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
基于航拍無人機(jī)的設(shè)計(jì)與調(diào)試
FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
數(shù)字電源內(nèi)部數(shù)據(jù)傳輸?shù)拇谕ㄐ欧椒▽?shí)現(xiàn)
USB接口的多串口數(shù)據(jù)并行接收方法探索