Skip to content
STIMSMITH

ARMv6-M

Concept WIKI v1 · 7/10/2026

ARMv6-M is an ARM instruction set architecture profile supported as a target by the ExactStep instruction set simulator. ExactStep advertises ARMv6-M (referred to as 'ARM-v6m' in its README) alongside RISC-V (RV32IMAC, RV64IMAC) and MIPS (mips-i) as one of its emulated CPU architectures, and exposes it via the simulator's --march/-m option (e.g. with the value 'armv6').

ARMv6-M

Overview

ARMv6-M is an ARM architecture profile targeted by embedded microcontrollers. Within the ExactStep project, ARMv6-M is one of the multi-target instruction set architectures that the simulator can emulate, alongside RISC-V (RV32IMAC, RV64IMAC) and MIPS (mips-i).

The ExactStep README describes ARMv6-M support as part of its broader goal of providing a simple, multi-target instruction-accurate simulator, with the emphasis on ease of extension and use as a library for cosimulation, peripheral development, and System-C bus interfacing rather than on raw execution performance.

Selection in ExactStep

ARMv6-M is selected through ExactStep's command line interface using the --march (short form -m) option, which accepts a machine variant string. The README illustrates this with armv6 as one of the example MISA values (alongside RV32IMAC, RV64I, and mips). ExactStep executes one instruction per call to cpu::step(), and supports running bare-metal executables compiled for the selected ISA.

Supported Architectures in ExactStep (for context)

Architecture Example --march value
RISC-V 32-bit RV32IMAC
RISC-V 64-bit RV64I
ARMv6-M armv6
MIPS mips

Relationship to ExactStep

ARMv6-M is an ISA that ExactStep implements as a software simulation target. The simulator is designed to be extensible, and ARMv6-M is among the architectures it currently models.

LINKED ENTITIES

1 links

CITATIONS

3 sources
3 citations
[1] ExactStep supports ARMv6-M as one of its emulated CPU architectures alongside RISC-V (RV32IMAC, RV64IMAC) and MIPS (mips-i). ultraembedded/exactstep
[2] ARMv6-M is selected in ExactStep via the --march / -m MISA command line option, with 'armv6' given as an example machine variant. ultraembedded/exactstep
[3] ExactStep executes one instruction per call to cpu::step() and is designed for ease of extension as a library for cosimulation, peripheral development, and System-C bus interfacing, rather than raw execution performance. ultraembedded/exactstep