劉 斌,劉春茂,尹社會
(河南工業職業技術學院,河南 南陽 473000)
?
單片機C語言仿真調試系統研究
劉斌,劉春茂,尹社會
(河南工業職業技術學院,河南南陽473000)
摘要:目前國內單片機實驗系統絕大部分采用的是專用硬件仿真器,專用硬件仿真器約占單片機實驗系統總體成本的20%~40%,如果單片機加入在線仿真技術,將大幅度地降低產品的采購和維護成本,非常有利于單片機技術在國內的普及。文章開發以MC68HC9008系列MCU為載體的片內監控的基于C語言的在線仿真技術就具有尤為重要的意義。
關鍵詞:單片機;MCU;Bootloader
MCU,即微控制器,又稱單片機。MCU沒有自開發能力,必須借助MCU開發系統進行軟件的編寫、開發,以及對電路功能進行檢測和調試。
基于芯片內監控的在線仿真技術僅依靠MCU內植入的特殊監控代碼就可以實現專用硬件仿真器的大部分仿真功能,成為當前研究的熱點。相關研究表明,采用基于芯片內監控的在線仿真系統可以以專用硬件仿真20%的成本,實現其80%以上的功能,而且由于片內監控方式不需要添加任何仿真硬件,所以可靠性較高,不需要進行后續維護。目前國內單片機實驗系統絕大部分采用的是專用硬件仿真器,專用硬件仿真器約占單片機實驗系統總體成本的20%~40%,如果單片機加入在線仿真技術,將大幅度地降低產品的采購和維護成本,非常有利于單片機技術在國內的普及。Freescale公司的8位MCU具有高性能以及低功耗的特點。正是它的這些特性,使其在相應需求的電子產品中占有很大的應用市場。到目前為止已推出217種不同的產品。所以綜上所述,研究開發以MC68HC9008系列MCU為載體的片內監控的基于C語言的在線仿真技術就具有尤為重要的意義。
(1)采用芯片內駐留的監控程序提供MCU程序單步、斷點、全速運行控制功能,存儲器、寄存器讀寫和代碼下載能力,不需要任何附加的硬件設備。這種調試器/ROM監控程序方式為代碼開發、調試提供了功能強大而低價的解決方案。(2)用戶可以對自編程序進行100%的在線仿真與監測。(3)在線仿真系統可與第三方IDE軟件(Code Warrior)接口,可實現對C/C++、匯編等多種開發語言的支持。
為了兼顧MCU的在線仿真開發及正常運行的要求,MCU設計為可以工作在2種模式:用戶模式和監控模式。用戶模式是指加電復位后,轉向復位矢量所指向的地址,執行MCU中的用戶程序。監控模式是指加電復位以后,執行監控ROM里面的程序,并通過接口實現半雙工通信,為連接主機提供服務,主機通過串行口給從機發送監控指令,從機接收指令后通過執行Flash中的監控程序對微控制器內部地址進行讀取、寫入、程序運行控制等基本操作。要進入監控模式,在復位時有幾個特定的通用引腳必須處于某種特定的狀態,并且還需要在引腳上提供一高電壓。一旦條件滿足,FLASH中的監控程序將會取代應用程序而被執行。
MCU不同工作模式的進入需要由BootLoader程序引導完成。BootLoader是位于MCU引導區固件中的一段代碼,當系統復位時它首先加載到RAM中執行。在監控程序寫入到芯片內部之后,在上電復位時BootLoader通過判斷ROM保護字節及引腳IRQ的電平決定是進入用戶模式還是監控模式。BootLoader的整體流程如圖1所示。

圖1 BootLoader的整體流程
如果選擇用戶模式,BootLoader引導MCU取指機構直接跳轉到FLASH中用戶程序區首址取指執行。如果正常則寫入用戶預置的工作參數。完成上述工作后,還要對上位機發送過來的安全字符串進行驗證。在監控模式下,監控程序執行上位機指令可以對芯片進行任意的讀寫及運行控制,從而實現在線仿真調試功能。
綜合以上分析,寫入BootLoader的FLASH存儲器的最后80BYTES中的許多高地址字節是被用來存放復位和中斷矢量的,還有一部分是為特殊目的而保留的。$FFBE是FLBPR寄存器,用于存放塊保護的地址。當進入監控程序以后由于這80BYTES是被保護起來的,既不能寫入,也不能被擦除,但是可以通過程序提供的轉向矢量來來完成中斷。也就是當運行監控模式的時候,程序已經寫入了中斷向量的地址,用戶只需用程序提供的中斷向量代替原來的中斷向量即可。
基于芯片內監控的C語言在線仿真技術可以省掉復雜、昂貴的專用仿真器硬件,可以在專用仿真器20%成本的基礎上實現其80%以上的功能。專用仿真器比較復雜,可靠較差,很容易出現損壞,影響實驗設備完好率,后續的維護成本比較高。使用基于芯片內監控的實驗系統后,除了芯片和實驗資源硬件平臺,不需其他仿真硬件,系統整體的可靠性較高,節省大量時間和經費。如果按仿真設備的年損壞率為10%計,每年累計將可節省約1200多套設備的更新成本120萬元左右。如果再加上其他社會渠道(公司、研究機構等)的單片機實驗系統設備的采購和維護需求,將會有更加可觀的經濟效益。
[參考文獻]
[1]張培仁,張志堅,高修峰.十六位單片微處理器原理及應用[M].北京:清華大學出版社,2005.
[2]薛鈞義.凌陽十六位單片機原理及應用[M].北京:北京航天航空大學出版社,2003.
[3]王慶利,劉奎,袁建敏.單片機設計標準教程[M].北京:北京郵電大學出版社,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
作者簡介:劉斌(1982-),男,河南南陽,碩士,助教;研究方向:自動控制。