|
|
51CTO旗下网站
|
|
移动端

1.4 ARM编程

《ARM嵌入式系统编程与优化》第1章Linux/ARM嵌入式平台,本章介绍如何使用GCC编译器、汇编器和连接器来编写和执行独立的汇编语言程序,以及如何将一个C语言代码和汇编语言代码合起来,以验证汇编代码子程序的正确性。本节为大家介绍ARM编程。

作者:梁元宇 译来源:机械工业出版社|2017-09-26 19:00

1.4 ARM编程

可以用各种高级编程语言编写ARM处理器。一些ARM处理器本身还可以执行Java字节码。话虽如此,但因为本书主要关注的是代码性能,所以采用C语言编程。

GCC和Clang是两个最流行的开源C/C++的编译工具链,它们包括ARM处理器的后端,支持完整的C/C++开发、库支持以及调试。ARM Holdings、Keil公司以及德州仪器为ARM提供商业编译工具链。商业编译器可以产生比开源编译器更快的目标码,但是为了忠于Linux,本书使用Linux的官方编译器GCC来描述高级代码的特征。

像ARM这样的RISC架构起初是用一个小而简单的指令集设计的。这使得编译器能够有效地利用可用指令。然而,大多数现代指令集架构包括那些来自ARM和英特尔的ISA都增加了诸如多媒体、数字信号处理等复杂指令。许多这些指令允许单一指令处理多个输入(这就是所谓的单指令多数据流即SIMD指令)。现在的编译器面临一个困难,即如何在程序员不参与的情况下有效地使用这些指令。

一般来说,利用这些指令(并获得由此产生的性能提升)要求程序员使用内联汇编或者内联函数。内联函数是用于解析编译时具体指令的函数。内联函数比汇编语言更易使用,但一些优化技术还是需要用到汇编语言。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C++编程你也行

本书是一本优秀的C++教材,内容包括:基础类型、操作符和简单变量,循环和决策,命名空间和C++标准库,用C++编写函数,行为、序列点和求值...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