跳转到主要内容
第五届滴水湖中国RISC-V产业论坛专题
【填问卷 月月赢好礼】“芯英雄联盟”直播服务在线调查
CES 2026(国际消费类电子产品展览会)专题
以板载匠心,赋能 FPGA 创新,加速产品从 0 到 1
直播预约 | AI 智能体加速FPGA开发
难以置信!5微米,比红细胞还小!Mars ZX2让机械臂变得更精密、更紧凑、更易集成
ARM概念梳理:Architecture, Core, CPU,SOC

作者:wowo

<strong> 1. 前言</strong>

本文简单梳理一下ARM有关的概念,包括ARM architecture、ARM core、ARM CPU(或MCU)以及ARM Soc。我们这些以ARM平台为主的嵌入式工程师,几乎每天都会和这些概念打交道,也似乎非常理解它们。但仔细想想,却有些说不清道不明的感觉,因而有必要整理一下思路,也就顺手记录下来了。

<strong> 2. 概念梳理</strong>

<strong> 1)ARM architecture</strong>

【下载】MM32 调试器使用说明

MM32 调试器是采用 ARM 公司开放的轻量级在线调试标准,可以在Keil,IAR 或者GCC 环境下对任何
Cortex-M0、Cortex-M3 系列的 MCU 进行在线调试,设置断点,查看变量等。

MM32 调试器具备特点:

 在线仿真调试的功能

- 采用高速的ARM 内核处理器实现调试的协议,性能稳定,快速

- 与MDK,IAR,GCC 等环境无缝配合,插上即可识别

- 支持 SWD 调试接口

 支持所有 MM32 系列处理器

- 比如MM32F031,MM32F103 等等

 体积小

- MM32 调试器体积超小,半张名片大小

- 重量轻巧,非常适合组建口袋实验室

本土MCU的饕餮盛宴:用高品质的产品加“保姆式”的服务去获取

随着物联网和智能硬件的蓬勃发展,对于32位MCU的需求呈现快速增长的趋势。笔者曾经看过一份可行性的行业分析文章,文章提及,在未来很长一段时间里面,MCU在降低功耗方面的共识已经成为主题,众多本土MCU对此又有什么样的应对方案呢?

<strong>上海灵动微电子是这样回答的</strong>

STM32一手遮天,国产MCU厂商能否逆袭?

2016上半年,全球32位MCU的出货量已经超过了8位、16位MCU出货量的总和。截止到2016年5月,STM32系列MCU出货已达16亿颗,是市占率最高的MCU。中国作为MCU全球最大的消耗国,竟然有80%以上的MCU都是舶来品!那么,国产MCU该如何突出重围值得深思。巨大的市场,意味着机遇与挑战并存,借着32位MCU的东风,灵动微电子于2016年5月20以黑马之势正式杀入32位领域。

国产MCU雄起,上海灵动微电子力推“保姆式”服务

2016年8月23日深圳,上海灵动微电子股份有限公司在深圳成功举办2016年秋季新品发布会,众多MCU领域的知名厂商代表、专业人士以及国内30多家知名门户与科技媒体云集现场,共同见证灵动微电子新品发布,灵动微电子董事长兼CEO吴忠洁博士、灵动微电子MCU事业部总经理娄方超先生、ARM 物联网应用市场经理耿立锋先生以及云汉芯城产品副总裁程凯先生等嘉宾还给大家带来了精彩的演讲,并与现场观众一起分享交流经验,共同探讨本土MCU如何突破形成大发展势态。

MCU引脚输出模式中推挽输出与开漏输出电路原理区别

开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。

推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

我们先来说说集电极开路输出的结构。集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”)。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。

keil MDK中如何生成*.bin格式的文件

在Realview MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然这两个格式的文件非常有利于ULINK2仿真器的下载和调试,但是ADS的用户更习惯于使用*.bin格式的文件,甚至有些嵌入式软件开发者已经拥有了*.bin格式文件的调试或烧写工具。为了充分地利用现有的工具,同时发挥Realview MDK集成开发环境的优势,将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件是十分自然的想法。本文将详细的探讨这种转换方法。

在Realview MDK中,生成*.bin格式文件的工具是ARM公司的RVCT开发套件中的fromelf.exe。默认安装下,它位于C/:Keil/ARM/BIN40文件夹下。

下面将介绍它在Keil MDK中的使用方法:

详细解读Cortex-A32处理器,打造您的超高能效嵌入式环境

Cortex-A32是ARM架构中独一无二的产品,拥有重要地位。Cortex-A32基于ARMv8-A架构,却是针对32位设计的处理器。下图介绍了Cortex-A32与ARMv8-A架构的匹配程度,并与Cortex-A35进行了对比。

<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002722-8836-1.png&q…; alt=""></center>

总结单片机的逻辑电路

<strong>常用逻辑电路</strong>

在逻辑电路中,输入和输出只有两种状态,即高电平和低电平。通常以逻辑“1”和“0”表示电平高低。

<strong>1、与门 </strong>

是一个能够实现逻辑乘运算的、多端输入、单端输出的逻辑电路。

这些Cortex-A处理器支持的指令集,您都知道吗?

