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

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

[复制链接]
STMCU小助手 发布时间:2021-11-20 22:00
1.ARM架构简单介绍
5 G2 K) ]& L! [6 @
$ m* y" ^6 D8 }3 m0 w市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。
8 ^/ k. X/ ~. m% `$ _' Y% O
  j# M5 d5 [' I: D) ^7 e从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。3 a, s" T  D# d) n, U
& Q8 J* ~8 U4 X% D& H2 x
最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:
* T9 L* b3 e) K% T: M  d, H# c0 @. W" S: J' X
A(Applications) 高性能,一般需要运行Linux等操作系统。% K9 p9 ?5 w( `* `# {# }! ~) S1 i
5 f. `* z5 \/ i( ]5 g6 `
R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。2 z! r3 x8 N: U# t! d/ \( g$ t

! D2 @/ F; H1 _" MM(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。
# i9 h. G# A7 v! }
* T, \4 |" Y$ K* X8 i" \" N# }  hARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:0 n6 R: K, t  L

; ]) T5 r3 L, Q2 X6 f9 m) p) S% |" zARMv8-A. D+ ]9 c4 h5 e) q( ^$ Q

+ S6 i6 r% c! z# g" T" i4 c高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。4 m! e- q, l3 ]4 [% |; M
9 c# m: Y  ^1 E
典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。
! x, F9 J; }4 X: n* _! R' k
$ m) J) I( s: z+ R6 N( S9 qARMv8-M! U5 N% S; J9 Z9 E* Z5 e6 m
; @5 h* A6 F0 _# d
针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。
& I' @+ @/ d; n; p' t& |% i8 u; k
& e8 h+ H" O/ P( q典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。/ C1 c, U$ u8 ^6 r
  I% I, x9 g2 W9 J; Y  X' n6 z
ARMv7-A
+ j5 w: C( q( F( q5 [* {* q; q! m$ ]( Q8 Z
支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。# d5 c9 {! r  M7 j# p+ L: {6 \7 ^: C- q

9 `6 I" P  n. o# G" S7 w, A& _典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。
8 `& c6 R, z  ^9 [9 S4 R3 f! @
" [0 \+ m% j: n6 w0 cARMv7-R6 A* I5 F5 [& {' D3 l$ w9 C
; n- p  Y, }1 N' q! B+ V, d
支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
: k; t: ~+ n  H) u& _# @( x' B3 t" ~- p7 Z# p1 ?) G
典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。
- Z6 V& h- s" K3 B6 R
, ^# K% w) A2 w( J" nARMv7-M3 e& s. y9 k0 f
  C6 {* t7 {% [: a
只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。
7 q6 n! o6 R/ t0 U7 D9 W* J! N
$ K2 E+ E3 ]& m4 g) I/ N. ~典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。
6 L& I- W& K2 }; D. O1 u0 G; U) l/ P4 e3 a
ARMv6-M
6 Z% Y, n+ B) A( J. Q# C5 C1 }
5 a" m; d" p3 I6 L2 E% I# g4 _& _9 QARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。" s/ a8 B; r. e

# G9 ^. w1 J+ v7 P$ K典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。6 H9 U: S) u  V
8 z' l% ?2 Q8 A- [, u
ARMv5 及以前版本
6 r3 c+ N% ]2 H+ M8 P
" ^( t" F; {# I  e早期架构,已不推荐使用。
1 a/ y8 L' }* {# c& a" }" ?8 u& |4 z
典型芯片:
4 X' O, ]1 [* @$ H: W  [, }- y- v7 \
ARM926 (ARMv5)
" E- H" p& s' c9 H$ g, |& j' d1 \
ARM7TDMI (ARMv4)
0 c1 T2 U( U4 a" l+ y( ?# X- U" `% I  e
2.STM32F030芯片简介, W  c, S+ `2 z' t8 i0 j

8 {% r6 i) L' ^1 r' J' WSTM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。
# g+ D- m" [; @0 H- w+ J6 v$ T
9 B& c2 Z" Z1 f6 q同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。! Y- u& P- n+ d2 I5 i# o! K

# E. r) V8 o/ l& b& O3.开发版! N8 W/ [: }* B: p

$ j! U( I3 G3 c; K" h; j7 ^: X硬件可以选用官方的 NUCLEO-F030R8/ ]6 ]) v* W5 Y! c
3 r2 K( o: U9 \8 g$ f
20200123175508597.jpg

' m! h2 |; m# r. q+ ^) c/ o4 m
- }4 J' {  n% ~( x2 o9 I( v; S& r$ `如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。
% q9 Z- R( c: y
- }; N/ Q8 Q, h& @6 o上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。# J6 t1 ?* L" {4 S
3 A5 o' [& D3 U* O
4.集成开发环境(IDE)
# h$ K- y) ~. J( `$ j! S+ r
8 C$ Z! f; s- w: D+ B2 T对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。4 u/ C4 ?" R) N8 `( n
  K7 n2 q9 H1 T8 o9 v
Arm Keil MDK for STM32F0, STM32L0 and STM32G0
. `$ C9 ]. o# [$ G
( D( E( D0 x, m  H5 z0 u" y' q这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。9 @7 `, k, _8 l( E# T
+ p8 w, T, y2 T7 q8 X3 D" N! R
20200123175503310.jpg
8 C) V( X3 C1 t1 K* l  C" {

# _! |4 C7 `: D' w6 W! B, W6 d* H. w8 c' f( i4 l

2 }5 b3 s: ?2 h3 l3 l+ P. e2 ]6 v5.软件代码
. O1 x+ T* D& m( n# e" e3 \2 z1 ]! X/ c0 o0 Y5 G# i7 H$ S7 _  I' [( E
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。# A: W) J/ I) E( v  \" ]& S

" Z; Y  j7 F  O! Z; F对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:0 a# U0 r# r0 ~6 e1 s

' Y9 R! W) P; q- O& H  D, V
20200123175511938.jpg

& N6 g7 Z) G' K% G7 ^" D' ?6 G5 l  ?  Q, h
9 V4 \0 h% ~5 ], k( l, B

7 x( j3 a5 i3 D, }2 X5 n1 H
% s" o& S+ h  E" O/ O# E& P
20200123175508597.jpg
收藏 评论0 发布时间:2021-11-20 22:00

举报

0个回答

所属标签

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