打印
[其它产品/技术]

三种英飞凌Tricore工程生成可烧录文件方法

[复制链接]
3253|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2024-6-25 09:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jcky001 于 2024-6-25 09:46 编辑

为了便于大家理解,本文的思维导图大纲如下:



英飞凌芯片编译器类型总结
很多小伙伴在使用英飞凌Tricore芯片时,经常会涉及到如下五种不同的编译器类型:

ADS编译器:全称为Aurix Development Studio,是英飞凌官方免费的编译器,不需要license;

Tasking编译器:属于英飞凌官方需要进行付费获取license的编译器,其license一般可分为单机license与Floating license两种;

Hightec编译器:属于Hightec公司适配英飞凌芯片的编译器,不过Hightec有一年期可用的试用版本,获取方式可参考小T之前的文章链接《Hightec编译器之白**就是爽》,除了试用版本之外那就是需要付费的商业版本。

GreenHills编译器:属于GreenHills公司适配英飞凌芯片的编译器,属于商用版本;

WindRiver Diab编译器:属于WindRiver公司适配英飞凌芯片的编译器,也属于商用版本;

目前前三者编译器使用范围比后两者要广,生态可能更为丰富些,因此对于初学英飞凌Tricore芯片的小伙伴来说,可以先接触前三种编译器即可,其中ADS以及Hightec试用版不用收费,大家可以放心使用进行练手。

通过在autosar架构下经常使用的模块Memmap.h文件中便可以看到为了兼容上述五种不同编译器特性功能所作的适配如下图:



在开发英飞凌芯片的过程中,上述编译器类型都有可能用到,本文将重点讲解ADS,Tasking,Hightec这三类编译器生成可烧录文件的基本方法,最为常见的可烧录文件就是hex/srec两类文件。

正常在开发调试过程中,我们仅需要生成Elf文件即可,编译器会自动将Elf文件中的镜像数据烧录至芯片,但是如果涉及到UDS烧写或者OTA,就不能使用Elf文件直接进行烧录,需要将Elf文件转换为Hex文件或者S19文件之后才能进行使用。

小T之前在开发过程中曾经寻找这三类编译器转换为可烧录文件(如hex文件或者S19文件)的方法,比较费劲或者容易混淆,因此决定在一篇文章中总结给到大家,帮助大家提升效率。

ADS生成可烧录文件方式
在ADS IDE编译环境中,鼠标右击工程,然后选择点击”Properties“ 进入如下图中的属性配置界面:


image-20240609181941044
在Tasking Linker的Command一栏中用如下指令覆盖即可:

${COMMAND} ${FLAGS} ${OUTPUT_FLAG}"${BuildArtifactFileBaseName}.elf" -Wl${OUTPUT_FLAG}"${BuildArtifactFileBaseName}.hex:IHEX" -Wl${OUTPUT_FLAG}"${BuildArtifactFileBaseName}.sre:SREC" ${INPUTS}
其中起到关键作用的就是-Wl{BuildArtifactFileBaseName}.hex:IHEX" 以及-Wl{BuildArtifactFileBaseName}.sre:SREC"这两条指令,IHEX指令则用于生成hex文件,SREC指令则用于生成S-Record文件,这两条指令记得用空格隔开。

Tasking生成可烧录文件方式
1.IDE界面配置方式

在Tasking IDE环境中鼠标右击工程,然后选择点击”Properties“ 进入如下图中的属性配置界面:



2.指令方式

如果需要使用脚本调用Tasking编译器指令形式,可以通过如下指令实现:

2.1 生成Hex文件指令:

在链接过程中添加如下Options即可:

-Wl-O"${PROJ}.hex":IHEX:4
2.2 生成srec文件指令:

在链接过程中添加如下Options即可:

-Wl-O"${PROJ}.sre":SREC:4
注意事项:其中-Wl表示向Linker传递Option参数的固定前缀,${PROJ}可以自定义名字;


Hightec生成可烧录文件方式
1.IDE界面配置方式

如下为Hightec IDE下鼠标右击工程,然后选择点击”Properties“ 进入如下图生成可烧录文件的操作步骤:



其中"Generate hex"则用于生成Hex文件,“Generate srec”则用于生成S-Record文件,具体选择哪个取决于项目需要即可。

2.指令方式

2.1 生成Hex文件指令方式

tricore-objcopy -O ihex <elf-inputfile> <hex-outputfile>
2.2 生成srec文件指令方式

tricore-objcopy -O srec <elf-inputfile> <hex-outputfile>
小T已将上述ADS,Hightec,Tasking这三类编译器相关文档进行了统一整理,有需要的小伙伴公众号后台回复关键词"编译器"即可免费获取;

使用特权

评论回复
沙发
中国龙芯CDX| | 2024-6-27 09:58 | 只看该作者
正常在开发调试过程中,我们仅需要生成Elf文件或HEX文件

使用特权

评论回复
板凳
地瓜patch| | 2024-6-27 21:10 | 只看该作者
习惯用hex文件

使用特权

评论回复
地板
B1lanche| | 2024-7-10 12:45 | 只看该作者
使用英飞凌提供的集成开发环境(如DAVE™):英飞凌提供了专门的集成开发环境,如DAVE™,可以帮助开发人员进行Tricore芯片的工程开发和生成可烧录文件

使用特权

评论回复
5
Charlene沙| | 2024-7-10 13:51 | 只看该作者
通过DAVE™,开发人员可以进行代码编译、链接、生成可执行文件,并将其下载到目标Tricore芯片中

使用特权

评论回复
6
Estelle1999| | 2024-7-10 15:11 | 只看该作者
使用第三方集成开发环境(如Eclipse)

使用特权

评论回复
7
Alina艾| | 2024-7-10 16:17 | 只看该作者
一些开发人员可能选择使用第三方的集成开发环境,如Eclipse,结合英飞凌提供的插件或者工具链,进行Tricore芯片的工程开发和生成可烧录文件

使用特权

评论回复
8
Candic12e| | 2024-7-10 17:22 | 只看该作者
使用命令行工具链,英飞凌也提供了命令行工具链,开发人员可以通过命令行进行代码编译、链接、生成可烧录文件等操作。这种方法适用于一些需要自动化构建流程的场景

使用特权

评论回复
9
Emily999| | 2024-7-10 18:30 | 只看该作者
生成可烧录文件的过程通常包括代码编译、链接、生成目标文件(如ELF格式)、以及将目标文件转换为可烧录文件(如S19、hex等格式),最终可以通过英飞凌提供的烧录工具将可烧录文件下载到目标Tricore芯片中

使用特权

评论回复
10
Annie556| | 2024-7-11 08:46 | 只看该作者
对的,用官方的开发软件进行烧录就好了

使用特权

评论回复
11
Betty1299| | 2024-7-11 10:09 | 只看该作者
这英飞凌的芯片不好弄,主要可能是多核的,很容易烧

使用特权

评论回复
12
alxd| | 2024-7-11 12:00 | 只看该作者
话说,jlink是不是就可以烧录啊?

使用特权

评论回复
13
Carina卡| | 2024-7-11 20:49 | 只看该作者
一般都是用他家的eclipse的吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1522

主题

4615

帖子

6

粉丝