Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Open Source Software and Platforms
Open Source Software and Platforms
Wiki Bare-Metal Low Power Example
  • Help
  • Jump...
  • Cancel
  • About this wiki
  • Supported platforms
  • Obtaining support
  • +Arm Reference Platforms deliverables
  • +A-class platforms
  • -M-class platforms
    • -IoT Subsystems
      • Corstone-300 Platforms
      • +Beetle development board
      • -Musca development boards
        • Musca Platforms Links & Resources
        • +Musca-A development board
        • +Musca-B1 development board
        • -Musca-S1 development board
          • Musca-S1 Frequently Asked Questions
          • Musca-S1 Links & Resources
          • Musca-S1 Firmware update & QSPI/MRAM boot recovery
          • Board automatic run on power up
          • Keil Support for Musca-S1
          • -Musca-S1 Software Examples
            • Bare-Metal Low Power Example
            • CMSIS-RTOS2 Blinky Example
            • CMSIS-RTOS2 Blinky Low Power Example
        • Configuring S/NS Memory in an Armv8-M System
  • +R-class platforms
  • +FPGA prototyping boards
  • +Open source software

Bare-Metal Low Power Example

This 'Blinky' project is a simple ultra low power bare-metal example for the Arm 'Musca-S1 CM33 #0' device
on the Arm 'V2M-Musca-S1' evaluation board. The example is compliant to CMSIS.

Example functionality:

  • Clock Settings:
    • XTAL    =          50.00 MHZ
    • SYSCLK  =          50.00 MHz
  • one LED is flashing in three colors during different program phases:
    • Red    - code execution in SRAM
    • Green  - code execution in eMRAM
    • Yellow - Ultra-Low-Power (ULP) mode

The Blinky program is available in different targets

  • Debug (eMRAM) - main code and data are in eMRAM
  • Debug (SRAM)  - main code and data are in SRAM

In both targets the code for ultra-low power operation is kept in SRAM area that is not being turned off during ULP.

The application executes simple counting in SRAM and eMRAM. Timing and current consumption can be compared in SystemAnalyzer using ULINKplus.

Debug (eMRAM) Debug (SRAM)
code:     eMRAM  code:     SRAM
ulp code: SRAM ulp code: SRAM
data:     eMRAM data:     SRAM

How to use it:

  • Configure the board's BOOT switch to "MRAM".
  • Build the Debug (SRAM) target.
  • Go to debug to load the application into SRAM
  • Run debug. LED should show three colors interchangeably.
  • Exit debug without stopping.
  • Enter "Energy measurement without debug" mode
  • See power readings in the System Analyzer window
  • Repeat the previous steps with the taget Debug (MRAM) in this case code and data are kept in MRAM (except of SRAM count and ULP parts)
  • Share
  • History
  • More
  • Cancel
Related
Recommended