一、ARM目前支持的三大工具链
1 ARM RealView(armcc),keil中用到的是armcc
2 IAR EWARM(iccarm)
3 GNU Compiler Collection
二、关于ARM编译工具
编译工具可帮助用户建立可执行映像,链接部分目标文件,共享目标文件,还可将映像转换为不同的格式。
典型的应用开发可能会涉及到如下的步骤:
armcc为主应用程序编译C / C ++源代码;
armasm编译与硬件操作密切的汇编源代码,例如中断服务程序;
armlink链接所有的目标文件,并生成一个映像image;
fromelf将生成的映像转换为flash中存储的纯二进制格式,Intel Hex格式,和Motorola-S格式;
下图展示了在典型的应用开发中如何使用编译工具链:
三、存储器映射
从参考资料2中查询可知,在未规定存储器映射的image中,链接器根据默认内存映射放置代码和数据。而对于基于ARMv6-M和ARMv7-M架构的处理器来说,它们有着固定的存储器映射。这样使得在这些处理器上移植软件变得更加容易实现。