自25年前ARM1的诞生起,ARM指令集便不断演变。Cortex-A处理器实际支持两个指令集,每个指令集都有各自的扩展。

<strong>ARM指令集 </strong>

ARM指令集基于首款ARM处理器支持的原始指令集。该指令集已经过了数次扩展。简而言之,这是一个负载-存储指令集,拥有不同指令组,主要用于数据处理、存储访问、系统控制和控制流程。现代的ARM指令集非常强大,适用范围非常广泛。在指令集内,所有指令被编码为32位固定长度的字,并且必须与字边界一致。

<strong>Thumb指令集 </strong>

基于ARM的十一种嵌入式操作系统概述

嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。

<strong>嵌入式LINUX</strong>

【下载】MDK pack文件(MM32x103_DFP.1.1.0.pack文件包)

Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4 等。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。

MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库。

MDK功能特点

1、完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。

2、行业领先的ARM C/C++编译工具链

【下载】ARM汇编语言程序设计基础

<strong>ARM汇编伪指令</strong>

<strong>伪操作、宏指令及伪指令的概念</strong>

伪操作是ARM汇编语言程序里的一些特殊指令助记符,主要是为完成汇编程序做各种准备工作,在源程序进行汇编时由汇编程序处理,而不是在处理器运行期间由机器执行。

宏指令是一段独立的程序代码,它通过伪操作来定义。通过宏名来调用宏,并可以设置相应的参数。宏定义本身不会产生代码,只是在调用它时把宏体插入到源程序中。

伪指令也是ARM汇编语言程序里的特殊指令助记符,也不在处理器运行期间由机器执行,它们在汇编时将被合适的机器指令代替成ARM或Thumb指令从而实现真正指令操作。

<strong>伪操作</strong>

ARM中C语言和汇编语言混合编程

在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,虽然C++已经有相应的编译器,但是现在使用还是比较少的。

在稍大规模的嵌入式程序设计中,大部分的代码都是用C来编写的,主要是因为C语言具有较强的结构性,便于人的理解,并且具有大量的库支持。但对于一写硬件上的操作,很多地方还是要用到汇编语言,例如硬件系统的初始化中的CPU 状态的设定,中断的使能,主频的设定,RAM控制参数等。另外在一些对性能非常敏感的代码块,基于汇编与机器码一一对应的关系,这时不能依靠C编译器的生成代码,而要手工编写汇编,从而达到优化的目的。汇编语言是和CPU的指令集紧密相连的,作为涉及底层的嵌入式系统开发,熟练对应汇编语言的使用也是必须的。

单片机的入门方法与学习误区

本文主要讲述了单片机的入门方法与学习误区,希望对你的学习有所帮助。

玩单片机可以有以下几个等级:

1、纯硬件DIY:这一级玩法很简单,只要有一个ISP下载线(和手机数据线的性质差不多),自己制作硬件电路,然后把单片机的程序烧到单片机里就行了。不需要懂编程。在我的网站里有许多小制作,每一个制作都有提供HEX文件,是下载给单片机的程序。很简单,和玩数字电路一样简单。

2、半编程DIY:硬件制作也会了,纯硬件DIY已经熟悉的时候,就可以试着玩玩编程了。半编程DIY并不是自己从头开始写程序,一开始也没有这个水平,呵呵。这一部是照着别人已经写好的程序,然后在现在程序上改一改数值、换一换语句。比如我的SHOOK16摇摇棒,就可以自己在源程序里只改字幕部分的程序代码,而不去管应用程序和硬件驱动程序是如何实现的。

与ARM7相比,Cortex-M3优势明显!

要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。

<strong>1.ARM实现方法  </strong>

ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线;ARM7是冯诺伊曼结构 冯诺伊曼结构下,数据和指令共用一条总线 。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。  

【下载】MDK pack文件(MM32x031_DFP.1.1.0.pack文件包)

Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4 等。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。

MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C++开发环境,其中MDK-Professional还包含大量的中间库。

<strong>MDK功能特点</strong>

1、完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。

不融资就做到挂牌上市,这家创立5年的MCU公司怎么实现的?

这家去年挂牌上市的公司,在上市前没有融过资,记得在该公司成立刚一年的时候,笔者就采访过该公司,那时他们还只是专注于芯片设计服务,但在5年之后…

记得在灵动微电子刚成立一年的时候,笔者就采访过该公司,那时公司还只是专注于芯片设计与芯片应用方案的设计,但在公司成立的第一年内,销售额就超过了1000万。

现在,灵动微电子已经度过了自己的第一个五年,这家去年挂牌上市的公司,在上市前没有融过资,初期主打设计服务/培训,稳定之后再用这部分的收入来支持自己品牌的MCU业务,两条腿走路,不仅设计服务有声有色,自己品牌的MCU也是得到了产业上下游的关注。

单片机的小秘密:指令数据都被写在了哪?

单片机的正常运行的前提,硬件是一方面,另一方面就是单片机需要执行的程序。大家都知道单片机会执行写好的程序,但是单片机从哪里开始读取指令,数据又被写在了哪里呢?

让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成了很多初始化操作,最后,调用系统的初始化函数,将控制权交给了操作系统,于是我们看到了Windows、Linux系统启动了。