STMCU小助手
发布时间:2021-11-22 21:03
|
1.ARM架构简单介绍 市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。 从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。 7 c# ~ c3 t o, s0 W: G' e 最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:# ~9 L7 `6 R, T# x) h( D A(Applications) 高性能,一般需要运行Linux等操作系统。 $ p& j3 X8 B( ^( I R(Real-time) 需要实时处理的系统,一般应用与网络处理器,嵌入式控制系统。 3 ?& ~5 ~+ D, L8 V0 W0 Z M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。3 H# a( ^9 ^5 P) X& j& @ ARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分: ARMv8-A: R7 u& {, U' k; \# Z: Q ) v. S4 N) \3 f- a2 ]6 u 高性能,支持64位指令集,同时兼容以前的32/16位指令集。针对安全应用引入Trustzone。 典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。" W0 |- D4 \, S ARMv8-M# ^2 o2 }2 T5 A O8 ~0 V( x j 针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。加解密运算通过硬件加速。* l0 t) Z5 n9 o1 N7 Q: k0 h5 r- w8 ] 典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。% V5 i5 _8 T0 n# t; ~6 R2 f , V8 |7 e6 l: s. m& e. B) d ARMv7-A- y9 `: n% T8 b4 v2 _ 支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。 0 G4 x% D2 M* R9 L9 I% Y8 E 典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。/ d9 O2 J5 \6 d: \6 l# M+ x8 j) l ARMv7-R ! l1 K$ g* {+ P) ]% z8 h1 s* Z+ W 支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。5 W2 b4 m5 `' M* T* A 1 @& g& G+ j. n3 W) ? j 典型芯片如 RM41L232 (Cortex-R4 内核)。主频可以跑到 80 MHz。 9 B' S' W7 j9 U5 Z" e; j$ E% G2 F# y" L ARMv7-M& v# g! ~, b+ r, I( r+ _' i 只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。 典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。 " c F( O" E) r) H ARMv6-M1 K( `9 B7 t2 m : l0 @3 T0 T0 \# z% x: _0 O, A: ? ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。$ H) G% ^( u8 B4 q- [6 V 典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。 ) e5 _4 h0 j' Y8 ] ARMv5 及以前版本( l, ], C" T P7 Z " e7 [4 F1 ~7 I5 i3 u 早期架构,已不推荐使用。 9 X- x, |/ }4 M! Y# o" R7 N9 \ 典型芯片: ARM926 (ARMv5)9 z! X; E; l r9 M ARM7TDMI (ARMv4) 2.STM32F030芯片简介& r q7 Z$ G! I& j; t& E3 N ^ H J+ K3 d: H STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。 同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。8 j. ?1 M4 N8 X, @" r7 G, x 3.开发版 # p. t H, G" y X: Q 硬件可以选用官方的 NUCLEO-F030R8 F5 Q+ X6 m3 e9 S7 d7 E
8 L8 q& R( q J8 w! U 如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。 3 F2 B" N. z. [0 c 上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。 , T9 G$ n# {: h1 |/ H6 u 4.集成开发环境(IDE)8 D& C: }9 L4 v v! W8 s8 t 对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。 Arm Keil MDK for STM32F0, STM32L0 and STM32G0! q/ Q0 _6 m- z W2 @6 t2 D; }$ R U 这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。 i6 A( s4 k& q, s' s" b
5.软件代码6 [1 @! a5 K7 r 7 X' W# D1 ]6 ^1 k; i ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。 1 l) h0 w: k2 }+ P- e 对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:& ]. B5 e# B4 {: a* I
6 b" i$ T/ p2 x% c8 R U6 D: [8 f8 I$ r6 p* R+ B/ L% f 5 `; u; p+ l2 U |
微信公众号
手机版
感谢分享,学习了,期待更深入的:)
感谢分享~~~