单片机/MCU论坛
直播中

山中老虎

8年用户 930经验值
擅长:制造/封装
私信 关注

请问TC39x如何将变量放到自定义的段中去呢?

哪位知道如何将变量放到自定义的段中去呢?__attribute__ ((section(".MySec")))  const tU32 M_A1 = 0;__attribute__ ((section(".MySec")))  const tU32 M_A12= 2;我通过使用__attribute_可以将非0的数据放到MySec段中去,但对初始值为0的变量不起作用。                                                                                                                                                                                                                                                                                                                                                                                          

回帖(2)

余婧

2024-1-31 10:31:08
这个需要在创建段时需要在链接文件配置放到flash一份自定义的段,并且需要你自己在启动时初始化,启动时需要从flash拷贝到你定义的相关段,你所指定的段的变量就能达到你想要的结果了。 
举报

xymbmcu

2024-1-31 15:38:45
对于初始化值为0的变量,可以使用`__attribute__ ((section(".MySec")))`的方式将其放入自定义段中去。需要注意的是,由于在初始化时,未被显式声明的全局变量会默认被初始化为0,因此这些变量会被放在默认的段中,而非自定义段中。为了将他们放到自定义段中,需要在变量声明时显式地将其初始化为0。

例如:

```c
__attribute__ ((section(".MySec"))) const tU32 M_A1 = 0;
__attribute__ ((section(".MySec"))) const tU32 M_A12 = 2;
```

这样,变量M_A1和M_A12都会被放到自定义的.MySec段中。
举报

更多回帖

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