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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 22:00
1.ARM架构简单介绍
/ r; ]0 `7 k4 f" u4 n# Y) K
* R5 O9 X6 E. m8 X9 j市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。. \7 ]9 c, z* h/ A) Q

1 _/ p0 {+ J9 a8 U6 x从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。
; |- C; V3 j& a" O
( P9 A+ l4 y: F' e最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:; U% X- e+ a& J5 |
% t+ H( G1 g( C, O" G8 p
A(Applications) 高性能,一般需要运行Linux等操作系统。$ z/ h/ Q- m9 V# U! w5 B! h

' A- t# K! V1 v1 ^2 c! JR(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。8 _0 a7 Z/ J+ ]- P1 a4 J" @' H: d0 z9 }

# z% ~* x3 a& Z  HM(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。
9 C" _# _: B+ l) g
1 {# T2 A6 A  i+ _/ r" TARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
7 r% w( y( [$ U5 q/ Q, {: K: F' l3 L! a
ARMv8-A
2 p+ c$ p2 ]' g6 Q  S: S3 o4 o+ A7 c& C, v$ N- G" c
高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。, L( _  h8 z: u4 t8 u

" d. r2 n/ G3 R9 Y! A* a2 B典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
) O4 J2 X$ v, [' P# w& f
+ T8 N% o0 b3 p3 H  VARMv8-M
* T! ~0 k* w( x- ]- G3 ~- R
9 r% B+ A2 ~% J# W9 a2 q$ U针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。
# z  s$ {$ ?8 N+ t+ I1 E) m2 w, i3 N, v
典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。) w. s6 v! X: T  l5 u2 ?: `

/ v8 s1 P& f4 H  p  t9 P# O) NARMv7-A2 W1 ?* E- a9 a2 F1 z% K% O3 o
$ S& j0 }+ u5 _
支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
1 }% D3 }2 q- }  _; ~8 B( E$ q4 R$ y" v
典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。
$ K3 g+ _$ \5 e) n6 b* r4 \
$ a# L, y8 ?% B: pARMv7-R
# Y  d8 g# y! `9 g
: l9 V, \9 [8 A+ {4 e支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
8 P6 ?% _5 e# R2 n) q+ G9 O+ E' h
/ r4 e9 A0 k  k1 @! q: A典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。
# h! }( h  }! b5 e3 R2 B; f1 O5 Q: B. F# Z2 ]# u
ARMv7-M6 z- M/ @1 ]) c. p/ o

7 R. T7 p) h' z0 R! h只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。
! ~0 M" K5 p( `/ a6 `2 ]7 k
2 O& o4 @1 H4 N% s) {+ V5 q典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。1 Z. {2 \* {+ |, _1 k4 w! S$ j

0 X2 ^* L. J: L, J0 y, |; fARMv6-M& h) j. M$ v9 E& R/ v5 w
/ o! G  p/ |, q6 y
ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。
9 |* E9 u0 B' E. g9 c' b4 {2 E* F% j- c5 v. v8 H, Y
典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。
/ M: R- w0 k5 Z4 G# \% Q8 W6 |9 w
: I# Y" Z6 w  u" n& @$ u1 sARMv5 及以前版本
$ K8 A! w. |$ `! l- u  R5 C* y* \+ I- A4 i! m2 r
早期架构,已不推荐使用。# p2 g: `6 G) M6 m/ v' {

! v5 y' i. Z1 k$ e" _  T& j# T2 Z典型芯片:- l+ l& |$ W- k' j, p" p/ C

6 L+ A& F7 h% E8 x3 G) ]) YARM926 (ARMv5)
" r0 G' o) \; a7 g! Z. U0 }8 u
( m: ]) m+ b8 F- G( OARM7TDMI (ARMv4); f$ O" l. g0 S
6 o& ?- K. p# R" L
2.STM32F030芯片简介5 U7 m) j+ q; B) k! i6 g
8 l  U) q6 f$ v- w
STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。" F* o- L# [0 T& y% w9 v

4 s5 o* Q( J" U& L* W6 V& @同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。
: [) z1 g7 s4 ~8 U, ?) A2 T2 a
0 O3 s9 j, i" |4 ^3 w% g3.开发版7 r$ V+ {# {$ n# u' r; e
6 t+ |' ?5 u* D
硬件可以选用官方的 NUCLEO-F030R8
2 u* e( n4 M1 S9 h9 J, T3 F5 y4 u$ H, b% ]: p, G
20200123175508597.jpg

. s, p+ p+ d3 M+ P% N8 B" z- V6 o9 {' f
如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。8 V1 O+ b. y2 o) T5 u/ n

3 m4 R& W  b# \4 b4 P上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。
* E' g) x* x7 n0 x- A  I* R! Z1 c( [: q1 Z- K- D3 a  s; \
4.集成开发环境(IDE)
0 @! P( ~* E+ i& `( p8 O( F
* d  B; ?; d5 U$ F对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。
7 T5 H2 \- w3 Y: o7 |
3 i1 q2 j3 E: C2 p1 EArm Keil MDK for STM32F0, STM32L0 and STM32G0, G- @" F* @# A

5 w& c% H. |5 h# U( U8 t( x8 q这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。
& t/ G) E# d' q- _/ X
5 @- t  K3 `3 Q/ M6 @& D1 u
20200123175503310.jpg
6 i# B$ K# \: T5 G
+ }# I3 T( ]& e- o6 V

4 w& I* g! a/ @: Q' M( M: }: x, D9 j. ?2 P9 J6 l/ U
5.软件代码$ r" X5 L, _- o" K
; E2 o/ |+ }, l' V% a
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。
( u4 V0 u/ Q" P! B' Y7 l, m$ E( P% X# I8 g0 v/ k: J. s
对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:7 v* L& A& d4 ]) D# Y* H$ T: S9 A
+ _% P( \, C) d; e
20200123175511938.jpg

' n; T, q2 r, o# r( j+ P+ U
. H+ B+ c! b! T) B, R5 S: B% J+ Q* B' z; c: c; I% Y
, N' M- @- _& C3 I9 P8 R

8 ~' ?- L1 f3 L
20200123175508597.jpg
收藏 评论0 发布时间:2021-11-20 22:00

举报

0个回答

所属标签

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