Aurix Tricore TC397定义变量至指定的地址空间

目录

一、背景

二、链接设置

1、第一种方法:使用attribute属性

2、第二种方法:使用#pragma属性

3、第三种方法:使用预定义属性


一、背景

AURIX TC397一般拥有多块存储器,包括PSRR、DSRR、DLMU、LMU等,在AURIX development studio下的lsl链接文件中定义了这几个区段。

在默认的lsl链接文件中使用LCF_DEFAULT_HOST选项将.data .bss .romdata等段链接至指定的位置中。

 

 但是在实际的使用中由于所需的变量的可能大小过大,无法存储在默认的存储空间中,可以将该变量链接至其他存储空间。

二、链接设置

以下方法适用于TaskingAurix Development Studio

1、第一种方法:使用attribute属性

使用__attribute__(( section( ".bss.bss_cpu0")))属性在定义变量的时候将变量定义至指定的位置

uint8_t  __attribute__(( section( ".bss.bss_cpu0"))) ucHeap[configTOTAL_HEAP_SIZE];

".bss.bss_cpu0"是在lsl文件中定义好的段(此处注意要完全按照lsl文件中的定义)

2、第二种方法:使用#pragma属性

使用#pragma section属性可以将一段定义都定义至指定的位置

#pragma section farbss  "bss_cpu0"

uint8_t  ucHeap[configTOTAL_HEAP_SIZE];

#pragma section farbss  restore

该方法

#pragma section farbss  "bss_cpu0"开始,"bss_cpu0"是在lsl文件中定义好的段

#pragma section farbss  restore结束,

在这两个宏之间的.bss定义都将链接至"bss_cpu0"中

3、第三种方法:使用预定义属性

使用编译器预定的属性

如果要定义数据,使用BEGIN_DATA_SECTIONEND_DATA_SECTION即可

BEGIN_DATA_SECTION(lmubss)
uint8 ucHeap[256 * 1024];
END_DATA_SECTION

lmubss是在lsl链接文件中定义的段

tips:更多关于编译链接的问题可以查阅 Tasking编译器手册:Tasking编译器用户手册-嵌入式文档类资源-CSDN下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huskiey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值