前言:

自己前段時間開始接觸基於Cortex-M7架構的STM32微控制器,從零開始摸索了很多,總結了很多資源。本想分享下自己的總結內容,但是偶然在 ARM 官方論壇的一篇學習路線與資源彙總的帖子,感覺很不錯,所有轉載分享下。感興趣的可以到原文地址,自己做了一些刪減。

原文地址:如何從零開始利用ARM微控制器相應資源 - 中文社群部落格 - 中文社群 - Arm Community

1 –

總覽

對於一個ARM微控制器的初學者來說,有時候要找到一些有用的設計參考資訊是非常困難的一件事。因為在網上實在有太多資源了,最先遇到的困難可能就是能不能找到一個地方幫助你正確選擇一款ARM的處理器 ,目前,主要有兩種ARM處理器:

應用處理器Application processors

– 這些都是能跑作業系統的,比如Linux呀,Windows RT啥的。典型應用就是智慧手機,移動計算裝置甚至伺服器。 推薦用ARM Cortex-A 系列處理器

嵌入式處理器Embedded processors

–比較典型的包括微控制器產品,以及其他廣泛的嵌入式系統。目前在微控制器市場最流行的是ARM Cortex-M 處理器系列 ,而Cortex-R 處理器系列常用於專用控制器,比如硬碟驅動,汽車應用以及 基帶控制等。

當然最近幾年來,基於Cortex-A的微控制器也逐漸多起來了。這些微控制器可以跑Linux或者Android。和傳統的模組化電腦COM(computer-on-module)相比,成本降低了很多。

2- ARM

網站文件

