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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 22:00
1.ARM架构简单介绍# R  ?/ _5 ]3 l

8 l5 l* f2 a" r2 @  u市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。
! I# ], b, H; ]8 g& t- Z9 q  S* r; K2 ?0 [0 A( @6 W. e6 S
从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。* D/ ]" [& Q( A$ [

! h9 n. Y; G, Q3 ^4 w4 m最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
, T! u  }0 x1 s- \  B4 ?
4 K/ V# H$ z+ i: ~" s: SA(Applications) 高性能,一般需要运行Linux等操作系统。
9 z# P. X& t7 ]$ z# t. w' Q. N! w- R* s
R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。" ~3 r2 r* N- [8 v; U

: E, R7 u9 B  P) [. B! V; ^M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。" J, B) h& q$ I8 Q: J

. _, {2 N* {# k+ p; y. GARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
0 ^: ?! w( A5 {- q+ m' |  c
( Z; y( u% I* S7 W9 YARMv8-A5 N) m9 v5 ?& }4 @

! x% T( M3 L0 _' g" v+ ~高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。/ b! e% B, e% g" `" v' r& x

, e) \" j9 Y" c7 z4 l典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
7 ~7 |( g) |1 S% o$ h4 b" y8 b- ]: q) T$ w
ARMv8-M* N$ v# q# J( h- ^# o* L
: s2 s! f2 V- b, a3 L7 x* c
针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。
  q1 Z- b; B8 ]" j4 h4 o# ^6 H$ A! i1 k) h  u
典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。+ z, V" X; c  C. F: D8 D2 |
3 c& ]' w! E+ U% q( [+ q/ p
ARMv7-A  G2 f, n) P& I) E1 F$ c$ m. F+ K

0 W6 A& t! o( \' k9 l6 x9 q! R6 a支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
+ }9 _& C, E1 x4 k1 O
7 J- }* |" V4 t- Q% Y2 U- [2 h+ r典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。7 ^) [* r# C) Q) x+ D2 O

8 w6 J0 y: j: q2 X: R2 v' {1 ?% PARMv7-R
% v; E# d* |+ l" l5 d
$ k- O4 r  p3 Z% x支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
* |0 }5 T% o1 P* O
/ W: q6 ]/ X6 m7 W典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。
' ~, Q/ j4 T4 S1 }  o% s' d% h8 l+ Y) }! x0 C' o* i  m
ARMv7-M- x  |1 v; S* C: p9 e0 N' C5 d
- @; L% M6 J+ m; S8 m, f: E$ {
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。1 F% |4 {4 ]- |
6 _/ W+ S3 r0 l7 l
典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。/ O/ K, f  J! B2 }9 R

0 g$ ^" |; c- ]2 y" e: xARMv6-M$ z3 j5 ?% l, O: Q6 X0 v* A
) _, d! w0 b2 y# W4 A2 C0 t- a
ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。
1 [/ D6 e( ?1 g% ]3 z: U9 Z
9 h# f6 W, O  Q" M3 K典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。
! H  f7 @  B$ h
( [$ [* h0 {' T! NARMv5 及以前版本! p8 S: `* S1 o

* Z! `" d$ Z5 p& T% [# |3 j9 [早期架构,已不推荐使用。
5 ^- P6 ~" Z( ~, e: B2 D) [9 j( g& s' S: r3 I; S0 T
典型芯片:* K0 r4 b8 W6 ~8 G. n$ f

2 ?% F: Q+ `5 x0 bARM926 (ARMv5)
8 M: }! v9 s' L' k, n# K+ P8 _2 [3 }, |" q
ARM7TDMI (ARMv4)" Y% ?* C- ^/ s$ ]

$ y/ l  n: S5 L2 A4 I* L" u8 \2.STM32F030芯片简介
& ^# i- Q: E& f
- D2 \0 Z. [. [2 ?% [STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。
: n' z: U4 t& {( {) d4 r
' D# w# P# J9 H! t8 Y7 N同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。
/ H+ v( D2 a" W' M2 E9 k5 |! M, `/ l! X- g; P
3.开发版
# N0 h1 f; _, g# n  w" b9 j  i
$ ?) }' I4 n9 o9 z, B, @; Q+ f硬件可以选用官方的 NUCLEO-F030R8
  D) [* @# C% P. p" y
. Z# @3 U- ~9 C
20200123175508597.jpg
" l; g( S, w9 v

1 G! A7 f3 M. e# }如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。& D! Y$ H" M4 ~6 z8 i  Z' s  B+ u8 K
/ ^% w1 Q* Y# o2 V0 [+ a
上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。
* c9 A% Q  z6 P; Y& U  v) T+ |) R- F, M* l
4.集成开发环境(IDE)
. P$ u: W8 F, S6 ^; a: Y# ]1 l" G) z  L
对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。  S: {; X  d- W$ Z

8 w( A- h) v" X& uArm Keil MDK for STM32F0, STM32L0 and STM32G0
' u3 Z6 w6 w7 M: k+ e7 K+ Q1 m
7 ^6 b' |7 o6 _这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。" a3 n. P; B3 v0 H

2 @6 H6 s& e+ J5 s0 ~: G& {
20200123175503310.jpg
- r4 _- y9 T& M6 `# ]8 O
5 j* i: i2 M' r( k: M1 H
+ N3 e4 ^  H0 a8 g0 v

5 ]  v' |) ~; X, o9 Z5.软件代码, S' R3 y8 n) E+ ?& x2 z" l+ i; {) C

, Z' l3 d; y! d: P% Q' @5 XST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。
) h/ n3 O" C2 b0 O/ Q! @  r& u
; X0 T' C" j: F" @6 n4 R对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:! F/ l% T0 ]' }% J

! ?  o/ \/ z7 d0 o. |4 u
20200123175511938.jpg

5 ~1 r# _& o: R* b, C# E' J. g

& ?, A7 k6 o' J) T9 C/ _+ ]) J
7 s0 I- j1 n" l( V! ~1 H# M) w- P- L( t- Z! ?& |
20200123175508597.jpg
收藏 评论0 发布时间:2021-11-20 22:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版