新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Freescale+HC08+MCU集成開(kāi)發(fā)環(huán)境的設(shè)計(jì)

Freescale+HC08+MCU集成開(kāi)發(fā)環(huán)境的設(shè)計(jì)

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
1 引言

Freescale(其前身為Motorola半導(dǎo)體部)公司推出的系列MCU,具有單一電源供電、支持在線(xiàn)編程的內(nèi)部Flash。在線(xiàn)寫(xiě)入、讀出穩(wěn)定,為研制新型嵌入式應(yīng)用開(kāi)發(fā)工具提供了技術(shù)基礎(chǔ)。Freescale公司的MCU應(yīng)用非常廣泛,銷(xiāo)量已多年名列前茅,其中HC08系列MCU,功耗低、運(yùn)用靈活.占銷(xiāo)量中的重要部分。開(kāi)發(fā)廉價(jià)且實(shí)用的Freescale HC08系列MCU的編程調(diào)試開(kāi)發(fā)工具對(duì)該系列MCU在我國(guó)的推廣應(yīng)用具有重要價(jià)值。目前市面上能支持HC08的集成開(kāi)發(fā)環(huán)境(IDE).除了CodeWarrior,雖對(duì)HC08系列MCU都支持。但系統(tǒng)龐大,功能復(fù)雜。價(jià)格貴,另外一些高校如清華、復(fù)旦等,只能支持某幾款芯片,對(duì)于有200多款的HC08 MCU,較大局限,使用不便,不利于應(yīng)用開(kāi)發(fā),更不便于教學(xué)實(shí)踐。

本實(shí)驗(yàn)室從1999年開(kāi)始研制集成開(kāi)發(fā)環(huán)境.在分析了各種嵌入式系統(tǒng)集成開(kāi)發(fā)系統(tǒng)后.推出了一種新型的HC08MCU通用型的集成開(kāi)發(fā)環(huán)境.每年不斷進(jìn)行改進(jìn)升級(jí).現(xiàn)已基本成型。本IDE具有結(jié)構(gòu)清晰、操作簡(jiǎn)潔的特點(diǎn).集成了程序編輯、編譯、下載、聯(lián)機(jī)調(diào)試、硬件評(píng)估等功能,有較好的實(shí)用前景。在闡述本IDE的設(shè)計(jì)基礎(chǔ)上,本文簡(jiǎn)要分析了IDE的Pc方軟件主要技術(shù)要點(diǎn)和簡(jiǎn)單介紹了本IDE配套的硬件系統(tǒng)的基本結(jié)構(gòu)。

2 設(shè)計(jì)思路與技術(shù)優(yōu)勢(shì)

對(duì)HC08系列MCU。進(jìn)行深入的研究。經(jīng)過(guò)長(zhǎng)期的實(shí)踐與探索,研制了新型的嵌入式應(yīng)用系統(tǒng)的集成開(kāi)發(fā)環(huán)境。軟件分兩大部分:PC方軟件和MCU方軟件,配套硬件分三大部分:PC機(jī)、寫(xiě)入器(也稱(chēng)調(diào)試器或編程器)和實(shí)驗(yàn)箱(或評(píng)估板或嵌入式產(chǎn)品)。

1) IDE主要設(shè)計(jì)思路是:

(1)PC方軟件提供程序管理、編輯、編譯、下載、聯(lián)機(jī)調(diào)試等功能,源程序經(jīng)過(guò)編輯和編譯成S19目標(biāo)文件后.通過(guò)USB接口與寫(xiě)入器中的MCU(稱(chēng)主控MCU)方軟件通信.將該目標(biāo)文件發(fā)給主控MCU,然后寫(xiě)人器又與實(shí)驗(yàn)箱MCU(稱(chēng)目標(biāo)MCU)芯片串行通信,將該目標(biāo)文件寫(xiě)入目標(biāo)MCU芯片的FIash中。成功后可以試運(yùn)行。檢驗(yàn)?zāi)繕?biāo)MCU中的程序能否正常運(yùn)行.否則聯(lián)機(jī)調(diào)試該程序。

(2)HC08系列MCU間資源差異較大,進(jìn)入監(jiān)控的支撐電路有差別,為了設(shè)計(jì)適用于不同MCU的通用IDE,解決這些問(wèn)題是關(guān)鍵,具體方法參考文獻(xiàn),即MCU間資源差異的問(wèn)題是通過(guò)PC機(jī)中的數(shù)據(jù)庫(kù)保存其差異而得到解決。進(jìn)入監(jiān)控的支撐電路問(wèn)題是通過(guò)在PC機(jī)和目標(biāo)MCU間加一個(gè)主控MCU而得到解決從而為實(shí)現(xiàn)通用的IDE奠定基礎(chǔ)。

