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