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

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

[复制链接]
STMCU小助手 发布时间:2021-11-22 21:03
1.ARM架构简单介绍5 o) t. e; Z$ p# Q7 z6 K1 N
% @7 X* ?5 I: \& \- }; S" ~
市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。2 `& u2 E' o7 F) v. E

  ^2 }  c" d7 Q; s- R* P3 m# G从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。
2 ]+ R2 G% `  w; R0 h7 s6 _" z: ~( z! l- b) [- V2 u7 i: [2 E
最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
. X8 O/ f0 w  g  y$ O: }
5 _' X& `+ y6 F- I- S' s2 AA(Applications) 高性能,一般需要运行Linux等操作系统。/ N' O3 y& c' e9 H- G! J; d8 _

+ h9 o- _3 e. W" ^5 p. o  xR(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。
3 C0 K2 k" u. @4 W1 {4 G$ d- T6 `9 W
M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。
$ s1 `# H9 J+ _. q
* Z. g. }0 F1 m) q* Y7 g" z# y' gARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:2 a; I2 N' u3 v: c* W5 i  x; X

2 o7 i7 M6 X7 T! uARMv8-A
" R( k5 ^! p8 c. f
7 Y' K$ @8 B: m' S高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。  t: Y. h7 u  t
, y( }, F: R, R- H2 z8 |3 M1 H
典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
+ `$ d. O/ B! V, g3 I9 \  t9 p* D) e- k' {, e& r( |
ARMv8-M* p0 [0 J2 Y, Y4 c! ?1 e" ^

0 u! Z. w6 a$ @针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。1 z" @' E, T& g! p1 ]- }/ ]

) n$ L# o, H( p/ {4 {典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。1 z) |5 Y" l. B4 d
; A; E9 }8 E& s( U' ]" N
ARMv7-A8 h% p8 K. l! V4 x' Z

  T0 W% ^: u: v) f& x5 K支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。8 I# l4 I2 j& o( i" v
. I+ S( D0 O# ]7 e
典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。# P. h1 \6 Y2 X' x) Y

: w* u) S' R( ^. M7 Q9 I$ V& KARMv7-R
. |1 u9 ^- n) n$ T3 i: X
9 O% j, ]% ~4 G; Y4 E2 h. e支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
* ~' x/ o2 X% ^3 k' A2 {! r2 o# f% g: H
典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。- O$ H# a( t! E5 O9 `
9 O2 S7 U: x' m! K3 p4 W( s
ARMv7-M
& p! Y+ p( r- I- W! E- N: H* Q2 p" G+ }" d$ m
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。
- c1 B1 r! n. F- F/ J& ]- C1 `( {0 H# O$ [5 p
典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。5 E/ ?3 n0 a: y; Y" I1 k4 S. m* p

4 P  b7 Y( T" R6 v1 Q* ^& gARMv6-M
" y3 n, H$ S- S3 J
' N8 l+ ~  o0 Y( W! r- ~ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。
8 Z8 ~5 W! H$ a  m3 P; P( ~* h) O. m- t2 O' y; A# r
典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。
  O3 P( P" [2 l7 @9 B5 v% u) p
ARMv5 及以前版本  @" q; f8 c, }/ w$ {7 @' }8 [5 H: d0 N
1 q  W# V/ r. C( J1 H9 [
早期架构,已不推荐使用。. v# y- Z; b7 d: a3 k: L0 j5 V, p) G

/ z& ~+ x8 U* r( n- `; C' ?典型芯片:5 O- ?- B; g5 z, t
+ ?! r# {$ o" P  H; V1 q* X' S+ b" x8 R
ARM926 (ARMv5)% F1 [# A; G8 v. C3 A' ?" r" {
8 M2 i8 @6 S+ z
ARM7TDMI (ARMv4)0 \( w8 N8 ^$ s. p6 T, j

% [& H& d) I7 f. C6 A% |2.STM32F030芯片简介* g! E* [2 w3 q: Z; S/ C

$ Q1 C! w. C  M7 b" M; g6 h/ zSTM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。/ }! N. f* B5 O4 W
; E" ~6 s/ E/ U
同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。
7 q+ U# ]' u2 l6 w/ P
+ k4 C- ?$ u0 P  j9 j. ~4 v2 {9 Z3.开发版
* b  Q) n: d% E3 l, r3 B7 ^2 F
4 C6 E- r) k3 R/ w' ?" A, k硬件可以选用官方的 NUCLEO-F030R8, C8 P3 d$ n" @& t& D( h, ?! G0 K8 \
: J& }% G  V' X0 R) Z+ F) Z) t, B" J
20200123175508597.jpg

' y' b: U* V  U8 r. g
5 P. G8 Q( M5 Y' [8 Z如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。
0 r  Y; X. g6 j: e9 q. z4 f% p- U6 H  }2 ?2 P8 Q" z! B7 D! U  a
上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。
/ a/ l) c/ z; P# {1 R; o6 F
. {0 N. l, I1 i" `. ?6 X4 r) U" i4.集成开发环境(IDE)3 p1 Y/ @  d5 k9 D
5 f" F& o  M( \7 q6 L" u; R) v
对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。, g, C' j9 P# w% g0 J6 [# l6 {- B
0 E3 A1 O) Y- s' G% [
Arm Keil MDK for STM32F0, STM32L0 and STM32G0
1 _9 I3 ^5 M+ n
: j8 E; C- y! u: o/ W这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。% Y& i) R% K, C9 r

& C" T# F; Q) y8 E$ A5 J
20200123175503310.jpg
3 ]4 ]& A5 r! ?2 k

. m) F( q4 f! z0 J3 @+ Y5.软件代码
- R$ B! y. B& ]4 O  g- T
$ |! t7 D: N& s' A" W3 q/ f7 qST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。
4 B, y6 D3 x# a0 Q# l" A, ]' y- j
4 T3 F. ^2 K. {1 y' W# d对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:. z- z& v& r3 F- |% z2 \) V, Z

0 _" ^% R& |' ~2 I  q. S
20200123175511938.jpg

$ w& S. U. q) P. U7 Q/ K
2 {7 O' H8 f" @; Q- t# M$ D7 C, y( o4 `# g( J& S

( r# g3 _. I/ l
收藏 评论2 发布时间:2021-11-22 21:03

举报

2个回答
landeng 回答时间:2021-11-23 09:48:16

感谢分享,学习了,期待更深入的:)

STM1024 回答时间:2021-11-23 10:55:19

感谢分享~~~

所属标签

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