(3)作為以MC908GP32(舊稱(chēng)MC68HC908GP32)MCU為藍(lán)本進(jìn)行“單片機(jī)原理與嵌入式應(yīng)用”教學(xué)的實(shí)驗(yàn)箱配套軟件,實(shí)驗(yàn)箱提供了基本實(shí)驗(yàn)所需的接線(xiàn)端口.還提供了擴(kuò)展實(shí)驗(yàn)的接線(xiàn)排孔。運(yùn)用本開(kāi)發(fā)環(huán)境根據(jù)實(shí)驗(yàn)項(xiàng)目開(kāi)發(fā)軟件要求.可完成所有基于MC908GP32 MCU的接口實(shí)驗(yàn)。對(duì)于Freescale該系列其他MCU。可通過(guò)置換核心板(MCU與其支撐電路構(gòu)成的),而達(dá)到更換HC08 MCU的目的,便于進(jìn)行其他MCU的實(shí)驗(yàn)。

2) 本開(kāi)發(fā)環(huán)境與傳統(tǒng)的仿真器相比具有如下技術(shù)優(yōu)勢(shì):

(1)傳統(tǒng)仿真器的“仿真系統(tǒng)”一般是使用軟件仿真的技術(shù),在宿主機(jī)上通過(guò)軟件的方式實(shí)現(xiàn)目標(biāo)機(jī)的功能。這種方式雖可以模擬大部分目標(biāo)機(jī)的功能。但是這種方式并非是真正的目標(biāo)系統(tǒng).往往在此基礎(chǔ)上開(kāi)發(fā)出來(lái)的程序.一旦移到目標(biāo)系統(tǒng)上運(yùn)行.卻會(huì)出現(xiàn)一些在仿真軟件中無(wú)法遇到的問(wèn)題。而本開(kāi)發(fā)環(huán)境是基于硬件之上的,對(duì)目標(biāo)系統(tǒng)可以達(dá)到完美的模擬,即在本開(kāi)發(fā)環(huán)境上開(kāi)發(fā)出來(lái)的程序在移到目標(biāo)系統(tǒng)上時(shí),由于硬件基礎(chǔ)相同.因此不會(huì)發(fā)生任何兼容性問(wèn)題。

(2)與傳統(tǒng)仿真器相比,提供的調(diào)試功能為在線(xiàn)調(diào)試方式,操作界面為Windows界面,操作猶如調(diào)試純軟件,方法簡(jiǎn)潔。

3 集成開(kāi)發(fā)環(huán)境的設(shè)計(jì)

為方便開(kāi)發(fā)和調(diào)試嵌入式系統(tǒng),設(shè)計(jì)了基于C編譯的HC08 MCU集成開(kāi)發(fā)環(huán)境.軟件總體分兩大部分:PC方軟件與MCU方軟件.PC方軟件可分為脫機(jī)編輯編譯和聯(lián)機(jī)下載調(diào)試兩部分。MCU方軟件設(shè)計(jì)請(qǐng)參考文獻(xiàn)。

PC方軟件采用標(biāo)準(zhǔn)的Win32界面.利用Visual C++MFC編寫(xiě).主界面設(shè)計(jì)如圖1所示,其中左邊為工程管理窗口,右邊為代碼編輯窗口.下面為編譯輸出及調(diào)試窗口。


圖1 集成開(kāi)發(fā)環(huán)境主界面

本IDE的主要設(shè)計(jì)功能和技術(shù)特點(diǎn)如下:

(1)標(biāo)準(zhǔn)的Win32視窗界面,充分體現(xiàn)Windows平臺(tái)的特性。具有安裝方便、操作簡(jiǎn)潔等特點(diǎn)。并配置內(nèi)容豐富的幫助系統(tǒng),幫助用戶(hù)快速入門(mén),學(xué)習(xí)HC08 MCU的編程方法。

(2)工程管理。工程管理分別對(duì)c文件和頭文件兩種源文件進(jìn)行管理.對(duì)匯編也支持.在主界面上以文件樹(shù)的形式呈現(xiàn)。工程屬性根據(jù)編程要求而設(shè)置,通過(guò)“編譯設(shè)置”對(duì)話(huà)框進(jìn)行,它包括MCU類(lèi)型、Flash區(qū)程序的起始地址、RAM起始地址和終止地址、堆棧起始地址等設(shè)置。工程管理的主要功能是管理源程序文件和生成編譯器所需的文件。在保存T程的同時(shí)后臺(tái)生成了該工程的make file文件(包含編譯選項(xiàng)和工程屬性)、src文件(包含工程中使用到的文件和資源)。

(3)下載程序。下載程序是將生成的目標(biāo)機(jī)器碼寫(xiě)入目標(biāo)MCU中的.包括通信模塊和S19文件分析模塊兩部分。通信模塊負(fù)責(zé)實(shí)現(xiàn)PC機(jī)與主控MCU的USB通信。發(fā)送命令、參數(shù)和程序代碼等,和主控MCU一起對(duì)目標(biāo)MCU完成相應(yīng)的擦除、寫(xiě)入和調(diào)試等操作功能。S19文件分析模塊負(fù)責(zé)先對(duì)S19文件進(jìn)行分析和打包.將文件的內(nèi)容轉(zhuǎn)換成便于傳輸?shù)母袷?,并判斷文件中程序的起始地址、?yè)數(shù)以及是否越界等.然后進(jìn)行發(fā)送通信。

