從零開始學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 微控制器處理器在單片機和深度嵌入式系統市場非常成功和受歡迎。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章