Keil Logo


Learning Platform

The µVision Debugger provides complete instruction set simulation for all ARM7, ARM9, Cortex-M based microcontrollers.

When debugging your program, op-codes are interpreted and executed as their corresponding instructions would be. This allows program execution without hardware within a fully controlled environment.

Software Simulation for Verification and Validation

Simulation helps to validate software throughout all stages of the development cycle. A high-level product design can be tested in simulation to see if it serves the intended use and meets all requirements:

  • Debug Functions automate test procedures and control the simulation flow. A test might run unattended on a virtual platform or on a server environment.
  • Signal Functions generate inputs for test scenarios.
  • The Advanced Generic Simulator Interface (AGSI) allows to extend the core functionality of the simulation with custom DLLs.
  • Peripheral Simulation is available for a limited range of devices/peripherals.

Simulation Pros and Cons


  • Early Access: Dynamic testing is available at every stage of software development
  • No Hardware Required: Proof of concept testing before hardware design is done.
  • Inject Dangerous Faults: Simulate conditions critical to hardware without risk.
  • Full Visibility​: Simulation traces data, registers and instructions and gives a full insight into the system to analyze failures.


  • Peripheral Access: Software access to peripheral registers cannot be tested in most cases or will behave differently (refer to KB 3726.
  • Memory Timing: Any simulation can only assume ideal conditions for memory access. It does not simulate wait states for data or code fetches.

Simulated Processor Cores

The following ARM cores can be simulated using MDK Version 5 and the ARM::CMSIS Software Pack:

  • ARM Cortex-M0: ARMCM0
  • ARM Cortex-M0+: ARMCM0P
  • ARM Cortex-M3: ARMCM3
  • ARM Cortex-M4: ARMCM4
  • ARM Cortex-M4 with FPU: ARMCM4_FP
  • ARM SecurCore 000: ARMSC000
  • ARM SecurCore 300: ARMSC300

Complete Device Simulation

For some devices it is impossible to simulate the behavior of the on-chip peripherals, not only the processor core. This legacy device simulation is still available and can also be used together with MDK Version 5 projects.

The page Simulation of Cortex-M Devices provides information about the simulatable devices and how to enable complete device simulation in µVision.

Note Note

Use Simulator

To use simulation, you need to enable it in µVision. Go to Project -> Options for Target and move to the Debug tab. Enable Use Simulator on the left-hand side of the window:

Enabling Simulation

Fast Models/Fixed Virtual Platforms

With ARM Fast Models, software development for ARM Cortex processors can begin prior to silicon availability. These extensively validated programmer’s view models provide access to ARM-based systems suitable for early software development. Fixed Virtual Platforms (FVPs) give you a great way to start bare metal coding and Linux application development for ARM without the need for a physical target.

µVision can use the Fast Models Debugger Driver for debugging applications simulated with Fast Models. Refer to the page Fast Models Debugger Configuration for more information.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.