STM32F0单片机快速入门一 ARM架构与STM32F0

简介: STM32F0单片机快速入门一 ARM架构与STM32F0

1.ARM架构简单介绍

市场上成百上千种的 ARM 芯片,如果我们去看它们的内核,却只有不多的几种。

从时间上来看,从1985年设计的 26 位地址总线的 ARMv1, 到 ARMv2, 一直发展到最近支持64位地址总线的 ARMv8。

最近这几年,在每一代 ARMvx 核心的基础上,根据不同的应用场景,又做了扩充或裁剪,形成三大架构:

A(Applications) 高性能,一般需要运行Linux等操作系统。

R(Real-time) 需要实时处理的系统,一般应用于网络处理器,嵌入式控制系统。

M(Microcontroller) 小体积,低功耗,一般应用于嵌入式系统。

ARMv1 - ARMv5 已经成为历史了。我们对最新的 ARMv6 - ARMv8 做一个简要区分:

ARMv8-A

高性能,支持64位指令集,同时兼容以前的32/16位指令集。

针对安全应用引入Trustzone。典型芯片如华为的麒麟系列,Kirin990 内部集成了4颗 Cortex-A76,4颗 Cortex-A55,每一颗频率都可以跑到 2GHz以上。

同样高通的骁龙865也是集成8颗 ARMv8-A 架构的内核。

ARMv8-M

针对嵌入式应用,支持32位指令集,兼容以前指令集。引入Trustzone。

加解密运算通过硬件加速。典型芯片如 STM32L552 (Cortex-M33 内核)。主频可以跑到 110 MHz。

ARMv7-A

支持 arm 和 Thumb 指令集,支持虚拟地址存储管理(Virtual Address Support in the Memory Management Unit)。

跑 Linux 这类操作系统一般需要 MMU。这种架构主要面向复杂应用。典型芯片如 STM32MP151 (Cortex-A7 内核) 。主频可以跑到 650 MHz。

ARMv7-R

支持 ARM 和 Thumb 指令集,但不支持虚拟地址管理。典型芯片如 RM41L232 (Cortex-R4 内核)。

主频可以跑到 80 MHz。

ARMv7-M

只支持 Thumb 指令集。简化的流水线,更快的中断响应,针对嵌入式应用。典型芯片如 STM32F103 (Cortex-M3 内核)。主频可以跑到72MHz。

ARMv6-M

ARMv6-M 是 ARMv7-M 的一个子集。架构做了进一步简化,但是保持和 ARMv7-M 兼容。典型芯片如 STM32F030 (Cortex-M0 内核)。主频可以跑到48MHz。

ARMv5 及以前版本

早期架构,已不推荐使用。

典型芯片:ARM926 (ARMv5)ARM7TDMI (ARMv4)

2.STM32F030芯片简介

STM32F030 的内核,采用了 ARMv6-M 架构的 Cortex-M0。这个系列提供了从 16K Flash, 4K RAM, TSSOP20 封装,到 256K Flash, 32K RAM, LQFP64封装的多种选择。同时这颗芯片集成了最常用的 UART,I2C, USART, ADC 等模块。在掌握了它的开发方法后,很容易拓展到其它的芯片。

3.开发版

硬件可以选用官方的 NUCLEO-F030R8



如图,这个板子由两部分组成。上半部分是一个集成的下载调试工具 ST-LINK/V2,下半部分板子带一颗 STM32F030R8T6,简单的 32k 晶振,两个按键和一个LED 指示灯。它把所有的引脚都用排针引了出来,可以方便用户扩展电路做评估。上半部分的调试器部分可以从板子上切割下来单独使用,调试用户做的板子。用户也可以从网上单独购买 ST-LINK/V2调试器。

4.集成开发环境(IDE)

对于 STM32F0/L0/G0, 在 ST 的官方网站上可以下载到正版免费的 Keil。Arm Keil MDK for STM32F0, STM32L0 and STM32G0这个版本没有时间限制,但是代码有 32K 的限制,对一般应用来说也够了。



5.软件代码

ST早期的代码都是基于 Standard Peripheral Library,最近ST的软件逐渐统一于 STMCube。它对软件进行了更科学的分层管理,更易于在不同的平台间移植。可以极大的缩短开发时间。如果是新项目,可以从 STMCube 入手。以前的软件库将逐渐淘汰。对于STM32F030来说,对应的是 STM32CubeF0,在官网可以直接下载:



之后的文章我们将从开发环境建立,启动代码,到各个模块如何使用。


相关文章
|
4月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
963 3
|
19天前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
|
2月前
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
1456 2
|
2月前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
2月前
|
传感器 监控 JavaScript
千套单片机\stm32毕设课设题目及资料案列-干货分享
为帮助电子工程领域的学习者顺利毕业或掌握更多专业知识,我们精心整理了一系列单片机和STM32相关的题目及资料案例。这些资源覆盖了从毕业设计到课程设计的各个方面,包括但不限于智能小车、温度控制系统、无线通信、智能家居等多个领域。每项设计都配有详细的原理图、仿真图以及完整的文档资料,旨在帮助学生深入理解理论知识的同时,提高实际动手操作能力。无论是初学者还是有一定基础的学生,都能从中找到适合自己的项目进行实践探索。
267 8
|
2月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器计算架构X86/ARM/GPU/FPGA/ASIC/裸金属/超级计算集群有啥区别?
阿里云服务器ECS提供了多种计算架构,包括X86、ARM、GPU/FPGA/ASIC、弹性裸金属服务器及超级计算集群。X86架构常见且通用,适合大多数应用场景;ARM架构具备低功耗优势,适用于长期运行环境;GPU/FPGA/ASIC则针对深度学习、科学计算、视频处理等高性能需求;弹性裸金属服务器与超级计算集群则分别提供物理机级别的性能和高速RDMA互联,满足高性能计算和大规模训练需求。
|
2月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
61 0
|
2月前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
4月前
|
机器学习/深度学习 算法 数据库
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
在我们选择阿里云服务器的架构时,选择合适的云服务器架构对于提升业务效率、保障业务稳定至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供参考和选择。
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考