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