Board logo

标题: 在CPAK上使用ARM Compiler6 [打印本页]

作者: look_w    时间: 2018-1-24 19:57     标题: 在CPAK上使用ARM Compiler6

介绍
ARM® Cortex®-A57与Cortex-A53处理器CPAK提供的64位裸机软件实例,用户可以修改并使用DS-5的ARM Complier 6来重新编译。
ARM Complier 6是基于Clang和LLVM的编译框架,同时提供最佳的ARM架构代码生成。

迁移指南
如果需要更好理解armcc与armclang的差异,请参考 ARM Compiler Migration Guide。该文档描述了两个编译器之间的命令行差异,以及如何映射新旧编译器的编译开关。文档还包括两个额外的工具已帮助切换编译器:
兼容性检查程序可帮助找出源代码在迁移中的问题,而转换包装程序让用户可以像以往一样自动调用ARMCC等效选项,但同时隐藏armclang的调用。迁移会涉及新的编译器调用和开关,但也可能涉及诸如语法和属性等因编译器不同而已的源代码改动。

在Cortex-A53 CPAK上使用Compiler 6
本文选用Cortex-A53 CPAK中Applications目录下的DecrDataMP_v8用例。这是个双Cluster且每个Cluster单个core的Cortex-A53系统,同时包括保证Cache一致性的CCI-400和连接外设的NIC-400。系统框图如下:

用Linux bash将DS-5的bin/路径添加到相关的环境路径来建立DS-5工作环境。根据安装情况调整如下路径:
$ export PATH=$PATH:/o/tools/linux/ARM/DS5_5.<version>/64bit/bin
其中<version>是所安装的DS-5版本。
注意:最新的DS-5 32bit与64bit版本均已支持ARM Compiler6。
第一步,使用ARM Compiler 6来编辑Makefile,将armcc替换为armclang来编译C文件。汇编文件仍可以使用armasm编译以及armlink来链接。armclang也可以用来编译和链接汇编代码,在此本示例不多作阐述。
Makefile将compiler定义为CC变量,所以CC=armclang。
第二步,接下来重要的改动是目标CPU的说明。armcc中我们使用--cpu的选项,比如用户可以在Makefile中看到--cpu=8-A.64.no_neon。下面命令可以帮助得到所有可能的目标cpulist:
$ armcc --cpu list
第三步,armclang中目标CPU选择使用-target选项。如果选用AArch64,使用 -target aarch64-arm-none-eabi即可。
命令调用和目标CPU选择是armcc到armclang切换的主要区别。

其他选项

下表总结了新旧compiler的主要区别:
ARM Compiler 5
ARM Compiler 6
使用armcc
使用armclang
--cpu=8-A.64.no_neon
-target aarch64-arm-none-eabi
--dwarf3
None
-Ospace
-Os

--force_scanlib


创建DS-5 Eclipse工程
我们使用DS-5 Eclipse环境来编译文中示例,下面步骤使用新的Makefile工程:
1。首先打开Eclipse
$ eclipse &
2。等待Eclipse打开,使用菜单File -> New -> Makefile Project with Existing Code创建工程。
3。对话框中输入工程名,浏览至代码所在位置,选择ARM Compiler6作为Toolchain for indexer settings。

4。一旦工程建好,使用工程菜单中Build Project来编译代码。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0