1、 文檔目標
在嵌入式開發(fā)領域,尤其是基于ARM架構(gòu)的系統(tǒng)中,使用Arm Development Studio(簡稱ArmDS)進行調(diào)試和開發(fā)時,Scatter文件(分散加載文件)扮演著至關(guān)重要的角色。Scatter文件主要用于定義內(nèi)存布局,指定代碼段、數(shù)據(jù)段以及堆棧等不同部分在目標設備上的具體存儲位置。然而,在某些復雜的應用場景中,開發(fā)者可能需要在C代碼中直接訪問或操作Scatter文件中定義的變量。這種需求不僅涉及對鏈接器腳本的理解,還需要掌握如何通過特定的方式將這些變量暴露給應用程序。
2、 問題場景
在ArmDS中,在鏈接腳本(Scatter文件)中定義一些變量,然后在C文件中引用。例如在鏈接腳本中定義這個變量code_start ; 然后在C語言函數(shù)中extern 這個變量。
3、軟硬件環(huán)境
1)、軟件版本:ArmDS2024.0
2)、電腦環(huán)境:Windows 11
3)、外設硬件:無
4、解決方法
1)、打開工程的Scatter文件,修改相關(guān)的名稱,如圖4-1所示:

圖4-1
2)、打開工程的C代碼,添加如圖4-2所示的代碼,設置好FVP,運行程序,可以看到鏈接腳本的變量被正常的調(diào)用了:

圖4-2