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

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

[复制链接]
STMCU小助手 发布时间:2021-11-22 21:03
1.ARM架构简单介绍
' G7 u8 @- n  T: c6 x' }/ V3 X. ]" ?/ Y: V* h! j5 `
市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。
- Y" G$ J. _2 y6 ]
$ Z4 Q# R/ Z0 K$ }- o" Y从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。  x2 c, r1 T" r6 x" c/ s/ p  n
3 E% @% D9 G5 B: D  \, g
最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:* r4 \. F; l! b+ B) h5 f  x: t

7 a1 }" M7 Z( |A(Applications) 高性能,一般需要运行Linux等操作系统。9 S2 f, N- \- e# }/ ]  r, Z
2 C/ r: T0 w8 u$ d0 I9 W3 t6 w
R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。
# V4 {9 k- [2 S1 y/ o* _) f; Y5 A8 x7 X! R2 I4 a8 B6 x0 R  l
M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。2 f; A6 B) r+ q0 S

7 a  n7 d7 ]2 ^/ I. s2 @5 mARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:
( v6 T( ~6 L$ L9 l. }; D7 ~3 u! y
ARMv8-A
: I  w8 b6 C. c: w! `+ i. |; E7 U. M
高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。
" n0 d: S# }9 K$ }, v
7 D: ^# a! f( X4 N+ u" B& G典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。; a, r4 [/ t8 a8 q

0 `) b$ N2 Z! e" o/ N& {4 ZARMv8-M
+ U6 p5 Z. D5 s4 Q: O, Q0 F8 z( f$ m- O! R+ K
针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。" n; X* K* _" ?9 J5 k: L

% F) Q( t) T# f. a2 e( y典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。
6 G6 ~; w+ V/ K9 j3 u: T# \; w4 g  z$ z: k! `, p; U
ARMv7-A
+ a8 w! ^7 V; t0 Q% R6 x' j: B  _
, F3 ?% ~& @% L: s9 D支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。
2 p) p% a4 i1 U( q- _9 `4 C0 \2 P, i) k( r- @$ z- _! C0 M& }- K
典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。, K1 n* L' P+ B! _* H) g% ]$ Y

/ o. r+ Q9 E9 K: m7 W% L) [ARMv7-R- n$ T* D7 O' V: d

( H8 G! ~, i, Y) H3 R* `% S支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。
9 b4 U$ f* r& b  c$ Z8 [* s3 u
: m7 Y1 p& P9 e* K6 q7 {- W典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。# x+ X7 w* h4 c0 }
! h  l0 D  V; }3 c$ ~- j
ARMv7-M% p9 n( U- [+ E4 b9 w/ I

2 ]2 {) ], \, g0 W5 G; [8 ^只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。
% e( a8 X5 h/ z( G: a2 ^* `3 F- Q5 S, [! ?1 G/ F: E6 ?8 y7 d
典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。. O& }9 o' V! y. I/ j. K- y
# b& g$ |* [& a( C( ~
ARMv6-M) s3 N% l7 E0 L$ ]* z

# j4 {7 L% Z! G, S. Q* yARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。
0 V. {, m. l" N+ l* B$ c( V# T/ F; q! X% \1 v$ ?
典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。, m) L! ?5 \) H1 g1 p

; W' C3 ~- X! X# s! a2 mARMv5 及以前版本; P+ @  O+ s* t& X/ e

. Q& O- s- O6 i+ }- W$ s% n/ w早期架构,已不推荐使用。
# {* |+ B- _9 N- X
! h& i  I" @, l* B0 ?" {典型芯片:  l! D5 j/ }2 N

0 g$ [/ D" {8 ]! `0 VARM926 (ARMv5): f8 A# u( M7 e9 l
0 H6 j; w" ?2 }$ C( T' r) ?9 W
ARM7TDMI (ARMv4)9 U" }0 q# N# M- i" m9 j( s8 f

- B& j+ Y# M) }* w  Q+ S+ f; A2.STM32F030芯片简介- }) g$ m6 J5 y/ b- ]
& E, n* b, W. B6 J7 u
STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。
% i. l3 t1 ^  p
& ]7 s, m  `! k; W/ D* F同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。
+ E5 l& B+ x! ~) h  x6 S3 n  g/ _8 u0 K- O) k6 b& R
3.开发版5 G- {- {7 D$ {; x

* M) X$ @6 M' x  o/ A! h硬件可以选用官方的 NUCLEO-F030R8
4 A0 E/ s6 }. F/ F3 g5 T
( j/ Z* U$ D9 R
20200123175508597.jpg

, T) N9 n8 w6 L0 y1 E  m- r
- u4 R2 X3 Q! p3 A1 a如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。
6 ?, \$ B1 F/ P$ |* m2 r3 a# [8 D4 ^4 d: Y/ D7 C2 W
上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。
% R$ Y( V+ _" w
1 x8 i/ U3 P6 s' I' e" S4.集成开发环境(IDE)* w  {( v8 X1 n6 U2 S
4 h" s. @% o/ A- N0 Y1 K
对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。2 h5 \% p) }3 V4 H& o+ H

. m$ |; E) i7 W2 {$ N2 vArm Keil MDK for STM32F0, STM32L0 and STM32G0! D  T5 X. i0 T( Y$ e* d5 ?' m/ d

% s' l+ f- ]9 \2 C) w这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。$ L6 t9 x! J! K* T( Z- }0 y
+ b  I" X0 o! A6 ?
20200123175503310.jpg
( i" F! g$ P) v5 D) A% d1 ?! `0 E/ l
* e, h4 `, ]7 x. R, H( N
5.软件代码
! a5 w# v; ]7 a. p6 E( V  Y% G; r- I1 x! e8 Y7 A3 r
ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。( K, |, C" A  c
3 x5 `3 N7 O) ~3 w) A9 J6 _" W
对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:
; h, A6 n7 v- H
* C# v  C" S$ S- W1 Q+ Y0 n
20200123175511938.jpg

4 h$ T- }# r/ ^& Q# {0 u+ X
, T7 X$ T9 y. ^0 d0 g% h, M0 N

- h' F! S: h0 s
收藏 评论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 手机版