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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 22:00
1.ARM架构简单介绍
3 }0 r2 f/ S1 Y+ }6 g. r
: X: P; d0 y) x* r: f* T市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。! W2 O. ~' h: [8 E7 D# Y: j
9 M( H! l7 y" K: C
从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。
, I# p6 d. |& s6 \" C; s" A8 c9 o7 ^& z6 O( M( S
最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
4 y  {+ \* p2 }, k( r  }: R. E, U5 s5 k
A(Applications) 高性能,一般需要运行Linux等操作系统。
  @) t0 d6 a4 @  \  c1 p9 w
1 `8 _- ?9 z' Q) Y  QR(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。6 B8 K' ?- L: Z' ^0 x! B- T: ~

( j5 `9 D3 y* I& qM(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。
0 r0 j/ j/ l6 m& H6 v6 S8 l: j: f& n; b( ~! a9 {: \
ARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
% X, ^% x8 D# s: M# ]( H( R* A  M7 {' J9 y8 W# ~) n. U& L
ARMv8-A/ Y; q; p& |/ F) g$ |) n+ |

9 W4 H$ E) n" W6 N" P1 j& `; s4 e% X高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。2 `6 Z$ t! d5 N1 o# Z

2 p8 g: c' d) q$ P1 [9 j3 p典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
/ e1 P1 R" f, e8 p/ T( S/ a1 I/ B# {
ARMv8-M
  {! F9 A6 O5 K6 M. l6 Q; b# d. n' H8 i
8 C4 z8 O$ c! R针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。7 X5 i3 f4 m. j+ P  m$ L6 T

, i0 i. m, F9 [! F, F! U% M典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。3 |: q5 ?9 a% q$ P) e! G0 ?

2 {. c9 R3 h  r- w7 X8 S, CARMv7-A
# W9 b+ L6 }4 s9 O' U
6 [5 t* i7 O7 A6 O! B0 m% h支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
3 P: V9 q2 q/ X3 c, S8 M/ q, i8 z4 N8 o9 K3 d- X. }3 [
典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。* D" H7 t" |' Z: h3 H0 P
, Q7 }9 }. a7 K) z% _
ARMv7-R
0 f7 k5 g  c, m7 ?- a1 ~! X6 ?
7 s! s( p' p7 O, G  T- c2 ?& A支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。7 W: D% [! X" \
# G  w2 O! @0 u: ?* M
典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。
. X" Y7 V2 b5 m5 I% v# D' R/ ^- s! _% ^, Y. R+ T# Y; T8 A
ARMv7-M- _" e; a; q9 Z  j: \: ?6 D& m
8 Q2 Z9 o2 I5 _
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。
5 l. _4 m7 P' `8 [$ j( T; ]" `5 Z4 K' q3 A, i6 h
典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。
: S" U1 y& B5 [  q6 p) x; U# y4 X% ?; b7 P0 A& j) E) k
ARMv6-M
3 g. R) ^: S  X/ C* u. u) |8 ~: @. I  q) u
ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。8 ]4 \* q5 D5 ]& c' v
$ U1 K2 v/ o" o* ]8 V$ l6 C$ m
典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。3 o! {( L$ m! G

& a4 `+ C$ u/ S" U1 P; oARMv5 及以前版本6 n" V* t5 P, E5 A

; i+ d  o5 y  }4 [: @  M早期架构,已不推荐使用。0 `( u" B. f0 w$ O- x

& P2 ]1 ~3 ]% {3 g8 s2 V典型芯片:4 M) i) S% g* M! T+ k

& y% {4 o+ N# a/ _& vARM926 (ARMv5)% ~9 V! D  @0 e+ t1 U

/ R5 k0 S- I' I( _. @ARM7TDMI (ARMv4)# u5 @9 Z0 J$ ^- `& v. r. Y! C
2 k3 U4 k# {6 `
2.STM32F030芯片简介2 K% N) P2 }0 n0 [4 G4 Y

& N, l: z  A' x6 x$ f- G+ f# @STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。5 b1 l" h& p4 D# }+ K' I# E
; n" W$ L: U) M0 `+ T1 m
同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。( R1 P4 b4 d6 d3 ?% a; w

) f6 r; t( x9 E% \; Y5 t) A+ P3.开发版; U2 F3 g* |" G1 G  P( Q6 ~
; ?# }: `# q3 v- V/ k
硬件可以选用官方的 NUCLEO-F030R89 ~2 u% Z* ]- [- F
4 F: c: C, K4 D7 e
20200123175508597.jpg
, B2 k8 L$ C, ~8 Z# c0 _! y  y
. l( k5 ?0 g9 @7 }, l/ c" q
如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。
* @) K- S+ m) y# i; [& y
& X  Z! c# F+ [3 o3 c上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。
( P' G# N3 M* E3 v- D8 R
; d  ~- @" |/ O7 h) E7 E6 h! L: G4.集成开发环境(IDE)6 W, }# {, @7 L$ x* k8 _

9 R3 Y; h" F1 f6 d8 }对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。/ u1 a5 i0 }' N. O6 c  H) [0 N, m
* f: U. v5 d+ `4 h. _/ s( ?' h/ G$ D
Arm Keil MDK for STM32F0, STM32L0 and STM32G0' n; U3 v2 `; p* g$ \/ S
  s; X& x2 E7 [9 a8 [
这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。' Q, H& k$ N, \9 z
: J( u8 g1 n# q$ F. s8 ?* A
20200123175503310.jpg

% i9 \5 H) |6 ^
3 y7 h" h  H" X; K$ j! [% J/ S
0 u/ y8 y. ]- g8 F: p  j0 j9 m4 Y* B! ^9 N
5.软件代码2 e$ V$ H4 u( b8 k* ]' ]- E
+ k% E' j. h% ~0 }* A, \$ p" V) a
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。* |- Y8 r/ k! d, E! s" p/ K
+ z  C8 A/ z4 M7 F- F5 J
对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:8 h# w1 [. n2 n( l
: @2 h% b% C% c3 b, q* k
20200123175511938.jpg

/ o# ]8 ]/ A3 ?! d- {5 R3 V$ [' d' e0 X3 y9 E: c' {
8 e- ]* t9 e4 z% X- ~- E

8 |9 J7 }3 |4 k
1 z8 _. ^5 ]* A+ p
20200123175508597.jpg
收藏 评论0 发布时间:2021-11-20 22:00

举报

0个回答

所属标签

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