本文档用于指导客户如何使用交叉编译功能。本文档基于TASKING_TriCore-VX_v6.3r1和v4.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-checking或C编译器选项--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àMiscellaneous的Additional options里面添加相关的命令,或在命令行中进行添加。
如何添加对象文件:
您可以将对象文件(.o)放到单独的文件夹中,以方便您的文件管理及更新
按照下面的步骤添加对象文件
a. Open project Properties 打开项目属性设置界面
b. C/C++ BuildàC/C++ Compilerà SettingsàLinkeràData Objects
添加完不同版本的对象文件,我们就可以重新编译,生成新的elf及hex文件,用于调试。
关于九游会J9电子
九游会J9电子是国内全面的开发工具提供商, 致力于将全球先进的软件产品引荐给国内研发型企业使用,为企业提供研发、设计、管理过程中使用的各种软件工具,并致力于和客户一同提高研发、设计效率,缩短设计周期。九游会J9电子先后与arm、Altium、Ansys、QT、TestPlant、CollabNet、Parasoft以及TouchGFX等多家全球知名公司建立战略合作伙伴关系,并成为他们在中国区的重要分销合作伙伴。
九游会J9电子专注开发、设计、管理工具数十年,客户超过6000家,具有丰富的工具使用及客户支持经验积累,可以为客户提供从arm开发、EDA板级设计、软件编译及测试工具、结构设计工具、多物理场仿真工具以及嵌入式GUI工具等产品与服务。九游会J9电子在北京、上海、深圳设有分公司,业务遍布全国。