ARM¶
查看cpu架构信息¶
Bash | |
---|---|
上述信息查看地点cputype.h
可以看到:
- 0x41是ARM cpu的架构实现
- 0xd05是 cortex A55
Arm Neon¶
交叉编译¶
linux x86 交叉编译为arm架构的32位/64位程序(使用g++)
Bash | |
---|---|
安装完成后即可以像使用g++一样使用arm-linux-gnueabi-g++去编译程序。同样连带着安装的还有arr2line、c++filt、nm、objdump、strip等交叉程序
编译完后直接运行可能会报No such file or directory
错误,这是因为编译方式默认是动态链接的,所以可以加-static
改为静态链接,就可以了。
关于gnueabi与gnueabihf¶
- 这两个都是适配arm32位的cpu的。gnueabi是对应ARMel port,支持无硬件FPU(floating-point unit)的旧32位arm处理器,即softfp; gnueabihf是支持至少是armv7架构的32位处理器,即hard(具有硬件浮点运算单元)
- 对应的适配arm64 port的是 armv8以上的arm64位处理器,对应的交叉编译工具是g++-aarch64-linux-gnu和gcc-aarch64-linux-gnu