首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TencentOS-tiny

    ARM探索之旅02 | ARM Cortex-M 用什么指令集?

    随着时间的推移和Thumb-2技术的引入,「作为Thumb指令集的补充,ARM指令集的大部分功能都被纳入到了Thumb指令,Thumb指令集演化为16位和32位混合长度指令集,称为Thumb-2指令集」 Thumb-2指令集的诞生,使得编译器可以在单个指令集中平衡性能和代码的大小,提供了极好的代码密度,最小化系统内存大小和成本。 「ARM Cortex-M 全部系列只支持唯一的指令集:Thumb指令集或Thumb-2指令集。确切的来说,是支持T32指令集。」 在Cortex-M阵营众多的成员中,每个处理器对 Thumb/Thumb-2 指令集的支持情况不同,「大部分处理器都是支持 Thumb/Thumb-2 指令集的子集」。

    2.6K30发布于 2021-07-01
  • 来自专栏TechBlog

    嵌入式:ARM处理器的工作状态

    Thumb2技术介绍 Thumb-2内核技术是ARM体系结构的新指令集,将为多种嵌入式应用产品提供更高的性能、更有效的功耗和更简短的代码长度,从而为其合作伙伴们在注重成本的嵌入式应用系统开发中提供了强大的发展潜能 Thumb-2内核技术以Thumb技术为基础,延续了超高的代码压缩性能并可与现有的ARM技术方案完全兼容,同时提高了压缩代码的性能和功耗利用率。 Thumb-2指令集在现有的Thumb指令的基础上做了扩充。 评价 Thumb-2指令集增加32位指令就解决了之前Thumb指令集不能访问协处理器、特权指令和特殊功能指令(例如SIMD)的局限。 Thumb-2指令集现在可以实现所有的功能,就不需要在ARM/Thumb状态之间反复切换了,代码密度和性能得到的显著的提高。

    72930编辑于 2022-12-10
  • 来自专栏wenzi嵌入式软件

    带你认识一下 ARM Cortex-M 阵营

    Cortex M0 处理器使用 AHB-Lite 总线、拥有三级流水线,支持部分 Thumb/Thumb-2 指令集。 ? 2. Cortex M0+处理器使用 AMBA AHB-Lite 总线、降低为两级流水线,支持部分 Thumb/Thumb-2 指令集。 ? 3. 使用 AMBA AHB-Lite 总线、三级流水线,支持部分 Thumb/Thumb-2 指令集。 ? 4. Cortex M4 Cortex-M4[6]处理器是一款高效的嵌入式处理器,使用 3 个 AMBA AHB-Lite 总线 (哈佛总线架构),三级流水线,支持 Thumb/Thumb-2 部分指令集,支持 Cotex-M23 使用 Armv8-M baseline 架构,拥有「2 级流水线」,使用 AMBA 5 AHB 总线,支持 Thumb/Thumb-2 部分指令集,支持 4 个优先级等级。

    4.3K10发布于 2021-06-21
  • 来自专栏爬虫逆向案例

    ARM汇编之加载寄存器

    这是因为 ARM 和 Thumb-2 指令的长度仅是 32 位。在使用 16 位 Thumb 指令时,可生成的常数范围要小得多。 MVN 可加载这些值的按位补码 用 MOV32 加载 在 ARMv6 中,ARM 和 Thumb-2 指令集均包含: • MOV 指令,它可以将位于范围 0x00000000 到 0x0000FFFF 在没有 Thumb-2 的处理器上的 Thumb 状态下,ADRL 将不可用 用 ADR 加载跳转表地址 在程序中常常需要根据一定的参数选择执行不同的子程序。 用一个字符串覆盖另一个字符串的 ARM 代码例程: DCB 指令定义一个或多个存储字节 LDR 和 STR 指令使用后变址寻址来更新其地址寄存器 加载和存储多个寄存器指令 ARM、Thumb 和 Thumb

    1.4K20发布于 2021-11-22
  • 来自专栏爬虫逆向案例

    ARM汇编基础知识

    Thumb-2状态,新的thumb-2内核技术兼有16位及32位指令,实现了更高的性能,更有效的功耗及更少地占用内存 调试状态,ARM处理器停机时进入调试状态。 而 Thumb、Thumb-2 指令的长度是 16 位或 32 位。这些指令按半字对齐方式存储。其中有些指令使用最低有效位来确定跳转到的目标代码是 Thumb 代码还是 ARM 代码。

    86020发布于 2021-11-22
  • 来自专栏linux基础

    stm32的简介。

    在指令集方面,ARM7和ARM9都有两种指令集(32位指令集和16位指令集),而Cortex-M3系列处理器支持Thumb-2指令集。 由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代码密度之间取得了平衡。    而且,ARM Thumb-2 专门为C/C++编译器设计,这就意味着Cortex-M3系列处理器的开发应用可以全部在C语言环境中完成。    目前好多开发工具都开始支持Thumb-2指令集和STM32系列,即使不支持也没有关系,我们只需要将软件升级一下即可。同时,ST公司还提供了一个设备驱动固件库和一个USB开发应用库,以方便调用。

    1.4K00发布于 2020-07-24
  • 来自专栏linux基础

    ARM的体系结构。

    Debian  Linux 第三方 - MontaVista、QNX、Wind River  Symbian  Windows CE  需要使用内存管理单元的其他操作系统支持  指令集支持 - ARM、Thumb 此外,还引进了作为 ARMv6 体系结构的变体的 Thumb-2 和 TrustZone 技术。   所有 ARMv7 架构配置文件都实现了 Thumb-2 技术(一个经过优化的 16/32 位混合指令集),在保持与现有 ARM 解决方案的代码完全兼容的同时,既具有 32 位 ARM ISA 的性能优势 (或 ARM):32 位固定长度指令集,通过不同体系结构变体增强部分 32 位体系结构执行环境现在称为 AArch32  • T32 (Thumb),以 16 位固定长度指令集的形式引入,随后在引入 Thumb

    2K30发布于 2020-08-04
  • 来自专栏Windows运维

    聊聊ARMv7l:这是啥架构?

    Thumb-2:一种混合指令集,能让代码更紧凑,省内存的同时还不怎么牺牲性能。多核支持:ARMv7-A可以支持多核处理器,比如双核、四核,跑多任务更顺畅。那“l”代表的小端序是啥意思呢? 它支持NEON、VFP、Thumb-2这些高级功能,适合轻量级任务,但跟64位的ARMv8-A比,确实有点过时了。不过,对于DIY爱好者、嵌入式开发者来说,ARMv7l依然是个经济实惠的选择。

    63310编辑于 2025-07-27
  • 来自专栏嵌入式单片机

    单片机STM32的启动文件详解--学习笔记

    THUBM是ARM以前的指令集,16bit,现在Cortex-M系列的都使用THUMB-2 指令集,THUMB-2 是32 位的,兼容16 位和32 位的指令,是THUMB 的超集。   3.

    2K40发布于 2019-12-27
  • 来自专栏TechBlog

    嵌入式:ARM体系结构详解

    所有ARMv7 profiles实现Thumb-2技术,Thumb-2技术比纯32位代码少使用31%的内存,降低了系统开销,同时却能够提供比已有的基于Thumb技术的解决方案高出38%的性能表现。 T32 (Thumb) 是以 16 位固定长度指令集的形式引入的,随后在引入 Thumb-2 技术时增强为 16 位和 32 位混合长度指令集。部分 32 位架构执行环境现在称为 AArch32。

    2K20编辑于 2022-12-09
  • 来自专栏嵌入式学习

    STM32启动代码详细分析

    THUBM 是 ARM 以前的指令集,16bit,现在 Cortex-M 系列的都使用 THUMB-2 指令集,THUMB-2 是 32 位的,兼容 16 位和 32 位的指令。 3、向量表 ?

    88420发布于 2020-09-07
  • 来自专栏秘籍酷

    纯干货|最经典的STM32概述!

    但是注意:绝大多数 16位Thumb指令只能访问R0-R7,而 32位 Thumb-2指令可以访问所有寄存器。 Thumb-2的到来告别了状态切换的旧世代,再也不需要花时间来切换于 32位 ARM状态和16位Thumb状态之间了。这简化了软件开发和代码维护,使产品面市更快。 Thumb-2指令集为编程带来了更多的灵活性。许多数据操作现在能用更短的代码搞定,这意味着 Cortex-M3的代码密度更高,也就对存储器的需求更少。 取指都按 32位处理。

    1.4K20发布于 2019-08-08
  • 来自专栏算法微时光

    ARM架构学习

    Cortex-A9、经过市场验证的Cortex-A8处理器以及高效的Cortex-A7和Cortex-A5处理器均共享同一体系结构,因此具有完整的应用兼容性,支持传统的ARM、Thumb指令集和新增的高性能紧凑型Thumb

    1.9K30发布于 2020-04-23
  • 来自专栏韦东山嵌入式

    嵌入式开发概述

    ARMv6中,还引入了Thumb-2和TrustZone技术,这是两个可选的技术。之前的版本中,ARM 指令和Thumb指令分别运行于不同的处理器状态,执行不同指令集的指令前要进行切换。 Thumb-2技术增加了混合模式的功能,定义了一个新的32位指令集,使得可以运行32位指令与传统16位指令的混合代码。这能够提供“ARM指令级别的性能”与“Thumb指令级别的代码密度”。 ARMv7架构使用Thumb-2技术,还使用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。 Cortex-A为传统的、基于虚拟存储的操作系统和应用程序而设计,支持ARM、Thumb和Thumb-2指令集;Cortex-R针对实时系统设计,支持ARM、Thumb和Thumb-2指令集;Cortex-M 为对价格敏感的产品设计,只支持Thumb-2指令集。

    2.4K20发布于 2020-09-30
  • ARM 嵌入式处理器内核与架构深度剖析(2): ARM 处理器架构剖析

    2.3 指令集演化 指令集 编码长度 性能密度比 典型应用场景 ARM 32-bit 1.0x 高性能关键代码段 Thumb 16-bit 0.8x 代码尺寸敏感场景 Thumb-2 16/32bit 1.2x 现代嵌入式系统 Helium 可变长 3.5x Cortex-M55矢量处理 Thumb-2通过引入32位指令(如MLA, IT块)将代码密度提升30%的同时提高性能25%,其混合编码机制允许

    34810编辑于 2026-01-21
  • 来自专栏这里只有VxWorks

    Vx69默认支持的那些Board

    Freescale iMX31LITE Intel IXDP465 Keil Mcb2460 Marvell Littleton Marvell PXA320 (Zylonite) Mistral OMAP35xx Thumb

    44510编辑于 2024-05-17
  • 来自专栏小狐狸说事

    7b2美化-列表文章上浮效果

    #04befe 100%); } .thumb-1 { background-image: linear-gradient(to top, #9be15d 0%, #00e3ae 100%); } .thumb

    55730编辑于 2022-11-16
  • 来自专栏小北的博文

    stm32学习笔记

    消费电子、家用电器、医疗器械 2.4Cortex-M3/4/7介绍 类别 Cortex-M3 Cortex-M4 Cortex-M7 核心版本 ARMv7-M ARMv7E-M 指令系统 Thumb/Thumb

    47720编辑于 2023-10-21
  • 来自专栏韩曙亮的移动开发专栏

    【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )

    # 64-bit mode (for X86, PPC) CS_MODE_THUMB = (1 << 4) # ARM's Thumb mode, including Thumb

    1.9K10编辑于 2023-03-29
  • 来自专栏具身小站

    ARM Cortex-M系列控制器详解

    典型应用 代表芯片 M0+ ARMv6-M ≤100MHz 功耗<10μA/MHz,2级流水线 0.95 DMIPS/MHz 遥控器、传感器节点 STM32G0 M3 ARMv7-M ≤120MHz Thumb

    97610编辑于 2025-10-31
领券