欢迎来我的知乎专栏:声学信号处理 - 知乎 (zhihu.com)
前言:
自己前段时间开始接触基于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处理器的微控制器,那么下面的文档可以帮到你:
Documentation - Arm Developerdeveloper.arm.com
这些文档深入介绍了Cortex-A处理器的架构。如果需要了解处理器产品的概述和相关信息,也可以访问产品网页 (http://www.arm.com/products/processors/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/documentation/dui0646/b/ |
Cortex-M4 | https://developer.arm.com/documentation/dui0553/a/ |
Cortex-M3 | https://developer.arm.com/documentation/dui0552/a/ |
Cortex-M0+ | https://developer.arm.com/documentation/dui0662/b/ |
Cortex-M0 | https://developer.arm.com/documentation/dui0497/a/ |
这些文档涵盖了编程模型,处理器内嵌外设(比如中断控制器)以及指令设置等信息。 不过,如果你需要了解其他外设,内存映射以及微控制器(系列)其他特点,还是需要阅读微控制器制造商的用户手册
此外你还可以在ARM网站上找到更多的相关信息。从2015年第一季度开始,Cortex-M7的相关文档也能查找了。
如果您是从ARM7切换到Cortex-M的用户,这篇文档(稍微有点老)可能对您有一些帮助:http://www.arm.com/zh/files/pdf/Cortex-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/processors/cortex-m/index.php)
Cortex-R产品的信息,则请访问这个网址
Cortex-R (http://www.arm.com/products/processors/cortex-r/index.php)
2.3 – ARM经典处理器资源
如果您选用的是ARM经典处理器例如ARM7TDMI 或者 ARM926EJ-S同样也可以在ARM网站或者信息中心找到相应文档资源 (http://www.arm.com/products/processors/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/resources/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/Some-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/forums/3-Microcontroller-Forum |
NXP | http://forums.nxp.com/ |
Silicon Laboratories | http://www.silabs.com/support/forums/pages/default.aspx |
ST Microelectronics | https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/AllItems.aspx |
Texas Instruments | Cortex-M - http://e2e.ti.com/support/microcontrollers/stellaris_arm/f/default.aspx Cortex-R - http://e2e.ti.com/support/microcontrollers/hercules/f/default.aspx |
Toshiba | https://forum.toshiba-components.com/forumdisplay.php?1-Microcontroller |
3.3 – 视频
在Youtube上可以找到很多ARM的相关视频比如 ARMflix 频道 http://www.youtube.com/user/ARMflix.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)