单片机/MCUwilliam hill官网
直播中

麦特拉布

12年用户 1044经验值
私信 关注

TC275如何将指定的变量放在指定的地址中?

如何在代码中以及Lcf_Gnuc.lsl如何修改,能够将某个变量放在指定的地址中,能否给个示例                                                                                                                                                                                                                                                                                                      

回帖(2)

史娟

2024-2-6 15:54:45
代码里面使用指针变量能够将某个变量放在指定的地址中,比如对寄存器的读写访问。还有就是用#pragma在代码里面固定变量的位置(本质是告诉linker变量在内存中的位置)。Linker脚本也可以定义变量的位置。如果没有指定地址,变量的地址是有Linker自己分配的。具体做法跟编译器工具链相关。               
举报

倪山骋

2024-2-6 16:11:14
在TC275中,可以使用__attribute__((section("section_name")))将变量放在指定的地址中。

在代码中,可以通过在变量定义的地方添加__attribute__((section("section_name")))来将变量放在指定的地址中。例如:

```c
int __attribute__((section("my_section"))) my_variable;
```

在Lcf_Gnuc.lsl文件中,可以添加一个新的section来指示变量应该放置在哪个地址中。例如:

```c
section name="my_section" mappable=true {
    start=0x1000;
    end=0x2000;
};
```

然后,将变量放在该section中,如下所示:

```c
my_variable : load=CONST start=my_section start_var=my_section.end_var;
```

以上示例将变量my_variable放在0x1000地址中。根据具体需求,可以修改start和end以指定所需的地址范围。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分