劉 斌,劉春茂,尹社會(huì)
(河南工業(yè)職業(yè)技術(shù)學(xué)院,河南 南陽 473000)
?
單片機(jī)C語言仿真調(diào)試系統(tǒng)研究
劉斌,劉春茂,尹社會(huì)
(河南工業(yè)職業(yè)技術(shù)學(xué)院,河南南陽473000)
摘要:目前國內(nèi)單片機(jī)實(shí)驗(yàn)系統(tǒng)絕大部分采用的是專用硬件仿真器,專用硬件仿真器約占單片機(jī)實(shí)驗(yàn)系統(tǒng)總體成本的20%~40%,如果單片機(jī)加入在線仿真技術(shù),將大幅度地降低產(chǎn)品的采購和維護(hù)成本,非常有利于單片機(jī)技術(shù)在國內(nèi)的普及。文章開發(fā)以MC68HC9008系列MCU為載體的片內(nèi)監(jiān)控的基于C語言的在線仿真技術(shù)就具有尤為重要的意義。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);MCU;Bootloader
MCU,即微控制器,又稱單片機(jī)。MCU沒有自開發(fā)能力,必須借助MCU開發(fā)系統(tǒng)進(jìn)行軟件的編寫、開發(fā),以及對(duì)電路功能進(jìn)行檢測(cè)和調(diào)試。
基于芯片內(nèi)監(jiān)控的在線仿真技術(shù)僅依靠MCU內(nèi)植入的特殊監(jiān)控代碼就可以實(shí)現(xiàn)專用硬件仿真器的大部分仿真功能,成為當(dāng)前研究的熱點(diǎn)。相關(guān)研究表明,采用基于芯片內(nèi)監(jiān)控的在線仿真系統(tǒng)可以以專用硬件仿真20%的成本,實(shí)現(xiàn)其80%以上的功能,而且由于片內(nèi)監(jiān)控方式不需要添加任何仿真硬件,所以可靠性較高,不需要進(jìn)行后續(xù)維護(hù)。目前國內(nèi)單片機(jī)實(shí)驗(yàn)系統(tǒng)絕大部分采用的是專用硬件仿真器,專用硬件仿真器約占單片機(jī)實(shí)驗(yàn)系統(tǒng)總體成本的20%~40%,如果單片機(jī)加入在線仿真技術(shù),將大幅度地降低產(chǎn)品的采購和維護(hù)成本,非常有利于單片機(jī)技術(shù)在國內(nèi)的普及。Freescale公司的8位MCU具有高性能以及低功耗的特點(diǎn)。正是它的這些特性,使其在相應(yīng)需求的電子產(chǎn)品中占有很大的應(yīng)用市場(chǎng)。到目前為止已推出217種不同的產(chǎn)品。所以綜上所述,研究開發(fā)以MC68HC9008系列MCU為載體的片內(nèi)監(jiān)控的基于C語言的在線仿真技術(shù)就具有尤為重要的意義。
(1)采用芯片內(nèi)駐留的監(jiān)控程序提供MCU程序單步、斷點(diǎn)、全速運(yùn)行控制功能,存儲(chǔ)器、寄存器讀寫和代碼下載能力,不需要任何附加的硬件設(shè)備。這種調(diào)試器/ROM監(jiān)控程序方式為代碼開發(fā)、調(diào)試提供了功能強(qiáng)大而低價(jià)的解決方案。(2)用戶可以對(duì)自編程序進(jìn)行100%的在線仿真與監(jiān)測(cè)。(3)在線仿真系統(tǒng)可與第三方IDE軟件(Code Warrior)接口,可實(shí)現(xiàn)對(duì)C/C++、匯編等多種開發(fā)語言的支持。
為了兼顧MCU的在線仿真開發(fā)及正常運(yùn)行的要求,MCU設(shè)計(jì)為可以工作在2種模式:用戶模式和監(jiān)控模式。用戶模式是指加電復(fù)位后,轉(zhuǎn)向復(fù)位矢量所指向的地址,執(zhí)行MCU中的用戶程序。監(jiān)控模式是指加電復(fù)位以后,執(zhí)行監(jiān)控ROM里面的程序,并通過接口實(shí)現(xiàn)半雙工通信,為連接主機(jī)提供服務(wù),主機(jī)通過串行口給從機(jī)發(fā)送監(jiān)控指令,從機(jī)接收指令后通過執(zhí)行Flash中的監(jiān)控程序?qū)ξ⒖刂破鲀?nèi)部地址進(jìn)行讀取、寫入、程序運(yùn)行控制等基本操作。要進(jìn)入監(jiān)控模式,在復(fù)位時(shí)有幾個(gè)特定的通用引腳必須處于某種特定的狀態(tài),并且還需要在引腳上提供一高電壓。一旦條件滿足,F(xiàn)LASH中的監(jiān)控程序?qū)?huì)取代應(yīng)用程序而被執(zhí)行。
MCU不同工作模式的進(jìn)入需要由BootLoader程序引導(dǎo)完成。BootLoader是位于MCU引導(dǎo)區(qū)固件中的一段代碼,當(dāng)系統(tǒng)復(fù)位時(shí)它首先加載到RAM中執(zhí)行。在監(jiān)控程序?qū)懭氲叫酒瑑?nèi)部之后,在上電復(fù)位時(shí)BootLoader通過判斷ROM保護(hù)字節(jié)及引腳IRQ的電平?jīng)Q定是進(jìn)入用戶模式還是監(jiān)控模式。BootLoader的整體流程如圖1所示。
圖1 BootLoader的整體流程
如果選擇用戶模式,BootLoader引導(dǎo)MCU取指機(jī)構(gòu)直接跳轉(zhuǎn)到FLASH中用戶程序區(qū)首址取指執(zhí)行。如果正常則寫入用戶預(yù)置的工作參數(shù)。完成上述工作后,還要對(duì)上位機(jī)發(fā)送過來的安全字符串進(jìn)行驗(yàn)證。在監(jiān)控模式下,監(jiān)控程序執(zhí)行上位機(jī)指令可以對(duì)芯片進(jìn)行任意的讀寫及運(yùn)行控制,從而實(shí)現(xiàn)在線仿真調(diào)試功能。
綜合以上分析,寫入BootLoader的FLASH存儲(chǔ)器的最后80BYTES中的許多高地址字節(jié)是被用來存放復(fù)位和中斷矢量的,還有一部分是為特殊目的而保留的。$FFBE是FLBPR寄存器,用于存放塊保護(hù)的地址。當(dāng)進(jìn)入監(jiān)控程序以后由于這80BYTES是被保護(hù)起來的,既不能寫入,也不能被擦除,但是可以通過程序提供的轉(zhuǎn)向矢量來來完成中斷。也就是當(dāng)運(yùn)行監(jiān)控模式的時(shí)候,程序已經(jīng)寫入了中斷向量的地址,用戶只需用程序提供的中斷向量代替原來的中斷向量即可。
基于芯片內(nèi)監(jiān)控的C語言在線仿真技術(shù)可以省掉復(fù)雜、昂貴的專用仿真器硬件,可以在專用仿真器20%成本的基礎(chǔ)上實(shí)現(xiàn)其80%以上的功能。專用仿真器比較復(fù)雜,可靠較差,很容易出現(xiàn)損壞,影響實(shí)驗(yàn)設(shè)備完好率,后續(xù)的維護(hù)成本比較高。使用基于芯片內(nèi)監(jiān)控的實(shí)驗(yàn)系統(tǒng)后,除了芯片和實(shí)驗(yàn)資源硬件平臺(tái),不需其他仿真硬件,系統(tǒng)整體的可靠性較高,節(jié)省大量時(shí)間和經(jīng)費(fèi)。如果按仿真設(shè)備的年損壞率為10%計(jì),每年累計(jì)將可節(jié)省約1200多套設(shè)備的更新成本120萬元左右。如果再加上其他社會(huì)渠道(公司、研究機(jī)構(gòu)等)的單片機(jī)實(shí)驗(yàn)系統(tǒng)設(shè)備的采購和維護(hù)需求,將會(huì)有更加可觀的經(jīng)濟(jì)效益。
[參考文獻(xiàn)]
[1]張培仁,張志堅(jiān),高修峰.十六位單片微處理器原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005.
[2]薛鈞義.凌陽十六位單片機(jī)原理及應(yīng)用[M].北京:北京航天航空大學(xué)出版社,2003.
[3]王慶利,劉奎,袁建敏.單片機(jī)設(shè)計(jì)標(biāo)準(zhǔn)教程[M].北京:北京郵電大學(xué)出版社,2008
Research on Simulation and Debugging System of Single Chip Microcomputer C Language
Liu Bin, Liu Chunmao, Yin Shehui
(Henan Polytechnic Institute, Nanyang473000, China)
Abstract:The current domestic microcontroller experimental system of most of the dedicated hardware simulator, dedicated hardware simulator accounts for about 20% to 40% of the total cost of SCM experimental system, if the microcontroller to join the online simulation technology, greatly reduce product procurement and maintenance, is very conducive to the popularization of the SCM technology in the domestic. Research and development of MC68HC9008 series MCU as the carrier of the on-chip monitoring of online simulation technology based on C language is of great signifcance.
Key words:single chip microcomputer; MCU; Bootloader
作者簡(jiǎn)介:劉斌(1982-),男,河南南陽,碩士,助教;研究方向:自動(dòng)控制。