Tasking之交叉编译 Cross Linking
发布时间:2019-10-23

本文档用于指导客户如何使用交叉编译功能。本文档基于TASKING_TriCore-VX_v6.3r1v4.2r2编写。

    随着AUTOSAR的广泛使用,编译器的更新速度越来越快,以满足不断变化的需求。由于汽车的开发流程较长,同一个项目的不同开发阶段,会用到不同版本的TASKING版本,如果最终使用最新版本进行编译,之前老的版本的代码需要重新进行单元测试验证,以保证代码安全。

    交叉链接用于解决处理不同版本TASKING软件之间开发的软件最终使用同一个版本编译器编译的问题。因为用不同版本编写代码时所使用的编译选项可能会有所不同,可以对现有的代码生成.o对象文件后加到同一个版本里,这样可以使用源代码工程中的编译选项,保证已经经过验证的代码不受影响。

下面的参数在编译器中对于项目是统一设置的的:

--eabi=+bitfield-align

--eabi=+char-bitfield

--eabi=+half-word-align

--eabi=+word-struct-align

--fp-model=+float

--integer-enumeration

--mmu-on and --mmu-present

--signed-bitfields

--uchar

通过指定C编译器选项 --global-type-checkingC编译器选项--debug-info 和链接器选项--global-type-checking来检查因为这些选项使用不同设置导致的问题(或者使用MIL链接时)。但是只有对旧的对象使用--global-type-checking 或者 --debug-info

还要注意,编译器的选项--eabi-compliant是一组--eabi选项标准的别名。为确保兼容性,当您使用--eabi选项标记char-bitfield(在v6.1r1中引入)时,当您交叉链接旧版本编译出的对象文件时,不应禁用word-struct-align(在v6.2r1中引入)和bitfield-align(在v6.3r1中引入),既不是直接交换也不是通过选项--eabi-compliant

此外,建议将TriCore编译器的以下选项对整个应用程序或PIC模块使用相同的值(这包括相应的编译指示)

--core

--default-a0-size

--default-a1-size

--default-near-size

--fp-model=+soft

--fp-model=+trap

--pic

--silicon-bug

在项目属性àC/C++ BuildàSettingsàC/C++ CompileràMiscellaneousAdditional options里面添加相关的命令,或在命令行中进行添加。

 

如何添加对象文件:

您可以将对象文件(.o)放到单独的文件夹中,以方便您的文件管理及更新

按照下面的步骤添加对象文件

a.     Open project Properties 打开项目属性设置界面

b.     C/C++ BuildàC/C++ Compilerà SettingsàLinkeràData Objects

添加完不同版本的对象文件,我们就可以重新编译,生成新的elfhex文件,用于调试。

 

关于九游会J9电子

九游会J9电子是国内全面的开发工具提供商, 致力于将全球先进的软件产品引荐给国内研发型企业使用,为企业提供研发、设计、管理过程中使用的各种软件工具,并致力于和客户一同提高研发、设计效率,缩短设计周期。九游会J9电子先后与armAltiumAnsysQTTestPlantCollabNetParasoft以及TouchGFX等多家全球知名公司建立战略合作伙伴关系,并成为他们在中国区的重要分销合作伙伴。

九游会J9电子专注开发、设计、管理工具数十年,客户超过6000家,具有丰富的工具使用及客户支持经验积累,可以为客户提供从arm开发、EDA板级设计、软件编译及测试工具、结构设计工具、多物理场仿真工具以及嵌入式GUI工具等产品与服务。九游会J9电子在北京、上海、深圳设有分公司,业务遍布全国。