超低功耗微控制器模塊為工程師帶來新的機遇——第2部分:配置Eclipse
摘要
本文繼續介紹超低功耗、功能豐富的微控制器模塊,并解釋如何使用主流的免費工具對其進行編程和調試。與許多其他高端微控制器模塊不同,該模塊采用DIP封裝,因此專業工程師和業余愛好者都能使用它輕松設計原型。第1部分說明了如何在Eclipse中創建項目,第2部分將說明如何配置Eclipse以配合PICO使用。
重新配置Eclipse以配合PICO硬件使用
第1部分中創建的項目是圍繞MAX32625EVKIT硬件而設計的,該硬件與PICO的硬件不同,因此需要更改評估套件的硬件描述文件以適配PICO的硬件。原始的boards.c文件存儲在以下目錄中:
C:MaximFirmwareMAX32625LibrariesBoardsEvKit_V1Source
PICO的新boards.c文件以zip文件的格式存儲,讀者可以點擊本文末尾的鏈接下載,需要將zip文件中的整個Boards目錄復制到保存主程序的目錄中,如圖1所示。該目錄描述了PICO PCB所包含的組件。
圖1.定位Boards目錄。
PICO包含一個引導加載程序,以使程序能夠正常運行。引導加載程序還允許使用拖放的方式加載二進制文件。如果使用默認設置將程序加載到MAX32625中,則Eclipse會覆蓋此引導加載程序。鏈接器文件max32625.ld會將所有程序整合成一個二進制文件,以便加載到主機微控制器中。它還會確定將程序加載到內存的哪個位置,因為此位置需要修改,以免覆蓋引導加載程序。修改后的鏈接器文件包含在下載的zip文件中。
將鏈接器文件復制到project目錄,如圖1所示。存儲在project目錄中的Makefile會向編譯器發出指示,以便其找到鏈接器文件和Boards目錄。因此需對Makefile進行編輯,以確保指向修改后的鏈接器文件和Boards目錄的最新位置。將zip文件中的新Makefile復制到project目錄中(如圖1所示)以覆蓋原始文件。
在新的Boards目錄中,可以找到修改后的board.c文件(位于目錄EvKit_V1Source),它描述了PICO上的微控制器與LED和按鈕的連接關系。通過比較圖2中的代碼與圖3中的PICO原理圖,可以很容易看出其結構。
圖2.LED和按鈕配置。
圖3.LED和按鈕原理圖。
boards.c文件也經過了大量修改,以使PICO能夠將數據打印到終端程序(如Tera Term),這對于調試過程非常有用。如果使用打印功能,請配置終端程序以115200的波特率進行通信,如圖4所示。
圖4.Tera Term設置。
引導加載程序可以使一些外設處于部分配置狀態,board.c中的其他代碼可在初始化期間將其重置,如圖5所示。
圖5.引導加載程序初始化。
最后,PICO使用與評估套件不同的電源管理IC。但是,PICO的電源管理IC不需要編程,它以默認設置運行,因此新的board.c文件中已刪除了相關配置的代碼行。
構建最終項目
zip文件包含一個示例程序,即Template文件夾中的main.c,它能檢測PICO上的按鈕何時被按下,然后讓RGB LED閃爍,并通過SPI端口發送2字節的數據,再通過UART發送1字節的數據,最后在終端程序上打印Hello from the PICO。將此程序復制到project目錄中以覆蓋原程序。如代碼注釋所示,main.c代碼從MAX32625項目目錄中的許多示例程序中復制而來。這將為用戶創建最終應用程序代碼奠定了基礎。
單擊錘子符號構建項目,如圖6所示。如果Eclipse中打開了多個項目,將鼠標懸停在錘子符號上,用戶就能知道即將構建哪個項目。
圖6.構建項目。
項目的build目錄中現在應該出現了如圖7所示的二進制文件。
圖7.二進制文件的位置。
此時,最好將build目錄添加到Windows資源管理器的快速訪問欄中,使得PICO的編程過程更加非常方便。右鍵單擊build目錄,選擇“固定到快速訪問”(Pin to Quick access),目錄將出現在Windows資源管理器左側的“快速訪問”(Quick access)欄中。
加載二進制文件
需要注意的是,編程線纜僅用于調試目標PICO,以及在引導加載程序被覆蓋時對該器件重新編程。加載二進制文件不需要使用編程線纜,只需拖放即可。
按住PICO上的按鈕,將其插入USB端口。PICO應該作為新驅動器出現,名稱為MAINTENANCE,如圖8所示。
圖8.MAINTENANCE驅動器。
將二進制文件拖放到MAINTENANCE驅動器上,從而加載文件。文件加載到PICO后,MAINTENANCE驅動器就會消失,PICO將重新啟動,并且程序將開始運行。
在代碼開發的早期階段,程序不太可能按預期運行,甚至根本無法運行。如果需要調試目標PICO上的軟件(包括單步調試或在運行至斷點),則需要使用接口軟件對第二個編程器PICO進行編程,以使其能夠在PC與目標PICO之間建立連接。該編程器PICO向目標PICO發出指令以啟動和停止目標PICO的執行,從而讓Eclipse能夠對寄存器進行檢查。
要配置第二個編程器PICO,請在zip文件中找到DAPLink Interface Binary目錄,并定位其中的二進制文件。斷開第二個編程器PICO與USB端口的連接,然后按住編程器PICO上的按鈕,同時將其重新插入USB端口。如前所述,此時應該出現一個名為MAINTENANCE的驅動器。將DAPLink Interface Binary目錄下的二進制文件(max32625_max32625pico_if_crc.bin)拖到MAINTENANCE驅動器。這將使用接口軟件配置編程器PICO,并允許使用Eclipse單步執行目標代碼。完成上述操作后,MAINTENANCE驅動器應該消失,編程器PICO將重新啟動,并會出現一個DAPLINK驅動器。在此階段,建議將編程線纜連接到編程器PICO,以將其與目標PICO區分開來。
如何調試目標代碼
將編程線纜連接到編程器PICO上的10路接插件,將另一端的pogo連接器按到PICO背面的焊盤上,確保將對準銷插入PICO上的孔中,如圖9所示。
圖9.將編程器連接至目標。
將鼠標懸停在Eclipse中的debug圖標上(如圖10所示),確認當前調試的項目是否正確。界面上會顯示當前項目的名稱。
圖10.構建項目。
單擊debug圖標,同時保持pogo連接器連接到PICO。程序將進行編譯,然后在代碼開始處暫停。按下鍵盤上的F8將啟動調試過程。
用戶只需雙擊Eclipse中代碼的行號,就能插入斷點。
現在,用戶可以調試代碼。要檢查寄存器,請在Eclipse菜單中選擇
Window > Show View > Other…
然后展開Debug文件夾,選擇所需的視圖。
一旦確定代碼能夠正常運行,就可以保存該項目,將其作為未來項目的模板。
如何恢復損壞的PICO
PICO帶有預安裝的引導加載程序,支持拖放編程。插入PICO時,如果MAINTENANCE和DAPLINK驅動器都沒有出現,那么很可能是引導加載程序已被覆蓋。通過以下步驟可以恢復引導加載程序。
? 插入編程器PICO,查看DAPLINK驅動器是否出現。
? 插入損壞的PICO。
? 將編程線纜的彈簧連接器抵住損壞的PICO背面的焊盤,確保將對準銷插入PICO上的孔中。
? 導航到Bootloader Binary目錄,將引導加載程序文件(max32625pico_bl.bin)拖到DAPLINK驅動器。需要注意的是,該二進制文件被復制到了編程器PICO創建的驅動器,而不是目標PICO創建的驅動器。編程器PICO用作管道,通過編程線纜將二進制文件傳送到目標PICO。
? 用戶按住已修復PICO上的按鈕并插入該PICO時,用戶應該能夠看到MAINTENANCE驅動器。
? 拔下編程器PICO。
如何刪除PICO中的文件
如果需要徹底刪除PICO的內容,請按照以下步驟操作:
? 將編程器PICO插入USB端口。這將創建一個DAPLINK驅動器。
? 將需要擦除內容的PICO插入另一個USB端口。
? 將編程電纜的彈簧連接器抵住要擦除內容的PICO背面的焊盤。
? 導航到zip文件中Erase File目錄中的erase.act文件。
? 將此文件拖到DAPLINK驅動器。編程器PICO用作管道,通過編程線纜將擦除文件傳送到目標PICO。
? 這樣就會擦除目標PICO。
結論
這或許是與PICO建立良好關系的開始。它提供了一個出色的低成本平臺,讓用戶能夠使用功能強大且功耗超低的Arm?微控制器進行開發。本文提供了有關如何使用免費開發工具對PICO進行編程和調試的完整指南。用戶成功完成一個項目后,就可以將該項目作為模板,在未來的開發中輕松復用,大幅降低開發工作量。最后,用戶可以告別8位DIP時代,進入32位微控制器世界,同時仍然能夠使用易操作的封裝進行原型設計。










評論