嵌入式系統(tǒng)工程師與他們使用的工具知識一樣好。使用正確的工具來完成工作可以大大加快開發(fā)速度,但不一定能確保成功。開發(fā)人員需要了解該工具的復雜性才能獲得成功。
以一個非常簡單的任務(wù)為例,使用IAR編譯器和Processor Expert設(shè)置NXP Kinetis-L微控制器的配置位。
配置位控制NMI和復位引腳'功能以及初始時鐘和啟動選項。在此示例中,配置位位于十六進制地址0x400之后,緊跟在中斷向量表之后。表1顯示了每個地址控制的內(nèi)容的描述。
表1 - 配置位
開發(fā)人員有許多選項有關(guān)如何設(shè)置這些內(nèi)存區(qū)域的信息。首先,他們可以使用鏈接器文件中映射的表來設(shè)置值?;蛘撸麄兛梢允褂肞rocessor Expert來設(shè)置值。
設(shè)置配置區(qū)域的值后,開發(fā)人員現(xiàn)在可以編譯代碼并將其加載到目標上。然后,人們可能期望該過程在閃存中設(shè)置配置位。然而,運行代碼會揭示不同的故事!盡管已經(jīng)正確配置了這些位,但開發(fā)人員會發(fā)現(xiàn)在目標上,這些位仍然設(shè)置為默認值。
可能出現(xiàn)什么問題?使用IAR,開發(fā)人員可以在要加載的代碼和目標內(nèi)存中存在的內(nèi)容之間運行驗證檢查。他們會發(fā)現(xiàn)驗證失敗了。有些東西阻止了配置位的編程。
罪魁禍首是IAR工具鏈,它阻止了配置區(qū)域的更新。這種行為的原因是這些配置位可能對程序造成危險,因為它們可以鎖定整個設(shè)備。無意中編程它們可能是災(zāi)難性的,因此工具鏈會自動阻止對目標區(qū)域的寫入權(quán)限,而無需向開發(fā)人員提及。工具鏈假定開發(fā)人員知道這是工具鏈的行為方式。
要編寫配置位,開發(fā)人員必須通過向閃存設(shè)置配置添加特殊參數(shù)來手動覆蓋此默認行為,如圖1所示。只有在開發(fā)人員完成此操作后,他們才能成功寫入配置位。沒有這種“功能”經(jīng)驗或知識的開發(fā)人員可能很容易被拋棄并且長時間不知所措,特別是因為這些參數(shù)很好地隱藏在多個子菜單中。
圖1 - IAR覆蓋參數(shù)
故事的寓意是開發(fā)人員和項目團隊需要安排時間定期更新自己并了解他們在一天中使用的工具的更多信息 - 今天的基礎(chǔ)。此外,項目經(jīng)理需要認識到,時間表必須分配時間來學習工具。開發(fā)人員通常會知道他們的工具鏈的日常功能,但是這個工具的復雜功能可以真正發(fā)揮作用并提供最強大的功能。
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19153瀏覽量
306428 -
PCB打樣
+關(guān)注
關(guān)注
17文章
2968瀏覽量
21760 -
華強PCB
+關(guān)注
關(guān)注
8文章
1831瀏覽量
27847 -
華強pcb線路板打樣
+關(guān)注
關(guān)注
5文章
14629瀏覽量
43109
發(fā)布評論請先 登錄
相關(guān)推薦
評論