1、 文档目标
在嵌入式开发领域,尤其是基于ARM架构的系统中,使用Arm Development Studio(简称ArmDS)进行调试和开发时,Scatter文件(分散加载文件)扮演着至关重要的角色。Scatter文件主要用于定义内存布局,指定代码段、数据段以及堆栈等不同部分在目标设备上的具体存储位置。然而,在某些复杂的应用场景中,开发者可能需要在C代码中直接访问或操作Scatter文件中定义的变量。这种需求不仅涉及对链接器脚本的理解,还需要掌握如何通过特定的方式将这些变量暴露给应用程序。
2、 问题场景
在ArmDS中,在链接脚本(Scatter文件)中定义一些变量,然后在C文件中引用。例如在链接脚本中定义这个变量code_start ; 然后在C语言函数中extern 这个变量。
3、软硬件环境
1)、软件版本:ArmDS2024.0
2)、电脑环境:Windows 11
3)、外设硬件:无
4、解决方法
1)、打开工程的Scatter文件,修改相关的名称,如图4-1所示:

图4-1
2)、打开工程的C代码,添加如图4-2所示的代码,设置好FVP,运行程序,可以看到链接脚本的变量被正常的调用了:

图4-2