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

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

[复制链接]
STMCU小助手 发布时间:2021-11-22 21:03
1.ARM架构简单介绍
0 v( p0 h) E1 g; o3 n3 [( T- Q& k1 G  ^3 U
市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。
/ b* g0 C0 @* x4 {
! I4 F0 b! g: S5 s从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。. S9 h, ?1 V' A  j% b% W
! e' w5 r" k# [* ~7 S7 |$ X
最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
  f0 ~0 p/ Y$ N* |; f( {5 K% K$ E6 s  ]) j8 e
A(Applications) 高性能,一般需要运行Linux等操作系统。/ h5 A& }' X3 ~) |

. r$ z" H2 Z1 o& O+ XR(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。) W9 `3 _! D0 ^1 y
+ h3 s; T* I+ x9 r- r% a$ e' V
M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。
# }0 y; j( X; L& ~
: E2 d0 I0 `2 jARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
2 m; T/ g, ~& n  E0 v. q, T; n5 U9 F
ARMv8-A
5 b+ v: Q+ X+ v, b( w/ ~/ r) U2 i) ^; V; R8 R9 ^! c" M  ~8 a
高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。
& ^/ A% L: C! ~
! K; H( U! r. `5 q$ a. R典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
3 |8 K5 {! w; s9 O
# _8 {/ i2 z4 [4 H- PARMv8-M/ S0 H% W" @9 r8 W$ X* n

7 G# ]4 N$ a7 \0 _7 y% F7 Q针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。- u! F  L+ y4 B, A. x: q
: |; c7 h1 `2 K; Z: J
典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。
, v, Q% A( O9 L/ ~: ~" s4 x0 B+ j3 v: C% K
ARMv7-A. r8 I) [' |  n! ^4 @1 Y+ {5 r

* D: |& H3 W9 h* w: F2 _8 V% k! R支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。' t$ m% r. J3 r

% X" S1 G& g; l+ Z& J6 J典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。$ M5 k/ y3 r1 f. k

0 F$ V% _+ {& U' {ARMv7-R
$ ]) N' y+ o. w5 v! D+ O, l3 ^5 F( `/ b0 G4 ?4 C% r% R% R
支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
1 d+ t6 d0 h% ^( o6 R; s) m: u
; [1 ~$ q' B' o典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。6 b) v" s! f( c1 A1 S9 z

# l- V+ Z  Y! AARMv7-M
( h4 E6 N" m5 M2 S5 s9 b' `
& D" J& H8 `: r; u/ m2 k只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。/ L" n: B. n( L# k# g- C

7 z; S9 `# S  U3 h. Y3 z典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。8 Q: @. c% q/ K0 H/ k
! O" V' ^7 Z9 W$ E7 T0 }
ARMv6-M
$ }' ~. R2 D! u: R8 P* S' v4 j
  `- \# t, v$ X% Z# YARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。& p8 {  n# B! s4 h# @; Y
+ r4 _5 B) v, n7 A0 p$ w
典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。$ K, |  [! D3 N

9 `; w8 W. p+ f; s+ a( t9 lARMv5 及以前版本/ C7 K3 }* `- h# U" z, ]7 W7 t2 @& q

) R9 \7 K& b# h5 @早期架构,已不推荐使用。
  x4 A7 y* G8 h2 [6 f) ]+ y" O5 T9 I0 J
典型芯片:
$ S3 G1 l& @6 L
; @) |: p) x+ H# B" SARM926 (ARMv5)
/ @5 }" ]: D8 Z/ y" Q. X+ K2 G2 |: A8 k6 [# U9 h9 q- m. n
ARM7TDMI (ARMv4)# v- ?- y- [# r0 e1 I

0 p; V3 w' |/ J" \8 i$ _& J2.STM32F030芯片简介( a' V! S" v( z' M

: e; t: q- I$ ~5 r3 u1 T% LSTM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。
6 r9 I7 i& c: _& z5 ?$ j' w- c9 B
. _2 K+ h2 K( v, [同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。3 @1 j" f& A& T8 _+ }* d% A! F
! o- N5 W4 @+ I7 @- r) u
3.开发版
$ d3 q& Z" E" U& R" n
9 T0 {) L+ B) u/ \' C/ I硬件可以选用官方的 NUCLEO-F030R8
/ `  g" w5 Y, Y" ]$ {" G! Y: @, E+ C3 @) J! Q3 @
20200123175508597.jpg
  D+ N) w. s8 f% p3 m

6 J, z# J2 n3 L如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。
4 I. p& ^$ _+ d1 L, ]$ l4 M: j
$ r3 `* y) q  }2 z* S6 V! }1 _上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。/ O& j# F4 O5 ^  ~. I* {

0 p0 m0 Q( U% M4 B4.集成开发环境(IDE)
2 a9 l3 K& E% [0 j# W0 a2 \# ?
4 p8 T) V5 k4 x& s4 _6 P对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。  D% L/ S+ H+ ~+ C- B
9 d% U) ~9 V" D" C: Z# ~+ G1 R
Arm Keil MDK for STM32F0, STM32L0 and STM32G0& Q) I1 ]/ q  g
: Z: N: b' @' e" Y* V) {
这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。
% c( U/ G( _2 \# f& ]! }  t- Q# @! P) X6 j* A
20200123175503310.jpg
& u- @( ]' ?/ m  O6 D/ ^- }% d
; E" O* ~% j+ t+ T3 d6 I  K
5.软件代码# m9 D, g1 {; n, o5 g
" N! C. h4 _) Y; E4 f! e2 S
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。( x, L. ~' V+ [3 Z8 d( L

- Y( g7 y3 ?: B- n4 _( S对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:; @# o2 B' w4 H, p2 T0 Q0 d$ G

0 c3 A' D% r# W
20200123175511938.jpg
3 A& q& ]: T& l1 ^! r$ T
; T) [, m& {6 @* s8 j2 B" o2 h% A2 b
. a/ t5 M1 K8 a7 U5 b1 Q* T

+ A5 F% l" j# @/ x
收藏 评论2 发布时间:2021-11-22 21:03

举报

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

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

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

感谢分享~~~

所属标签

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