基于GNU的ARM汇编开发环境介绍?arm开发是什么?
基于GNU的ARM汇编开发环境介绍?
没有用于过实际开发,仅仅是个人尝试,目标架构是ARM:
测试环境:Windows8.1 +
MSYS2 with Mingw, Clang, LLVM
+GNU Tools for ARM Embedded Processor
首先用用Clang生成LLVM字节码
clang -emit-llvm --target=arm-none-eabi -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
注意,需要手动添加
GNU Tools for ARM Embedd
的头文件然后用llc生成汇编代码
接着,使用
GNU Tools for ARM Embedded Processor
的汇编器生成可执行文件arm-none-eabi-as -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
二进制文件用
GNU Tools for ARM Embedded Processor
里的arm-none-eabi-objcopy生成一些需要注意的地方是Clang的默认配置可能和目标架构的汇编器不一致。比如arm-none-eabi-as会默认开启short-enums,当直接使用arm-none-eabi-gcc时这不是问题,因为编译器也默认开启了这个选项,但Clang不会,所以需要手动加上-fshort-enums。arm开发是什么?
ARM开发具体是:工程师使用ARM嵌入式Linux操作系统进行内核编译及文件系统制作,使用相关开发工具进行ARM软、硬件开发设计的专业技术人员。
英国ARM公司是全球领先的半导体知识产权 (IP) 提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构 。ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。