你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F0单片机快速入门一: ARM架构与STM32F0

[复制链接]
STMCU小助手 发布时间:2021-11-20 22:00
1.ARM架构简单介绍
1 @/ ^( v% W* p% M$ X: _3 Q& r4 j# t
市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。
9 O+ J* t3 N' ~  v5 g! i1 U; W: |! |' u6 V" j# m) ]: H
从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。# Q7 n6 e4 S/ X. b9 D1 {

, t9 [- L1 ~2 y% y* J最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
5 `. O+ s: n: k; D0 M7 o: w2 _4 j% Y! q! `* h! W! P- u7 H
A(Applications) 高性能,一般需要运行Linux等操作系统。
% x: P& D9 m. \3 D/ y" e' I$ _- p2 r, B, q% P* M
R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。
1 o7 M% l! Z; L9 K
9 j, S# g* I* C# E" lM(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。+ ?: I- e* U7 H) Y& g4 [, e$ }8 B3 z" u

! y7 j5 `# I: `' lARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
7 `! }( U. i, g. G5 Z+ Z& O, g# y* C( R( ?6 z& K( o& {% u0 e
ARMv8-A
9 h% x* @; F. a, B) W3 O1 f7 Y! R( d  j3 `  e
高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。
( ]  z7 _; l5 S; \1 F
0 Q! T1 N9 M/ R9 D+ G; A典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。) v9 x0 s  q$ ~

# N* f" Z8 y% R% Z, \5 s' i1 |ARMv8-M- P1 |& C) F4 q( L; @- r  I7 Q7 X1 ?
; N9 v4 d- c: T, t( p; J! {
针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。: N/ ~6 t7 I/ ^. \

0 G+ B/ W) p! h典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。
) z2 v% Q, Q: G7 L: u# x* G
6 t4 B3 r5 u9 S( V' f& ?: k# KARMv7-A
1 Q/ Q0 r1 O  i8 h7 \; T5 y. y+ k+ w4 N. p, C" [5 A7 {
支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
; a2 q. T2 C) ]# r
/ F  G' F4 x0 O( j) P典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。
, ~2 E$ r  b$ o$ N6 Z3 @- `- j. T+ a& I* C; Y
ARMv7-R
, [# Z! q# k* h3 \. w% @! _3 i* @- \6 Z! I1 T5 H5 ?
支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。* T$ Y0 g% w4 M( U! r

! M3 ^2 p8 A4 d/ Y: n& l/ c- ^8 @典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。2 F; w7 b2 E8 |0 \3 o
7 B1 Y5 A# S% G
ARMv7-M1 ^! g9 Q/ n/ h3 @
* q) f* [, O, v2 \3 I
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。- p6 r/ D- U6 W

* `6 @" A  @1 a& s% i典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。
$ z* _& Z, l8 F+ A9 j$ ?' M9 u6 F' e% I  Z0 h1 R
ARMv6-M
+ B; w& c  y' w" @- B* G( X% H0 }' Q6 j6 A9 }. k
ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。" [9 b# W  X3 `: |3 F' ^& Q( r

5 M6 v, ^+ [9 D典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。' F8 D# X3 K$ E% M4 p% h  ^
( X/ C) V6 X7 _9 M3 `  s/ _: f
ARMv5 及以前版本4 B7 X, ^1 X- P
- v& a' g# x/ ~$ b: M; W- C
早期架构,已不推荐使用。5 p% U9 i# l: L0 \2 \# Q! {

2 v3 a1 S! v% P% s; \# j% g; `/ _典型芯片:
# M" u0 }( A8 ?( A- p/ F$ Q& ^- J& W% y
ARM926 (ARMv5)
% j. Z8 M. F4 W
  Z; p- P& q, _' tARM7TDMI (ARMv4)
, [; D- t( T; ?- P  |4 e. x5 [, N" {& M9 X! w3 Q( @$ x
2.STM32F030芯片简介7 r5 V& Z: C( S- Z

3 G' w& B8 Y  ~0 Z4 nSTM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。
0 C% W+ `) x' e+ S8 ~
8 I. v, L5 _/ k同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。
5 E0 [2 M# f$ B$ h* @( {
* C- @  T2 p7 r9 T% ^0 e2 q3.开发版: V* d- @$ L. s  P

5 V% c6 _/ e, ?, W7 V+ ~; O硬件可以选用官方的 NUCLEO-F030R8
& K  }9 u- t+ C7 V- v* g
  j+ [) w: a& U: V  n; r4 y; w
20200123175508597.jpg

8 V2 M8 y- p6 C( W* ?) n7 Y& e" g) F. M/ t
如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。
9 G9 T" F1 a! ~. q( v& V3 b1 B9 U' }: }* s0 M% h! E8 b  m
上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。2 O7 K. o- f6 i$ k

  o  c6 r" D8 G3 T- S4.集成开发环境(IDE)
: O1 o' w) H0 d4 ~. t2 V) C% Q  _6 [3 w! u5 c
对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。1 @3 f5 S6 J$ D

& [/ o( ~6 F' ]4 ~# i6 `2 M8 [Arm Keil MDK for STM32F0, STM32L0 and STM32G0, a. s7 _' ]: k2 Y

" T1 J9 F0 C! \& r5 J这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。
, d& v% O7 t' U! P' G/ E1 M- O% B" C: k$ Y4 |6 y' J# s9 t/ R' {
20200123175503310.jpg
4 c. t2 [2 X- g1 T9 g5 j' y
' V6 _) T$ y5 @1 \

5 z0 [0 `% m- @. s- U( m( W1 o/ Y- C; Z. J; G2 @8 Q, C
5.软件代码  d' l4 h1 j+ `0 H

: H6 i  `) n2 H8 S/ L8 u- P; n  LST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。
0 Q, r% Y2 T( E- N) V3 V. l3 u' b4 v' J, K1 c, s% @% X: b
对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:
1 q) S- v+ {3 {' O3 H. E$ M, T# I7 t9 I- X0 o% W; `# v$ g
20200123175511938.jpg

1 U( k1 p/ ^& E) L4 L1 _$ k0 u" D& m3 d/ E1 P3 Y
& T9 k* V8 S7 E5 V, H$ O- b2 [
0 a, }* k' C2 w3 a3 b" Q5 d. E
! Y  ]  O. {& ~* W' ?
20200123175508597.jpg
收藏 评论0 发布时间:2021-11-20 22:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版