上期講述了AMetal平臺驅(qū)動框架中的配置文件和例程文件的使用,方便用戶快速調(diào)用MCU相應(yīng)的外設(shè)資源。基于前期對AMetal驅(qū)動架構(gòu)各層文件的詳細說明,本次向大家介紹如何搭建工程讓MCU運行起來。
要讓新的芯片在AMetal平臺上運行起來必然需要為它建立一個新的工程,AMetal提供了搭建基礎(chǔ)工程的模板工程(具體路徑位于{SDK}\board\xxx_core),能夠幫助開發(fā)者快速完成工程搭建。
圖1
基礎(chǔ)工程搭建
搭建基礎(chǔ)工程
根據(jù)AMetal提供的模板工程,來創(chuàng)建芯片的基礎(chǔ)工程文件夾;并將芯片文件夾的project_template文件夾下所有xxx的字樣更改為適配芯片型號,即可搭建完基礎(chǔ)工程的基本樣式。以ZLG116為例,如下所示為其工程文件。
圖2 ZLG116的工程文件
添加芯片基礎(chǔ)文件
上一步驟中創(chuàng)建的基礎(chǔ)工程文件夾中僅包含MCU的工程文件、配置文件和啟動文件;因此我們需要添加MCU相關(guān)的描述性文件,通常被定義在soc文件夾內(nèi)。大家可以根據(jù)AMetal提供的示例(具體路徑為{SDK}\soc\xxx_soc)來創(chuàng)建芯片文件夾,并將該文件夾放置在對應(yīng)芯片廠商的文件夾內(nèi)。同時將該文件下所包含的xxx的字樣更改為適配芯片型號。如下圖所示為芯片基礎(chǔ)文件夾內(nèi)所包含文件的相關(guān)信息。
圖3 芯片基礎(chǔ)文件簡介
在編寫驅(qū)動程序前,我們應(yīng)完成芯片基礎(chǔ)文件夾中各文件內(nèi)容的編寫。下面對上述芯片基礎(chǔ)文件的內(nèi)容做一個簡單介紹:
am_xxx.h:對當前文件夾內(nèi)的.h文件進行包含。根據(jù)所適配芯片的內(nèi)核進行修改(可參考其它同內(nèi)核芯片該文件相關(guān)配置),模板例程默認使用的是Arm? Cortex?-M0的內(nèi)核。
soc_cfg.h:主要完成的是對DMA通道數(shù)目、Flash大小、扇區(qū)大小的宏定義,用戶需根據(jù)芯片手冊填寫。
xxx_clk.h:該文件包含各總線和外設(shè)的時鐘ID宏定義,其值直接決定了clk外設(shè)驅(qū)動程序的編寫。
xxx_dma_chan.h:該文件包含各外設(shè)可用DMA通道的情況,該定義直接決定DMA外設(shè)驅(qū)動的編寫。
xxx_inum.h:文件涉及到CPU中斷號的宏定義;并定義枚舉類型IRQn_Type提供給內(nèi)核文件使用。根據(jù)所適配芯片內(nèi)核,需要對中斷向量表進行修改(可參考芯片啟動文件)。
xxx_periph_map.h:外設(shè)映射定義,其主要目的是對各外設(shè)的基地址按照定義的對應(yīng)外設(shè)結(jié)構(gòu)體解析從而獲取各外設(shè)寄存器塊指針。
xxx_pin.h:包含該芯片各引腳的復(fù)用功能配置宏、模式配置宏、引腳速度配置宏,其應(yīng)該在編寫GPIO驅(qū)動時一同編寫。
xxx_regbase.h:涉及到該芯片各外設(shè)的內(nèi)存基地址定義。
修改工程配置文件
在完成上述操作后就可以對工程配置文件進行修改了,僅需要按照如下操作即可:
1. 在剛創(chuàng)建的芯片基礎(chǔ)工程文件夾內(nèi),修改user_config文件夾下所有xxx的字樣更改為適配芯片型號。如下所示為user_config文件夾:
圖4 user_config文件夾
2. 打開user_config文件夾中的am_board.c文件,根據(jù)適配芯片的SRAM大小,進行修改代碼。如下所示為芯片SRAM描述宏:
圖5 SRAM描述宏
至此,我們完成了芯片基礎(chǔ)工程的搭建;接下來,需要準備下一步的操作來實現(xiàn)MCU在AMetal平臺上運行起來。
讓MCU跑起來
由于各外設(shè)驅(qū)動還沒有編寫,MCU啟動后默認會使用內(nèi)部中速時鐘運行,因此我們可以通過debug程序來觀察它是否能夠進入while(1),如果可以代表MCU運行成功。這里主要涉及到的相關(guān)操作為keil工程配置修改以及芯片啟動文件的創(chuàng)建。
Keil工程配置的修改
修改keil工程的配置主要包括適配的芯片型號的選擇、內(nèi)核宏的設(shè)置、添加包含芯片基礎(chǔ)文件的路徑,燒錄工具及其工程輸出文件名等配置。以ZLG116為例,如下圖所示為keil芯片型號的選擇。
圖6 keil芯片型號選擇
以ZLG116為例,如下圖所示為修改芯片內(nèi)核宏及其添加芯片基礎(chǔ)文件夾的路徑。
圖7 配置keil工程
至此keil工程修改完成,編譯鏈接工程,無錯誤即可。
創(chuàng)建啟動文件
工程的啟動文件一般存儲于路徑{SDK}\board\{芯片簡稱}\{工程名}\startup目錄下。啟動文件可以通過將原廠啟動文件進行修改獲得,因此可以先將原廠的啟動文件存入其中。
相較于原廠的啟動文件,我們主要修改啟動文件的以下三個部分:
外部中斷函數(shù)連接:AMetal平臺需要將所有外部中斷都連接到同一個中斷函數(shù);如下所示為ZLG116外部中斷映射:
圖8 ZLG116外部中斷映射
Reset_Handler的修改:根據(jù)原廠的Reset_Handler修改即可,AMetal平臺復(fù)位后直接執(zhí)行main函數(shù)。如下所示為Reset_Handler程序:
圖9 Reset_Handler程序
Defult_Handler的修改:
圖10 Defult_Handler程序
至此,啟動文件修改完成。接下來編譯工程并調(diào)試程序,全速運行后若能夠進入主函數(shù)中的while(1),則代表MCU運行成功。
以上就是基于AMetal如何讓MCU跑起來的全部內(nèi)容,相信大家已經(jīng)熟悉了AMetal平臺上適配新型號MCU這一操作。
-
mcu
+關(guān)注
關(guān)注
146文章
17318瀏覽量
352649 -
soc
+關(guān)注
關(guān)注
38文章
4204瀏覽量
219098 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62972 -
ametal
+關(guān)注
關(guān)注
2文章
24瀏覽量
11421
發(fā)布評論請先 登錄
相關(guān)推薦
評論