打印
[STM32F0]

STM32F0单片机快速入门一: ARM架构与STM32F0

[复制链接]
682|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wangwenxue1989 于 2020-1-30 18:12 编辑

STM32F0单片机快速入门一: ARM架构与STM32F0

1. ARM架构简单介绍

市场上成百上千种的ARM 芯片,如果我们去看它们的内核,却只有不多的几种。

从时间上来看,从1985年设计的26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。

最近这几年,在每一代ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:

A(Applications) 高性能,一般需要运行Linux等操作系统。
R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。
M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。

ARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:

ARMv8-A
高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。
典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。

ARMv8-M
针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。
典型芯片如 STM32L552(Cortex-M33 内核)。主频可以跑到 110 MHz。

ARMv7-A
支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Supportin the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
典型芯片如 STM32MP151(Cortex-A7 内核) 。主频可以跑到 650 MHz。

ARMv7-R
支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
典型芯片如 RM41L232(Cortex-R4 内核)。主频可以跑到 80 MHz。

ARMv7-M
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。
典型芯片如 STM32F103(Cortex-M3 内核)。主频可以跑到72MHz。

ARMv6-M
ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。
典型芯片如 STM32F030(Cortex-M0 内核)。主频可以跑到48MHz。

ARMv5 及以前版本
早期架构,已不推荐使用。
典型芯片:
ARM926 (ARMv5)
ARM7TDMI (ARMv4)

2.  STM32F030芯片简介

STM32F030 的内核,采用了 ARMv6-M 架构的Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。

同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。

3.开发版

硬件可以选用官方的 NUCLEO-F030R8

如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。

上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。

4.集成开发环境(IDE)
对于 STM32F0/L0/G0,在 ST 的官方网站上可以下载到正版免费的 Keil。
Arm Keil MDK for STM32F0,STM32L0 and STM32G0
这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。

5.软件代码
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从STMCube 入手。以前的软件库将逐渐淘汰。

对于STM32F030来说,对应的是STM32CubeF0,在官网可以直接下载:


之后的**我们将从开发环境建立,启动代码,到各个模块如何使用。

在下面的网址可以找到现在所有的ARM内核:
https://www.arm.com/products/silicon-ip-cpu

ST的官方中文站点:
https://www.stmcu.org.cn/

参考资料:
STM32F030RM
ARM®v6-M Architecture ReferenceManual
ARM®v7-M ArchitectureReference Manual
Arm®v8-M ArchitectureReference Manual

使用特权

评论回复
沙发
八层楼| | 2020-2-6 15:46 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
板凳
观海| | 2020-2-6 15:50 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
地板
guanjiaer| | 2020-2-6 15:54 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
5
heimaojingzhang| | 2020-2-6 15:57 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
6
keaibukelian| | 2020-2-6 16:00 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
labasi| | 2020-2-6 16:03 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
paotangsan| | 2020-2-6 16:06 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
9
renzheshengui| | 2020-2-6 16:10 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
10
wakayi| | 2020-2-6 16:14 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
11
wowu| | 2020-2-6 16:18 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
12
xiaoqizi| | 2020-2-6 16:21 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

33

帖子

5

粉丝