寫在前面的話
隨著中國逐漸由“中國製造”向“中國創造”的轉變,中中國產微控制器晶片行業今年如同雨後春筍般多了起來,晶片製造之路是漫長而曲折的,但是這個過程必須要走,只有經歷並走過了這個過程,我們才能把真正的核心技術握在自己手中。
本篇先簡單介紹MDK的安裝流程,然後重點說明如何把敏矽微電的Cortex-M0的PACK包新增到mdk中,這樣才能順利的在MDK環境下開發敏矽微電子Cortex-M0新片。最後用了很大篇幅介紹如何建立工程,工程中各種檔案的新增等等。
1、敏矽微電子Cortex-M0的開發環境敏矽微電子Cortex-M0是基於ARM核心的,所以基於ARM的開發環境都可以用來開發敏矽微電子Cortex-M0的晶片。最常見的兩種ARM開發平臺是MDK和IAR。我們今天著重介紹MDK環境下如何建立基於敏矽微電子Cortex-M0晶片的專案,以及如何在MDK環境下除錯敏矽微電子Cortex-M0晶片。
需要說明的是:MDK軟體是需要註冊的,強烈建議大家使用正版軟體。不過在剛開始學習以及資金有限的情況下,可以使用MDK的評估版本,評估版本的程式容量是32K版本。這個程式容量對於初學來說,是足夠用的。
閒話少說,馬上開始我們今天的學習之旅。
2、MDK安裝1、首先開啟Keil安裝包(資料連結中附有MDK 5.28版本安裝包),開啟後如圖1.1所示。
圖1
2、隨後點選“Next”,進入後續的安裝流程,勾選紅圈選項後,點選“Next”下一步。隨後會提示MDK的安裝路徑,強烈建議採用預設路徑。如果要自定義安裝路徑,請保證自定義的安裝路徑中不要出現任何中文名字!點選“Next”下一步後,輸入下姓名、公司、郵箱等資訊,隨意填寫下即可,繼續點選“Next”便開始正式安裝。期間軟體會自動安裝模擬器驅動,耐心等待即可。
3、等到最後出現下面的介面,軟體便已安裝成功。
3、MDK註冊1、啟動Keil 5,在File選項中選擇License Management子選項。
2、按照提示進行註冊即可,請按照官方正版途徑註冊。
3、如果點選Add LIC提示以下的錯誤資訊,看紅色下劃線的資訊,得知是因為沒有在管理員模式下操作,許可權不足導致的。這個是Windows管理員模式產生的問題。如果你的註冊過程沒有此錯誤提示,可以跳過第7步。解決的辦法也很簡單,按照步驟4操作即可。
5、軟體註冊完成後,出現“LIC Added Sucessfully”的提示,說明註冊成功。
4、安裝ME32F030PACK包1、KEIL安裝完成後,就需要安裝晶片支援的PACK包,來讓KEIL支援我們的晶片,這裡建議安裝資料提供的Keil 5版本,因為其對應的PACK包是傻瓜式一鍵安裝,操作十分的方便,找到我們的PACK包雙擊安裝即可。
2、PACK包安裝完成後,我們可以先確認下,看下KEIL是否已經識別並支援我們的晶片,方法如下,首先建立個新工程,選擇project->New uVision Project來建立工程。
3、新建工程時會提示選擇晶片型別,從圖中看出KEIL已經支援我們的Mesilicon系列晶片。
5、新建工程1、選擇project->New uVision Project來建立工程。
2、選擇晶片型別,選擇開發板的晶片為Mesilicon->ME32F030 Series->ME32F030C8x6,選擇好後,點選“OK”。
3、出現下面的介面,這個是根據需求自己新增開發元件,不多介紹,直接點取消跳過。
4、接下來將資料中的Lib2.3 for keil5x例程解壓縮出來,其中公用的.c和.h等檔案都在common資料夾內,隨後開始向工程中新增.c和.h檔案。點選如圖所示的快捷按鈕。
5、彈出如下介面,在Groups右邊有4個按鈕,依次為“新建”、“刪除”、“上移”、“下移”功能,先選擇新建comm、app兩個組,你也可以嘗試下刪除組,把初始自帶的Source Group通過紅叉按鈕刪除掉。
5、向每個Group中新增.程式c檔案。那就先舉個簡單的例子作為開始,首先我們選中需要新增程式的組,比如我們向app組裡新增需要的main.c檔案,選中app組後,點選右側的Files框體下的Add Files,選中要新增的main.c檔案。點選Add便完成新增。
依次類推,我們接下來要向comm中新增.c檔案。
①、新增core_cm0.c,這個就是我們的微控制器的M0核心檔案,它在
Lib2.3 for keil 5->common->CoreSupport資料夾中。
②、新增system_CMSDK.c,它在Lib2.3 for keil 5->common->DeviceSupport->arm->cmsdk資料夾中。
③、新增startup_CMSDK_CM0.s檔案,這個是啟動程式檔案,它是由組合語言寫成的。是以.s為結尾的檔案,所以在新增它的時候需要注意將檔案型別選擇為All Files才能看見它。
Lib2.3 for keil 5->common->DeviceSupport->arm->cmsdk->Startup->arm資料夾中。
④、前面新增都屬於微控制器的系統檔案,接下來就要開始新增我們自己的.c檔案了,這個都在Lib2.3 for keil 5->common->Drivers->Source資料夾內。
⑤、第一次新建工程時可以參照現有的例程,比如以Demo-Touch Me按鍵觸控試驗為模板,嘗試建立一下工程。新增自己所需要的檔案,如圖所示:
6、新增完成後,關閉Manage Project Items功能欄。返回KEIL主介面後,在左側的Project工程欄裡,可以看到之前新增的所有程式檔案。
7、接下來我們是不是可以編譯程式了呢?那不妨先試一下。編譯後發現提示很多此類的報錯,提示 cannot open source input file "gpio.h": No such file or directory,這是因為我們只添加了.c檔案,而需要的標頭檔案路徑還沒有指定位置。那麼接下來就指定標頭檔案路徑。
以core_cm0.c檔案對應的標頭檔案core_cm0.h為例子,一路進到上文中新增core_cm0.c的資料夾中,進入如圖所示的路徑後,點選選擇資料夾。
新增完成後,剛才新新增的路徑便顯示出來了。
依次類推,再新增以下3個路徑。
Lib2.3 for keil 5->common->DeviceSupport->arm->cmsdk
Lib2.3 for keil 5->common->Drivers->Include
Lib2.3 for keil 5->Demo-Touch Me->myapp->include
這裡新增的時候要注意,是要選擇.h檔案所在的那個資料夾,錯選成它的上級或下級資料夾,是無法找到需要的標頭檔案的!新增完成後的效果如下。
這時候我們再去編譯一下試試。沒有報錯也沒有警告,說明專案工程順利建立。
6、下載與除錯1、程式編譯沒問題後,接下來就可以下載程式並模擬測試了。在開始前先插上模擬器並連線開發板,開啟Options for Target選項卡,選中Debug。這個時候選擇模擬器型別(根據實際進行選擇,建議買一個U-LINK2模擬器),勾選上Run to main,這樣程式下載後直接執行到main函式,否則會先執行startup_CMSDK_M0.s中Reset_Handler程式。雖然這段程式最後也會跳轉到我們的main函式,但我們沒有必要每次去模擬它。點選Settings檢視我們的模擬器配置情況。
再點選檢視下Flash Download的選項。這時候看到ME20F030微控制器的FLash的下載地址和RAM空間地址都已經明確了,這就是為什麼前面強烈推薦安裝KEIL 5版本,隨後打上PACK包,很多設定項都是PACK包整合配置好的,我們直接用就可以了。
圖示來下載並模擬程式。
圖示所示的功能也可以下載程式,但是它是不帶模擬功能的,這點需要注意!下載成功後會多出下面的工具條。
3:停止,當程式在執行狀態下,使用此功能,程式便會停止執行。
4:執行進去,本質是單步執行,如果下一步是要執行的是個函式,那麼就行進入到函式 裡面,進行單步模擬。
5:段執行,也是單步執行,但不同的是,如果下一步是要執行的是個函式,那麼會直接執行整個函式,並不會進入函式內部執行,它是直接以一整段程式碼為單位進行執行的。
6:執行跳去,當不需要再繼續在某個函式裡繼續單步模擬時,執行此功能,就會直接執行完函式內剩餘的程式碼,隨後跳出該函式後會暫停,等待下一步操作。
7:執行到游標處,使用此功能前,先確定想執行到地方,滑鼠單擊執行的那一行,此時游標便會在這一行顯示,這時候再點選此按鈕,程式會全速執行,直到在游標處停止。
8:全速執行,此功能是讓程式全速執行,除非認為暫停或者遇到斷點,否則程式會一直執行。