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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 22:00
1.ARM架构简单介绍
5 W( n( w" w2 c+ A. X0 O8 G  D( k# D- o- m5 p. e* ^: e" |( {% r
市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。
% c* D9 @, |: o; I0 s' f" m- u
, \. ]5 G; C$ K; O4 i! P0 ^从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。" d+ Y' `5 R/ U9 v) r/ e

) P* P) f1 `7 F最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
# L  o/ {' Z: J) X! x2 Z
# F  r4 s: b% L/ bA(Applications) 高性能,一般需要运行Linux等操作系统。
, B/ {& I! G3 y& L7 q- J# W( ~6 H2 P- }. ]5 ?5 T
R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。% j- ?3 Y! N( j; H( ^6 k, w$ J
! A/ I2 |$ R! `! o) G: X
M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。
% l1 N' F3 M1 I% ^1 E0 q5 g) [, s# u1 ~, [$ [
ARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
2 B; F8 q8 E6 y/ e! K8 F* Z; @5 _3 r" Y$ G& h( ?
ARMv8-A
# k+ T+ v" n3 z: Z) D5 r$ D" u9 x, d8 |4 L( K( M
高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。" L; `: C2 E+ B9 F! w

# a' {- P+ |, @; o典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
# Z3 M; L! D- A9 z+ e
7 c" }2 J. |; h8 c* G3 w* R" i& l) ~ARMv8-M
( o, _* x' n% d& {
; _# }8 g7 g8 t- I( |" ]! T7 S针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。
- C7 ]$ I/ j) h; W9 ~) Y  b$ r! X( ?9 X# p) Z. Z6 w. R4 [8 m: q
典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。
/ M/ `( N5 {+ _: Z7 F5 Q: e
3 c* R/ Q: a" ]2 o- m$ u0 |: MARMv7-A
3 t1 `: A4 n" ~2 a5 {! \, \7 @9 G! v
. E  n$ L; y  V3 h, R6 K+ i' `  R/ Y支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
" \, F, Z2 M: T) [: e
2 U# B* M9 O) R) B+ d- j* u- v典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。( {5 v; |3 }. v- p
, g" V5 S# V! L6 R, r6 T6 `1 e3 _
ARMv7-R
+ {8 M! g/ j" T0 N- c% N- r! e# \5 H5 D$ {
支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
  c( j+ X1 V: h8 @* P3 A
% x8 l1 i' h3 H典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。$ V9 j1 K, O) l( T( \" a3 B& P

: J+ D0 I0 `) b  yARMv7-M$ U( Q* p+ E7 k: W( ?& T
/ I- g/ h0 n" i
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。8 @, U7 @0 [4 G; l* Z( m
5 }# K4 e1 I0 `. z) p* n; Y
典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。
+ J6 a2 C% R' a. Y* A. T2 n( K8 x$ ]) j/ @9 @+ \+ K4 [
ARMv6-M
  G' @; g9 m. C+ m) U% ^! r2 y) `( ^3 p9 R) G' K
ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。
/ S0 K5 W. }0 K5 V# u( j/ C
3 p" F: N. \, w6 J- I" [6 @典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。5 D- O4 z2 }- }& \0 |
  r& a: v( g* B; z, h
ARMv5 及以前版本
1 T* g- l6 C9 U( \. d8 l
- _6 {9 b8 |1 d- w( [! N' J早期架构,已不推荐使用。
/ @+ w" d$ ]& `9 ?! y  j* l7 A7 I1 G4 _
典型芯片:
( d: c  V) q5 @, W0 v' `1 ^6 k* n# @; H$ j- e) i
ARM926 (ARMv5)
( R  G; ]: Q9 }. q- |2 I6 j, `* \4 k4 S: \6 o
ARM7TDMI (ARMv4)
  o5 }6 z8 |; I0 s) c9 {8 Q' t$ V& l" c, L% X" l% Y
2.STM32F030芯片简介/ `' g$ j- _. h
  V+ Z& \5 L1 e8 }, ]2 T) a: ^2 B
STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。- m; Y7 X$ r% G9 L0 i' N+ E

: U6 K5 j! F& e: M& P' T) {同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。
( v; h6 Y( @$ l" @6 s' o* M& [9 s/ `( d
3.开发版" \& P( n! b! M$ J
& m0 }! c% i0 \( a( [8 E* E
硬件可以选用官方的 NUCLEO-F030R8
& D1 w$ j% K& p
8 P& s; B9 h% V  C- ~
20200123175508597.jpg
3 }2 X8 |  {8 F& a- A6 o# _
7 m& f' d' ]$ o' j6 Y4 X
如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。9 m" u# h; P; @5 J" q) {$ y

, k- A  R" m4 u6 s3 n/ @上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。
; |3 {0 N( u5 q9 b! j" Y
8 W  k$ L8 T8 s4.集成开发环境(IDE)
. ~$ x' U$ Q$ c4 I; D
( h: S& M2 X# b/ }; |对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。/ D7 w( o$ j1 k$ @! u
2 V; f- O* U3 u2 U( U' C8 {1 c
Arm Keil MDK for STM32F0, STM32L0 and STM32G0* k/ U) c! P5 [( X5 n

3 E, J2 o- Q, x' K这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。
- S- r. u  z; x0 w! B- P/ G3 D: @6 c
20200123175503310.jpg

* w3 T" A7 u7 F' F: I! k3 b
6 t, B( h' F6 _9 l/ R/ F
, q( R- y0 B7 @) o: v* U/ {7 [, a
5 R9 ]( q9 O3 E5.软件代码5 o; u2 I$ o9 l
' x% A. l3 X1 i: \, M
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。
0 S- V0 T1 I- h4 H. O. ?: l6 W+ l- `: E& ?
对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:
% ^) l/ j' Y# |
$ K3 C) ]' T4 ]9 Y# Y( w# u9 z
20200123175511938.jpg

# C. X- U4 Z. w
" ?2 ?+ F1 c2 V" ]. N, T# q9 @
' u& q; i' M' i6 A
# [* D' i# S( t9 o
! k) u" J+ V2 d
20200123175508597.jpg
赞 收藏 评论0 发布时间:2021-11-20 22:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版