超低功耗微控制器模組為工程師帶來新的機會——第2部分:配置Eclipse
超低功耗微控制器模組為工程師帶來新的機會——第2部分:配置Eclipse
作者:ADI 資深工程師Simon Bramble
摘要
本文介紹超低功耗、功能豐富的微控制器模組,並解釋如何使用主流的免費工具對其進行程式設計和除錯。與許多其他高階微控制器模組不同的是,該模組採用DIP封裝,因此專業工程師和業餘愛好者都能使用其輕鬆設計原型。本系列文章的 第1部分說明了如何在Eclipse中創建專案,本文(第2部分)則會討論如何配置Eclipse以配合PICO使用。
重新配置Eclipse以配合PICO硬體使用
第1部分文章所創建的專案是圍繞 MAX32625EVKIT硬體而設計的,該硬體與 PICO的硬體不同,因此需要更改評估套件的硬體描述檔以適配PICO的硬體。原始的 boards.c檔儲存在以下目錄中:
C:\Maxim\Firmware\MAX32625\Libraries\Boards\EvKit_V1\ Source
PICO的新boards.c 檔以zip檔的格式儲存,您可以點擊本文末的連結下載,需要將zip檔中的整個Boards目錄複寫到保存主程序的目錄中,如圖1所示。該目錄描述了PICO PCB所包含的組件。
PICO包含一個引導載入程式,以使程式能夠正常運行。引導載入程式還允許使用拖放的方式載入二進位檔案。如果使用預設設定將程式載入到MAX32625中,則 Eclipse會覆蓋此引導載入程式。連結器文件 max32625.ld會將所有程式整合成一個二進位檔案,以便載入到主機微控制器中。其並會確定將程式載入到記憶體的哪個位置,因為此位置需要修改,以免覆蓋引導載入程式。修改後的連結器檔包含在下載的zip檔中。
將連結器檔複製到project 目錄,如圖1所示。儲存在project 目錄中的 Makefile會向編譯器發出指示,以便其找到連結器檔和Boards 目錄。因此需對 Makefile進行編輯,以確保指向修改後的連結器檔和 Boards 目錄的最新位置。將zip檔中的新 Makefile複製到project 目錄中(如圖1所示)以覆蓋原始檔。
在新的Boards 目錄中,可以找到修改後的 board.c檔(位於目錄EvKit_V1\Source),其描述了PICO上的微控制器與LED和按鈕的連接關係。透過比較圖2中的代碼與圖3中的PICO原理圖,可以很容易看出其結構。
boards.c 檔也經過了大量修改,以使PICO能夠將資料列印到終端程式(如Tera Term),這對於除錯過程非常有用。如果使用列印功能,請配置終端程式以115200的串列傳輸速率進行通訊,如圖4所示。
引導載入程式可以使一些周邊處於部分配置狀態, board.c 中的其他代碼可在初始化期間將其重置,如圖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中打開了多個專案,將滑鼠懸停在錘子 符號上,使用者就能知道即將建構哪個項目。
專案的 build目錄中現在應該出現了如圖7所示的二進位檔案。
此時,最好將 build目錄增加到Windows資源管理器的快速存取欄中,使得PICO的程式設計過程更加非常方便。按右鍵build 目錄,選擇「固定到快速存取」(Pin to Quick access),目錄將出現在Windows資源管理器左側的「快速存取」(Quick access)欄中。
載入二進位檔案
需要注意的是,程式設計線纜僅用於除錯目標PICO,以及在引導載入程式被覆蓋時對該元件重新程式設計。載入二進位檔案不需要使用程式設計線纜,只需拖放即可。
按住PICO上的按鈕,將其插入USB埠。PICO應該作為新驅動器出現,名稱為MAINTENANCE,如圖8所示。
將 二進位 檔案拖放到 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所示。
將滑鼠懸停在Eclipse中的debug圖示上(如圖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位元微控制器的世界,同時還仍然能夠使用易操作的封裝進行原型設計。
點擊此連結下載軟體檔:https://www.analog.com/media/en/software/software-configuration/eclipse-configuration.zip
致謝
非常感謝ADI微控制器支援團隊,他們對設定檔進行了大量修改,對這篇文章做出了很多貢獻。