从零开始学ARM Coretex-M3(STM32F1) 汇编语言(一)

                                                                         1 前言

如今基于ARM内核的处理器被广泛运用于各种场景,说是无人不知无人不晓也毫不过分。本文将从零开始讲解如何用汇编语言编写

可运行在ARM Coretex-M3处理器上的程序,并尝试使用ARM Coretex-M3处理器的各种功能。

 

1.1 为何要使用汇编语言?

众所周知,如今在各种高级编译优化技术加持下的高级语言(特别是c和c++),其执行效率与汇编语言比已是相差无几了。另外,ARM架构的处理器其实已经从硬件层面专针对高级语言做了优化,再加上高级语言的其他优势(如强可阅读性)。按理说我们应该没有必要再学晦涩难懂的汇编语言才是。然而,我们在一些特殊情况下还是不得不编写或阅读汇编代码,如:debug、编写bootloader和操作系统、逆向工程、优化性能敏感的关键程序片段......等。如此看来,掌握汇编 语言还是有用武之的。那么就请跟随本文用纯ARM汇编语言一步一步编写一个完整的应用程序,在这过程中你会逐步学到汇编方面的各种知识。

 

1.2 ARM公司简介

ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 1985年第一个ARM原型在英国剑桥诞生。

公司的特点是只设计芯片,而不生产。它提供ARM技术知识产权(IP)核,将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。有ARM7/ARM9等多个版本。除了一些Unix图形工作站外,大多数ARM核心的处理器都使用在嵌入领域。

ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

 

1.3 ARM处理器家族概览

多年来, ARM 已经研发了相当多的不同的处理器产品。 ARM 处理器产品分为经典 ARM 处理器系列和最新的 Cortex处理器系列。并且根据应用范围的不同,ARM 处理器可以分类成 3 个系列。

Application Processors (应用处理器)–面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过 1GHz),支持像 Linux,Android,MS Windows 和移动操作系统等完整操作系统需要的内存管理单元(MMU)。如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择 ARM应用处理器.

Real-time Processors (实时处理器)–面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持 MMU,不过通常具有 MPU、Cache 和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如 200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理器不能运行完整版本的 Linux 和 Windows 操作系统,但是支持大量的实时操作系统(RTOS)。MicrocontrollerProcessors (微控制器处理器)–微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在 200Mhz 之上)。并且,新的 Cortex-M处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。

 

 

你可能感兴趣的:(嵌入式,linux)