打印
[通用 MCU]

英飞凌 AURIX Development Studio工程移植到Hightec的方法

[复制链接]
3991|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
软件简介
AURIX™ Development Studio是英飞凌针对AURIX TC2XX/TC3XX系列单片机推出了一款免费的软件,集成了iLLD库,内置Tasking compiler和Tasking Debugger,但这两个模块只能用于非商业用途,可供学习和试用。iLLD库是英飞凌为TC2XX和TC3XX Tricore系列单片机提供的底层驱动库,有完善的使用手册,和较好的移植性。

Hightec是一款可以用来开发Aurix系列单片机的编译器,有免费版,可商用,集成GCC编译器,可用UDE进行调试。下载链接见官网:
https://free-entry-toolchain.hightec-rt.com/index.php

Hightec编译器不自带iLLD库,所以我们可以用AURIX DevelopmentStudio(后文简称ADS)来新建一个带iLLD库的工程,再移植到Hightec。

本文就来介绍一下具体的移植方法。

使用特权

评论回复
沙发
wangtaohui|  楼主 | 2024-4-30 19:09 | 只看该作者
移植方法
(1)新建一个ADS工程
以TC377为例,新建好的工程如下图所示:

使用特权

评论回复
板凳
wangtaohui|  楼主 | 2024-4-30 19:09 | 只看该作者
简要介绍下各个文件夹所包含的内容:

Configurations:包含了一些芯片启动配置代码,如BMHD等
Debug:以Debug模式编译时生成的文件夹,包含生成的.o文件、hex文件、map文件等
Libraries:这个文件夹就是官方提供的库文件,包含了iLLD底层驱动库、启动代码SSW、寄存器定义,以及官方提供的一些常用系统接口函数,如延时、CRC等
CupX_Main.C就是各个CPU的main函数,MCU上电先由CPU0执行SSW中的启动代码,再依次启动其它CPU,跳转到各自的main函数。
*.lsl:这两个就是连接脚本,带Tasking的是ADS和Tasking编译器用的,带Gnuc的是GCC用的,一会我们一直到hightec的时候用的连接脚本就是Lcf_Gnuc_Tricore_Tc.lsl。

使用特权

评论回复
地板
wangtaohui|  楼主 | 2024-4-30 19:09 | 只看该作者
新建一个Hightec工程
新建一个Hightec工程,选择TC377系列,勾选“Create Empty Project”:

使用特权

评论回复
5
wangtaohui|  楼主 | 2024-4-30 19:10 | 只看该作者
新建好的Hightec工程如下图所示:

使用特权

评论回复
6
wangtaohui|  楼主 | 2024-4-30 19:10 | 只看该作者
复制源码
把源码从ADS文件夹复制到Hightec工程文件夹:

使用特权

评论回复
7
wangtaohui|  楼主 | 2024-4-30 19:10 | 只看该作者
把工程主路径下的三个main.c文件复制到src文件夹下,测试的时候发现放到主目录下无法编译:

使用特权

评论回复
8
wangtaohui|  楼主 | 2024-4-30 19:10 | 只看该作者
打开Hightec工程,点击F5可刷新工程,刷新后就可以看到复制过来的文件:

使用特权

评论回复
9
wangtaohui|  楼主 | 2024-4-30 19:11 | 只看该作者
添加头文件路径
点击“Project-Properties”,打开工程属性设置框,在如下位置添加包含源码的所有文件夹路径:

使用特权

评论回复
10
wangtaohui|  楼主 | 2024-4-30 19:11 | 只看该作者
配置启动文件
如下图所示,勾选不使用Hightec自带的启动代码,因为iLLD中集成了SSW启动代码,勾选之后可以从iLLD的_START函数启动。

使用特权

评论回复
11
wangtaohui|  楼主 | 2024-4-30 19:11 | 只看该作者
选择使用从ADS工程复制过来的链接脚本
在如下位置填写:"$ {workspace_loc:/$ {ProjName}/Lcf_Gnuc_Tricore_Tc.lsl}",以选用从ADS复制过来的链接脚本。【注意两个$ 后面有个空格,不然CSDN网页显示会有错误,复制的时候注意删除】

使用特权

评论回复
12
wangtaohui|  楼主 | 2024-4-30 19:15 | 只看该作者
到此就完成了工程移植的所有必要步骤,下面再介绍一些可选的配置。

使用特权

评论回复
13
wangtaohui|  楼主 | 2024-4-30 19:16 | 只看该作者
其它配置项
(1)配置为ROM编译
Hightec工程默认是RAM编译,即编译到RAM中,我们要想让编译后的代码在Flash中运行,就需要配置为ROM编译,方法如下:

使用特权

评论回复
14
wangtaohui|  楼主 | 2024-4-30 19:16 | 只看该作者
【注意:更改编译方式后,需要重新设置上文所述的头文件路径、链接脚本路径以及启动文件,头文件路径比较多可以从RAM复制过来】

使用特权

评论回复
15
wangtaohui|  楼主 | 2024-4-30 19:16 | 只看该作者
设置生成Hex文件
在图中位置可以添加PreBuild 步骤和PostBuild步骤,在PostBuild步骤中就有生成Hex文件的选项。添加后编译即可在编译文件夹下生成Hex文件:

使用特权

评论回复
16
wangtaohui|  楼主 | 2024-4-30 19:17 | 只看该作者
此外还有一种方法:
在下图中的位置处输入:tricore-objcopy.exe -O ihex ${BuildArtifactFileBaseName}.elf ${BuildArtifactFileBaseName}.hex,也可以生成Hex文件:

使用特权

评论回复
17
wangtaohui|  楼主 | 2024-4-30 19:17 | 只看该作者
(3)提高Hightec编译速度的两个方法
工程大了之后,Hightec的编译速度非常慢,有以下两种方式可以提高编译速度:

使用特权

评论回复
18
wangtaohui|  楼主 | 2024-4-30 19:18 | 只看该作者
(3)提高Hightec编译速度的两个方法
工程大了之后,Hightec的编译速度非常慢,有以下两种方式可以提高编译速度:

使用特权

评论回复
19
wangtaohui|  楼主 | 2024-4-30 19:18 | 只看该作者
① 配置并行编译
在如下路径处可以开启多核编译,开启后编译速度能有效提高:

使用特权

评论回复
20
wangtaohui|  楼主 | 2024-4-30 19:18 | 只看该作者
取消自动生成Makefile文件
在如下路径处可以取消自动生成MakeFile文件的勾选,这个选项勾选的话每次编译Hightec都会为每个源文件生成Makefile文件,会花费大量时间,取消勾选后不会重新生成,只进行编译。但需要注意的是,添加或删除源文件,或更改编译选项后,需要重新打开Makefile文件的生成至少一次,否则不会编译的时候还会用原来的Makefile文件。

使用特权

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

本版积分规则

43

主题

482

帖子

0

粉丝