0 Preface
当前的arm 编译器在2016年就开始使用arm compiler 6。即将armcc改为armclang。
- Clang(发音为/ˈklæŋ/类似英文单字clang) 是一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。Clang这个软件项目在2005年由苹果电脑发起,是LLVM编译器工具集的前端(front-end),目的是输出代码对应的抽象语法树(Abstract Syntax Tree, AST),并将代码编译成LLVM Bitcode。接着在后端(back-end)使用LLVM编译成平台相关的机器语言 。Clang支持C、C++、Objective C。
- 在Clang语言中,使用Stmt来代表statement。Clang代码的单元(unit)皆为语句(statement),语法树的节点(node)类型就是Stmt。另外Clang的表达式(Expression)也是语句的一种,Clang使用Expr来代表Expression,Expr本身继承自Stmt。节点之下有子节点列表(sub-node-list)。
- Clang本身性能优异,其生成的AST所耗用掉的内存仅仅是GCC的20%左右。FreeBSD操作系统自2014年1月发行的10.0版本开始将Clang/LLVM作为默认编译器。
- ARM Compiler 6 brings together the modern LLVM compiler infrastructure and the highly optimized ARM C
- libraries to produce performance and power optimized embedded software for the ARM architecture. Efficient code generation, better diagnostics, and faster feature development.
Since ARM Compiler 6 is based on a new technology it is only partially compatible with previous ARM- Compiler Versions (5 and before). This application note guides to port your application source code, compiler settings and make best use of new compiler optimizations and diagnosis facilities.
https://developer.arm.com/docs
compiler 6之前
https://developer.arm.com/docs/dui0471/m/embedded-software-development
compiler 6
https://developer.arm.com/docs/100748/0614/preface
1 armcc
实际工程工具链替代的没有这么快,所以一些老的项目中仍然在使用armcc。
https://developer.arm.com/docs/dui0472/m/language-extensions
其中command line option在chapter 8。
- -via filename
该命令打开文件名为filename的文件,并从中读取命令行选项。用户可以对-via进行嵌套调用,亦即,在文件filename中又通过-via finlename2包含了另外一个文件。
2 armclang
v6.6
https://developer.arm.com/docs/dui0774/j/preface
3 armasm
v6.6
https://developer.arm.com/docs/dui0801/j/preface
4 armlink
v6.6
https://developer.arm.com/docs/dui0803/j/preface
5 armar
v6.6
https://developer.arm.com/docs/dui0806/j/preface