要了解處理器相關資訊,您可以在developer。arm。com網站上獲得相關資訊,此外您還可以在ARM的資訊中心 (http://infocenter。arm。com) 可以找到大量的ARM技術文件。

2.1 –

應用處理器資源

如果你是一個應用處理器的開發人員,或者你想使用一個基於ARM Cortex-A處理器的微控制器,那麼下面的文件可以幫到你:

這些文件深入介紹了Cortex-A處理器的架構。如果需要了解處理器產品的概述和相關資訊,也可以訪問產品網頁 (

http://www。

arm。com/products/proces

sors/cortex-a/index。php

如果你需要為智慧手機開發基於Android,Linux或者WindowsRT的應用軟體,那麼最好從相應的SDK文件開始(Software Development Kit 軟體開發套件)。 因為經常在程式設計環境中,應用程式碼只需要利用裝置驅動或者作業系統的應用程式程式設計介面,而不需要直接關聯底層硬體。

2.2 –

嵌入式處理器資源

如果你對低成本和低功耗微控制器感興趣,那麼Cortex-M系列將是你的不二之選。這裡有一份初學者入門文件供你參考

您如果訪問

http://www。

keil。com/learn

網頁 ,就會發現ARM提供了教程,應用筆記,影片等有用的資源給Cortex-M微控制器的使用者。

同時在資訊中心你能找到很多嵌入式處理器的文件。比如有一系列的Cortex-M處理器的入門手冊:

處理器

入門手冊

Cortex-M7

https://

developer。arm。com/docum

entation/dui0646/b/

Cortex-M4

https://

developer。arm。com/docum

entation/dui0553/a/

Cortex-M3

https://

developer。arm。com/docum

entation/dui0552/a/

Cortex-M0+

https://

developer。arm。com/docum

entation/dui0662/b/

Cortex-M0

https://

developer。arm。com/docum

entation/dui0497/a/

這些文件涵蓋了程式設計模型,處理器內嵌外設(比如中斷控制器)以及指令設定等資訊。 不過,如果你需要了解其他外設,記憶體對映以及微控制器(系列)其他特點,還是需要閱讀微控制器製造商的使用者手冊

此外你還可以在ARM網站上找到更多的相關資訊。從2015年第一季度開始,Cortex-M7的相關文件也能查找了。

如果您是從ARM7切換到Cortex-M的使用者,這篇文件(稍微有點老)可能對您有一些幫助:

http://www。

arm。com/zh/files/pdf/Co

rtex-M3_programming_for_ARM7_developers。pdf

如果您是從Cortex-M4切換到Cortex-M7的使用者, 這篇應用筆記可以幫到你:NEW App Note: Migrating Application Code from ARM Cortex-M4 to Cortex-M7 Processors

而如果您需要Cortex-R的程式設計手冊,可以點選Cortex-R程式設計手冊

要找其他的Cortex-M產品資訊,請訪問這個網址

Cortex-M (

http://www。

arm。com/products/proces

sors/cortex-m/index。php

Cortex-R產品的資訊,則請訪問這個網址

Cortex-R (

http://www。

arm。com/products/proces

sors/cortex-r/index。php

2.3 –

ARM經典處理器資源

如果您選用的是ARM經典處理器例如ARM7TDMI 或者 ARM926EJ-S同樣也可以在ARM網站或者資訊中心找到相應文件資源 (

http://www。

arm。com/products/proces

sors/classic/index。php

)。 此外需要強調的是其實有很多微控制器是基於ARM7TDMI 或者 ARM9 處理器的。在ARM網站上,您同樣可以找到相應的大量技術參考手冊Technical Reference Manuals (TRM)。

同時,還有不少第三方也提供ARM7微控制器的學習指導文件。比如Hitex免費電子內部指導手冊就涵蓋了一些ARM7的微控制器產品 (

http://www。

hitex。com/index。php?

id=download-insiders-guides

)。

2.4 –

教育/教學用資源

ARM提供非常多的免費資料用於教學,中國大學的朋友們可以點選這個連結:ARM 大學計劃

2.5 –

ARM網站上的其他資源

在ARM資訊中心,除了產品資訊和使用者手冊以外,您還可以找到很多:

· 應用筆記和技術文章 (

http://

infocenter。arm。com/help

/index。jsp?topic=/com。arm。doc。set。appnotes/index。html

· FAQs和技術文章 (

http://

infocenter。arm。com/help

/topic/com。arm。doc。faqs/

同時,在Keil的網站上 (

http://www。

keil。com/

),我們為初學者提供教程和應用筆記(

http://www。

keil。com/learn

)還有許多應用筆記和教程告訴您如何為一些流行的微控制器開發程式碼 (例如

http://www。

keil。com/appnotes/list/

arm。htm

)。

3 –

其他資訊和資料

3.1 –

書籍

這裡可以找到ARM相關書籍:

http://www。

arm。com/support/resourc

es/arm-books/index。php

3.2 –

線上資源

除了ARM的官網,還有很多地方有不少好的資料

在ARM線上社群, Alban Rampon 建立了一個 MCU resources。的網頁

Stephan Cadene 也在LinkedIn上建立一個有用文件的列表:

Some links and books to begin in ARM Architectures

http://www。

linkedin。com/groups/Som

e-links-books-begin-in-85447。S。204601318

微控制器廠商也有很多文件,教程,應用筆記等資源。有些廠商還有自己的論壇:

廠商

官網網址

Atmel

http://

forum。atmel。com/

Cypress

http://www。

cypress。com/?

app=forum

Freescale

https://

community。freescale。com

/community/kinetis

Infineon

http://www。

infineonforums。com/foru

ms/3-Microcontroller-Forum

NXP

http://

forums。nxp。com/

Silicon Laboratories

http://www。

silabs。com/support/foru

ms/pages/default。aspx

ST Microelectronics

https://

my。st。com/public/STe2ec

ommunities/mcu/Lists/STM32Discovery/AllItems。aspx

Texas Instruments

Cortex-M -

http://

e2e。ti。com/support/micr

ocontrollers/stellaris_arm/f/default。aspx

Cortex-R -

http://

e2e。ti。com/support/micr

ocontrollers/hercules/f/default。aspx

Toshiba

https://

forum。toshiba-components。com

/forumdisplay。php?1-Microcontroller

3.3 –

影片

在Youtube上可以找到很多ARM的相關影片比如 ARMflix 頻道

http://www。

youtube。com/user/ARMfli

x

。ARMflix包含很多有用的教程幫助你學習ARM架構和開發工具,其中也包含 介紹ARM架構基本原理的內容ARM Architecture Fundamentals由 Chris Shore 釋出(

http://www。

youtube。com/watch?

v=7LqPJGnBPMM

)。 中國使用者可以去ARM的優酷網站觀看其中一部分影片,請點選:ARM視界

3.4 –

開發工具

通常當你安裝一個開發套件的時候,裡面就已經包含有文件了(有一些甚至還有快速學習指導文件)以及樣例專案。這些可以幫助你儘快理解軟體開發流程和開展專案

當然也請不要忘記到工具廠商的網站去檢查一下有沒有其他的應用筆記。

3.5 -

mbed

開發平臺

mbed 是一個易於使用並且低成本的微控制器軟體開發平臺幫助你開發ARM微控制器。mbed板子設計就是用來輕鬆上手的,並且這個開發環境提供大量的外設和中介軟體的API,你可以為你的系統找到合適的範例。建議從第二版mbed SDK上手,SDK是開源的 (mbed)