(4)調(diào)試器以及寄存器查看器和內(nèi)存變量查看器。寫(xiě)入器也兼有調(diào)試功能.所以也稱(chēng)調(diào)試器。調(diào)試的功能設(shè)計(jì)是參照通用IDE的調(diào)試方法而設(shè)計(jì)的,進(jìn)入調(diào)試模式(即監(jiān)控模式),可以單步調(diào)試或斷點(diǎn)調(diào)試。調(diào)試時(shí)可以通過(guò)寄存器查看器和內(nèi)存變量查看器觀(guān)察目標(biāo)MCU運(yùn)行的當(dāng)前值,以便發(fā)現(xiàn)程序問(wèn)題所在.實(shí)現(xiàn)在線(xiàn)調(diào)試功能。

4 技術(shù)設(shè)計(jì)要點(diǎn)

在系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)過(guò)程中,遇到許多的問(wèn)題。下面把主要問(wèn)題的一些處理方法作簡(jiǎn)要分析說(shuō)明,供大家借鑒。限于篇幅.HC08系列MCU的調(diào)試器通用性設(shè)計(jì)具體見(jiàn)文獻(xiàn)。

4.1中文和語(yǔ)法高亮的實(shí)現(xiàn)

語(yǔ)法高亮在集成開(kāi)發(fā)系統(tǒng)的代碼編寫(xiě)過(guò)程中是主要的問(wèn)題之一。已有的一些控件雖然語(yǔ)法高亮功能比較全,但是對(duì)中文支持不是很好.最突出的就是半個(gè)漢字問(wèn)題(在選擇和刪除字符的時(shí)候漢字當(dāng)兩個(gè)字符處理,一次只能刪除半個(gè),會(huì)出現(xiàn)亂碼)。使用MFC的RichEdit控件雖可以解決中文問(wèn)題,但又沒(méi)有語(yǔ)法高亮的功能,為此,就以RichEdit為基類(lèi)編寫(xiě)了語(yǔ)法高亮類(lèi),才解決語(yǔ)法高亮和中文的顯示問(wèn)題。其主要編程的思路是:通過(guò)捕獲用戶(hù)鍵盤(pán)輸入的事件.判斷用戶(hù)輸入的單詞是否為c語(yǔ)言中的關(guān)鍵字.如果是,則改變其顏色。

4.2 GNU編譯器的整合

本系統(tǒng)使用的是由GNU移植的HC08編譯器,該軟件不僅是開(kāi)源、免費(fèi)的。而且執(zhí)行效率高,功能強(qiáng),對(duì)c代碼具有優(yōu)化的功能。但是唯一的問(wèn)題是。該編譯器是Win32控制臺(tái)程序,輸出的編譯信息都是在不同控制臺(tái)下的.不易整合在一個(gè)IDE中。更甚的是編譯器的輸出信息都是非標(biāo)準(zhǔn)的輸出流,無(wú)法使用ShellExecute函數(shù)捕獲,也無(wú)法輸出到管道文件中。為了解決該問(wèn)題參考了一些國(guó)內(nèi)外的資料,受此啟發(fā)。采用CreateThread的方法,也就是創(chuàng)建子線(xiàn)程的辦法,通過(guò)線(xiàn)程的管道,將編譯輸出信息捕獲.并顯示在窗口中。同時(shí)在此基礎(chǔ)上也實(shí)現(xiàn)了從編譯錯(cuò)誤信息跳轉(zhuǎn)到源代碼的功能。

4.3 PC機(jī)與寫(xiě)入器的USB通信設(shè)計(jì)

寫(xiě)入器和PC機(jī)建立USB通信除了MCU與PC的通信程序設(shè)計(jì)外.PC方必須要有相應(yīng)的驅(qū)動(dòng)程序。本設(shè)計(jì)使用的USB開(kāi)發(fā)包USBIO_EL是由德國(guó)Thesycon Systemsoftware&Consulting GmbH公司提供的免費(fèi)軟件,該開(kāi)發(fā)包提供的功能是限制版本的USB驅(qū)動(dòng)程序usbio_el.sys和USB動(dòng)態(tài)鏈接庫(kù)usbiocom.dll文件。usbio_el.sys 的限制部分為:廠(chǎng)商ID只能為0x0C70.僅支持一個(gè)中斷IN端點(diǎn)和中斷OUT端點(diǎn),支持的端點(diǎn)緩沖區(qū)大小最大為8字節(jié)。而本設(shè)計(jì)寫(xiě)入器中使用的MC68HC908JB8芯片的USB模塊恰好滿(mǎn)足限制版本的條件,故可使用該驅(qū)動(dòng)程序;usbiocom.dll可以直接加載至程序中,使用其中的類(lèi);表1為本設(shè)計(jì)中所用到的該庫(kù)中的類(lèi)及函數(shù)的說(shuō)明??梢哉{(diào)用這些類(lèi)及其函數(shù)實(shí)現(xiàn)建立連接、發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的程序功能,從而實(shí)現(xiàn)指令的通信以及程序代碼的傳輸。

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉
×

Digikey let's do
· 2025年第1期限时报名开启,5月8日截止
· Digikey助力,提供一站式免费器件支持
· 跟大佬一起 【DIY 功率监测与控制系统】