一、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架构的处理器来说,它们有着固定的存储器映射。这样使得在这些处理器上移植软件变得更加容易实现。
&nbs

本文介绍了ARM Cortex-M4 STM32F4xx芯片的编译过程,包括ARM支持的三大工具链:RealView, IAR EWARM, GCC。详细阐述了编译工具链的作用,如armcc、armasm、armlink和fromelf的功能。此外,文章还探讨了存储器映射,特别是针对ARMv6-M和ARMv7-M架构的固定存储器映射规则。举例说明了在Keil5环境下编译STM32F4xx例程的过程,并解析了编译输出的map文件,详细解释了代码、数据、堆和栈在内存中的分布和初始化过程。"
41343981,1532179,AFNetworking2.0源码解析:响应解析与性能优化,"['iOS开发', '网络请求', 'AFNetworking', '响应式编程', '数据解析']
最低0.47元/天 解锁文章
1439

被折叠的 条评论
为什么被折叠?



