每個微控制器的工作方式都略有不同,通過觀察一家公司實施 USART 的方式與另一家公司的實施方式之間的差異,可以學到很多東西。雖然這些活動讓年輕工程師大開眼界,但當嵌入式開發人員編寫第三或第四個 USART 驅動程序時,這些活動不僅開始變得不那么有趣,而且成為開始編寫應用程序代碼的障礙。這就是現代微控制器配置器真正開始大放異彩的地方。
微控制器配置器是一個工具鏈組件,它允許開發人員通過漂亮的圖形用戶界面設置微控制器外圍設備,從而生成所有需要手動編寫的外圍設備控制代碼。微控制器配置器可以將 3 到 6 個月的驅動程序開發時間大幅縮短至幾周或更短,而無需翻閱一千頁的技術參考手冊來了解每個寄存器位?,F代配置器不僅設置寄存器值,還提供完全抽象出低級硬件的驅動程序掛鉤。
微控制器配置器絕不是一項新發明,他們已經存在了至少十年或更長時間。記得在 S12X 微控制器上使用早期版本的飛思卡爾處理器專家,那時,配置器非常適合理解微控制器及其外圍設備的工作原理,即使他們生成的代碼難以閱讀和維護,這就是為什么我們會使用它來進行快速原型設計,然后利用它來手寫我們的驅動程序。
雖然今天的配置工具已經變得相當復雜,并且在許多情況下,將滿足 MISRA-C 等編碼標準。事實上,一些配置器生成的代碼質量水平超出了所看到的嵌入式開發人員手工編碼的水平。無論如何,微控制器領域的趨勢是盡量減少開發人員對底層硬件的了解,而是幫助他們盡快啟動和運行應用程序代碼。許多現代微控制器已經發展到可能需要一年以上的時間來理解和編寫代碼的復雜程度,這很有意義。為什么公司要支持所有這些努力,尤其是如果他們可以從配置工具中獲得高質量的代碼?
有很多配置器工具,例如,Microchip 有 Microchip Harmony Configurator,ST Microelectronics 有 STM32CubeMx,等等。這些工具通常以某種方式集成到制造商的 IDE 中,以便為開發人員提供在編寫應用程序代碼和配置微控制器外圍設備和驅動程序接口之間無縫切換的體驗,每個工具看起來都有點不同。
這些配置器工具的一大優勢是它們能夠提供用于配置微控制器的可視化機制。例如,下面的視圖演示了 MHC 如何提供可視化項目圖。除了連接模塊之間的依賴關系外,嵌入式開發人員還可以輕松查看他們在項目中包含了哪些組件。
然后可以使用簡單的復選框或下拉系統依次選擇和配置這些組件中的每一個。例如,FreeRTOS 的配置菜單如下圖所示:
與進入頭文件并在文檔之間來回切換以確定需要添加哪些定義以獲得所需的功能集相比,此界面更易于使用和配置。配置設置后,只需單擊“生成代碼”按鈕即可生成代碼,該按鈕將代碼生成到項目目錄中。
利用微控制器配置器可以通過減少設置驅動程序和配置微控制器所花費的時間來顯著加速軟件開發。不過,嵌入式開發人員確實需要花一些時間來克服工具鏈的學習曲線。一旦找到合適的資源,這些工具中的很多都可以在幾天內學會。學習曲線通常一開始就很陡,但是一旦學習了核心概念,就會有一個大大提高配置速度的瞬間。雖然每個工具都不同,但它們都旨在幫助開發人員盡早開始他們的應用程序代碼。