• 287查看
  • 0回复

[应用层软件] TASKING Tc3**Link文件解析

[复制链接]


该用户从未签到

发表于 8-3-2024 20:53:46 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师



    LSL常用关键字:

TASKING Tc3**Link文件解析w1.jpg

2.Link文件解析

在AURIX? 2G中,每个CPU都有挂载在指令总线上的PSRAM(ProgramScratch-Pad Ram)和挂载在数据总线上的DSRAM(Data Scratch-Pad Ram)。Tx3**可以做到0 cycle在PSRAM上运行代码,DSRAM存放数据。其实在PSRAM上也是可以存放数据的,只是效率会有所降低。

TASKING Tc3**Link文件解析w2.jpg

对应在ld文件中的定义,当然也要看具体使用的芯片。

TASKING Tc3**Link文件解析w3.jpg

2.1 DSRAM

TASKING Tc3**Link文件解析w4.jpg

Predefine Data/Data/BSS :

Data区域用来存放带初始值的全局变量,Bss区域是用来放没有初始值的全局变量。而关于Predefine:

TASKING Tc3**Link文件解析w5.jpg

如果在Ifx_Ssw_Tc1.c中定义了一个带初始值的变量,它就会被放到预先定义的区域 RAM 中了。

如果新建的.c文件,没有使用select,带初始值的变量会放入默认的data区域,基于

TASKING Tc3**Link文件解析w6.jpg

CSA(Context Save Areas)

TASKING Tc3**Link文件解析w7.jpg

CSA在函数调用、进出中断时保存上下文(通用寄存器)的区域。

STACK/Heap

stack分为ISTACK和USTACK对应中断服务程序和用户程序使用的栈区,heap为程序使用的堆,大小定义参考:

TASKING Tc3**Link文件解析w8.jpg

2.2 PFLASH

PFLASH中,text段用来存放代码,rodata段用于存放常量。

2.3 (d)LMU

TASKING Tc3**Link文件解析w9.jpg

LMU也是用于存放变量。

2.4 UCB

介绍swap的时候介绍过一部分。

TASKING Tc3**Link文件解析w10.jpg

3 实操

3.1 变量

首先尝试在工程中新建bottom_develop.c 然后定义变量:

TASKING Tc3**Link文件解析w11.jpg

TASKING Tc3**Link文件解析w12.jpg

可以看到是由于没有预先定义,被放入了默认定义的LMU中了。

TASKING Tc3**Link文件解析w13.jpg

尝试将整个.c通过select放入core5的dsram中

TASKING Tc3**Link文件解析w14.jpg

再去编译软件,可以看到变量的地址发生了变化。

TASKING Tc3**Link文件解析w15.jpg

3.2 代码

新建Psram_code.c,随便写一点代码

TASKING Tc3**Link文件解析w16.jpg

编译结果:

TASKING Tc3**Link文件解析w17.jpg

再去链接文件中指定位置

TASKING Tc3**Link文件解析w18.jpg

得到编译结果

TASKING Tc3**Link文件解析w19.jpg

4 补充

4.1在标定工作中,将标定结果通过hex刷写入mcu中,mcu上电时通过字段的load_addr将变量值拷贝给标定量。

4.2变量的定义除了使用slect外,使用pragma关键字可以在任一.c中指定变量位置。

TASKING Tc3**Link文件解析w20.jpg

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 11:04 , Processed in 0.403970 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.