Arm Compiler for Embedded (AC6) 与 Arm GNU Toolchain (GCC) 并非 100% 兼容。AC6 使用专有链接器,需要 Arm scatter-loading 文件而不是 GNU 式链接器脚本来在内存中排列代码和数据。下一代 Arm 嵌入式工具链(ATfE)是 100% 开放源代码,使用 LLVM 的 “ld ”链接器,可接受 GNU 风格链接器脚本。这是否意味着目前使用 GCC 构建的嵌入式项目无需修改即可使用 ATfE 构建?
不是,ATFE 和 GCC 并不完全兼容。要使用 ATfE 构建 GCC 项目,需要进行一些修改。这些修改主要源于 C 库之间的差异: ATfE 的 Picolibc 和 GCC 工具链的 Newlib。在这篇博文中,我将介绍作为 Arm Development Studio 套件一部分提供的 startup_Armv8-Ax1 示例项目。这是一个带有链接器脚本和启动代码的小型项目,已经使用 GCC 进行了构建,因此是一个理想的实验项目。
作者:Paul Black
文章来源:https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/migrating-a-project-from-gcc-to-arm-toolchain-for-embedded
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区 Arm 技术专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。