Google没法用,直接用bing的国际版,搜索:arm cortex m family
ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构。 ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。 ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。 到了ARMv7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。三大系列分工明确:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。 所以看上去ARM7跟Cortex-M很像,因为他们都是MCU,但确是不同代不同架构的MCU(Cortex-M比ARM7高了三代!),所以性能也有很大的差距。此外,Cortex-M系列还细分为M0、M3、M4和超低功耗的M0+,用户依据成本、性能、功耗等因素来选择芯片。 想必楼主现在肯定知道了ARM7、Cortex-M的区别,不过还是花了点时间整理在此,可以帮助后来的初学者搞明白这些基本的概念性问题。
一般来说,1,2,3板子都是在开发者手上,一旦遇到bug,只要可以复现,基本上都可以排查出来,然后修复或者规避。但一旦进入到4,5阶段,产品已经成型之后,再想排查BUG就比较麻烦了。例如工厂测试阶段,有可能连续运行好几天或者好几个星期才能复现的问题,排查起来就十分的复杂。对于这种情况,backtrace是十分必要的。可以在离线的状态下分析系统的关键信息,通过函数的栈回溯,从而找到出错的对应的执行函数,然后结合程序设计,基本上大部分的bug基本上也可以找到。我之前写过一篇文章arm上backtrace的分析与实现原理。分析了在cortex-a上的分析情况。但是对于cortex-m来说,问题就会复杂许多,因为cortex-m对于固件的体积的限制以及特殊的架构,让backtrack的方案占用了过大的flash。这是设计者所不能接受的,而且更加难受的是cortex-m并没有栈回溯指针。这就让栈的深度的计算变的十分复杂。本文主要分析cortex-m的栈布局以及一些栈回溯的底层原理和方案。
在阅读本文之前,有两个定义在FreeRTOSConfig.h中的宏,你必须先明白它们是什么意思,《FreeRTOS内核配置说明》一文中,讲解了这两个宏:
笔者接触嵌入式领域软件开发已近五年,几乎用的都是 ARM Cortex M 内核系列的微控制器。在这五年期间,感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。
就在今天,Arm发布了新一代的Cortex-M处理器,Cortex-M85。简单粗暴的打个比方:
11月23日,Arm宣布推出专为人工智能物联网 (AIoT) 应用而设计的 Arm® Cortex®-M52 处理器,带来数字信号处理 (DSP) 和机器学习 (ML) 性能的提升,有效避免了使用专用 DSP 和 ML 加速器所带来的成本开销。Cortex-M52 将通过优于目前市场价格点的优势,充分释放 ML 在嵌入式计算解决方案中的潜能。
(2D图形处理的技术其实早在红白机时代就成熟了,6502能做到的事情,Cortex-M自然也不在话下)
在中国,熟悉单片机的人士大多会听说过STM32。这是意法半导体(STMicroelectronics, 简称ST)的32位微控制器(MCU)家族,基于ARMCortex-M内核。
Microcontrollers power the world around us.
相信关注安全和嵌入式的开发者对TrustZone都不陌生,最近在我们的极术社区(www.aijishu.com)有网友询问Cortex-A和Cortex-M的TrustZone之间的差异,那么我们来简单介绍下。
Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由ARM专门针对CORTEX-M系列提出的标准。在该标准的约定下,ARM和芯片厂商会提供一些通用的API接口来访问Cortex内核以及一些专用外设,以减少更换芯片以及开发工具等移植工作所带来的金钱以及时间上的消耗。只要都是基于Cortex的芯片,代码均是可以复用的。CMSIS是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。使用 CMSIS可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。
相信很多小伙伴都有类似这样的疑问,下面围绕Cortex-M、 ARM、 Linux来讲讲相关内容。
笔者接触嵌入式领域软件开发已近五年,几乎用的都是 ARM Cortex M 内核系列的微控制器。在这五年期间,感谢 C 语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和 CPU 之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及 C 语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。
今天,Arm 推出了 2 款具有 AI 功能的 NPU(神经处理单元),Arm Cortex-M55 和 Ethos-U55。
内容整理自 robyoung (Rob Young) 的文章:First steps with Embedded Rust: Selecting a board
Nuvoton’s NuMicro M2351 Cortex M23 MCU 指纹应用设计 1,ARM将ARMV8-A上的TrustZone技术移植到ARMv8-M上。 过去十年来,ARM与全球合作伙伴在全世界已经建立了一个32位系统嵌入式处理器巨大的生态,由于IoT的快速增长的需求,安全功能成为所有嵌入式系统的基础需求,ARM很自然的设计了下一代Cortex-M处理器! Cortex-M23和Cortex-M33处理器是非常受欢迎的Cortex-M产品系列最新成员。因此,这两个处理器保持了之前的预期特
谈起变量的访问(Access)就不得不谈到对齐(Alignment)的概念;谈论对齐,离开具体的计算机架构又会显得缺乏支撑,如同谈论空中楼阁一般。今天我们就以笔者熟悉的Cortex-M架构为蓝本,聊一聊变量访问的对齐问题。
视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 关于这些知识点,如果大家看Cortex-M内核权威指南去学习的话,特
开发人员基于指令集架构(ISA),使用不同的处理器硬件实现方案,来设计不同性能的处理器,因此 ISA 又被视作 CPU 的灵魂。我们可以将指令集架构理解为一个抽象层,它是处理器底层硬件与运行在硬件上的软件之间桥梁和接口。
ARM Cortex-M内核的复位启动过程也被称为复位序列(Reset sequence),下面就来简要总结分析下这一过程。
中断就是系统正在处理某一个正常事件,忽然被另一个需要马上处理的紧急事件打断,系统转而处理这个紧急事件,待处理完毕,再恢复运行刚才被打断的事件。 无论在单片机开发还是嵌入式开发中,中断都是一个非常重要的概念。而重要的原因,是中断的概念符合我们普世生活的场景。 你正在上班努力编程,却有一通电话打了进来,而不得不停止工作,接通完电话后,发现只是外卖到了楼下,这时候你又恢复到工作的状态,这是短期中断。 你本科毕业,因为第一年的工作经验的优先级高于考研所以你去找了份工作,干了一年后,去考研,回到学校继续学习,对你的学业来说,这也是中断,无非是中断处理时间长而已。 本文将会介绍嵌入式开发中,中断管理的概念,及基于RTOS的一些例子。
试想与我们相伴的MCU如若只存在裸机程序,那么运行到一个包含延时的线程时,我们的CPU就开始“摸鱼”了。为了最大化运行CPU,就需要用到RTOS(Real Time Operating System). 简单来说,RTOS是一个调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统,或者说,其内核是一个任务管理的框架。
我们都知道TrustzZone是ARM公司cortex-A系列架构所采用的安全技术。在物联网时代来临之际,ARM公司推出首个行业通用框架——平台安全架构(PSA,Platform Security Architecture),其目的是打造安全的互联设备,为万物互联奠定可信基础,从而加速实现“2035年全球一万亿设备互联”的宏伟愿景。 ARM公司认为: 最好的安全是硬件隔离,ARM参考手机端芯片Cortex-A系列架构的TrustZone的成功经验,引入到cortex-M进行MCU的安全设计,由于GP
借助最新设计的Cortex-M52芯片,Arm使边缘端最小物联网设备也能实现AI计算.
SysTick定时器是存在于系统内核的一个滴答定时器,只要是ARM Cortex-M0/M3/M4/M7内核的MCU都包含这个定时器,它是一个24位的递减定时器,当计数到 0 时,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,由于和MCU外设无关,所以代码的移植,在不同厂家的Cortex-M内核MCU之间,可以很方便的实现。而东芝的这款TT_M3HQ开发板使用的TMPM3HQFDFG芯片,正好是ARM Cortex-M3内核,所以以前使用的延时函数,可以直接拿过来使用,无需任何修改。
众所周知,嵌入式软件开发离不开调试器。写一个稍有代码规模(5K行以上)的嵌入式应用程序一般不可能一次性搞定,没有任何bug,出了bug并不可怕,只要我们能尽快定位bug并修复即可,调试器就是定位bug的利器。有了调试器我们便可以进入系统主控芯片内部一窥究竟,控制芯片执行代码的动作,实时查看芯片内部状态,辅以各种调试技巧让bug无处藏身。
某日,本人在调测华大半导体单片机(HC32L136)低功耗时,一时恍惚,在没有唤醒中断的情况下,将上电延时函数删除,使系统上电后就立即进入低功耗深度休眠,导致无法唤醒、烧录程序,多次使用复位按键唤醒,碰运气烧录程序,未果,查找资料、联系华大代理,寻得以下行之有效的方法。
这意味着,本世纪初应用在个人电脑上的一些技术也可能会被逐步引入到深度嵌入式系统上(Deep Embedded System)——这类系统的典型也就是大家所熟知的单片机或者说Cortex-M处理器。
为了解决不同芯片厂商生产的Cortex 微控制器软件的兼容性问题, Arm 与芯片厂商建立了CMSIS 标准(Cortex Microcontroller Software Interface Standard)。CMSIS是ARM Cortex微控制器软件接口标准,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。 CMSIS实际是新建了一个软件抽象层。一般CMSIS是Cortex-M IC厂商或系统移植人员需要了解的。如下图所示:
ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。
前面的两篇文章,我们分别介绍了“为什么变量要对齐到它的尺寸大小”,“编译器会怎么处理内存的对齐问题”以及“非对齐是如何产生的和非对齐的后果”,感觉自己错过了重要内容的朋友可以发送关键字“对齐”来复习一下。下面我们来介绍几个于对齐相关的问题:
Microcontrollers (MCUs) are the tiny computers that power our technological environment. There are over 30 billion of them manufactured every year, embedded in everything from household appliances to fitness trackers.
1.1 Application Cortex Processors (ARM Cortex 应用处理器 ) • Cortex™-A 系列 - 开放式操作系统的高性能处理器 Cortex 应用处理器在先进工艺节点中可实现高达 2GHz+ 标准频率的卓越性能,从而可支持下一代的移动 Internet 设备。这些处理器具有单核和多核种类,最多提供四个具有可选 NEON™ 多媒体处理模块和先进浮点执行单元的处理单元。 所有 Cortex-A 处理器都共享共同的体系结构和功能集。 这使其成为开放式平台设计的最佳解决方案,因为此时不同设计之间软件的兼容性和可移植性最重要: ARMv7-A 体系结构 对所有操作系统的支持 Linux 完整分配 - Android、Chrome、Ubuntu 和 Debian Linux 第三方 - MontaVista、QNX、Wind River Symbian Windows CE 需要使用内存管理单元的其他操作系统支持 指令集支持 - ARM、Thumb-2、Thumb、Jazelle®、DSP TrustZone® 安全扩展 高级单精度和双精度浮点支持 NEON™ 媒体处理引擎
令人难以置信的创新正在推动车辆的技术变革,但有一件事必须继续摆在前面和中心:司机、乘客和道路使用者的安全。Arm技术已经存在了几十年,我们知道汽车技术需要适合安全应用的处理器,这些处理器仍然能够解决我们合作伙伴更广泛的功耗、成本、面积和软件问题。在这篇博客中,我们将讨论最近更新的Arm Cortex-M23处理器,它现在具有针对汽车应用的增强功能。
Cortex-M处理器系列的最新成员是Cortex-M7。这款新的核心具备可用于支持新型嵌入式技术需求的功能,它设计用于需要较高处理性能、实时响应能力和能效的应用。总体而言,Cortex-M7处理器包含下列关键特性: • 高性能、双指令签发6级流水线,每个时钟周期最多可执行两个指令; • 64位AXI系统总线接口; • 可选指令缓存(4到64KB)及数据缓存(4到64KB),每种缓存内存均有可选的ECC(错误校正码)支持; • 可选64位指令紧密耦合内存(ITCM)及可选双32位数据TCM(D{0,1}TC
STM32是一款单片机,它由意法半导体公司制造。ST是意法半导体的简称,M是指微控制器(也就是单片机的)MCU的第一个英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的内核设计。
嵌入式系统的开发在现代科技中发挥着至关重要的作用。它们被广泛应用于从智能家居到工业自动化的各种领域。在本文中,我们将聚焦于使用ARM Cortex-M系列微控制器实现低功耗定时器的应用。我们将详细介绍在嵌入式系统中如何实现低功耗的定时器功能,并附上代码示例。
1978年,奥地利籍物理学博士Hermann Hauser,和他朋友,一位英国工程师Chris Curry,共同创建了一 家名为“Cambridge Processor Unit,CPU”的公司,中文字面意思就是“剑桥处理器单元”,主要从事研发 当地电子仪器设备的业务,比如街头游戏机之类的。
单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片
本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/
相信很多人都遇到过这样的情况:在一个Cortex-M嵌入式应用中要实现一个精确的毫秒级延时并不困难——如果你有RTOS,在任务中使用诸如 os_sleep(<休眠时间>)之类的函数就可以轻松实现;如果你是裸机,也可以使用每个Cortex-M芯片都默认携带的SysTick来实现一个,甚至Arm官方的CMSIS都提供了现成的API,即SysTick_Config(<中断间隔的时钟周期数>):
相信很多人都遇到过这样的情况:在一个Cortex-M嵌入式应用中要实现一个精确的毫秒级延时并不困难——如果你有RTOS,在任务中使用诸如 os_sleep(<休眠时间>) 之类的函数就可以轻松实现;如果你是裸机,也可以使用每个Cortex-M芯片都默认携带的SysTick来实现一个,甚至Arm官方的CMSIS都提供了现成的API,即SysTick_Config(<中断间隔的时钟周期数>):
在许多实时应用程序中,二八原则并不生效,CPU 可以花费95%(或更多)的时间在不到5% 的代码上。电动机控制、引擎控制、无线通信以及其他许多对时间敏感的应用程序都是如此。这些嵌入式系统通常是用c编写的,而且开发人员常常被迫对代码进行手工优化,可能会回到汇编语言,以满足性能的需求。测量代码部分的实际执行时间可以帮助找到代码中的热点。本文将说明如何可以方便地测量和显示在基于Cortex-M MCU的实时执行时间。
在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace),是用于系统调试及跟踪,
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。
FreeRTOS 的中断配置是一个很重要的内容,需要根据所使用的 MCU 来具体配置。这需要 了解 MCU 架构中有关中断的知识,本文结合 Cortex-M 的 NVIC 来讲解 STM32 平台下的 FreeRTOS 中断配置,分为如下几部分:
如果要罗列嵌入式江湖上受众比较广的几款应用处理器(带 cache、MMU 能跑 Linux 的 CPU 或者 MPU),i.MX 是一座绕不过的大山。
全球顶级嵌入式会展Embedded Word2020这个月底就开了,各路厂家都将拿出看家本领。
领取专属 10元无门槛券
手把手带您无忧上云