SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: Tips for New Cortex-M1 DesignStart Users
SUBSCRIBE
SoCSoC
Font ResizerAa
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Search
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Have an existing account? Sign In
Follow US
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
© S-O-C.ORG, All Rights Reserved.
Arm

Tips for New Cortex-M1 DesignStart Users

Neil Salmon
Last updated: September 21, 2023 11:13 am
Neil Salmon 8 Min Read
Share
SHARE

The Cortex-M1 processor from ARM is an exciting new chip for embedded and IoT developers. The DesignStart program gives developers early access to the Cortex-M1 to start building and testing designs. If you’re just getting started with Cortex-M1 DesignStart, here are some tips to help you get up and running quickly.

Contents
1. Understand the Basics of Cortex-M12. Read All the DesignStart Collateral3. Get Hands-On with the Arm Virtual Hardware4. Check Out the Example Designs5. Join the Community6. Take Advantage of Free Tools7. Understand the DesignStart Deliverables8. Start Your Design9. Optimize Performance and Power10. Engage Arm Early and Often

1. Understand the Basics of Cortex-M1

Cortex-M1 is ARM’s new microcontroller-class processor optimized for embedded and IoT applications. It delivers a big jump in performance over Cortex-M0 and Cortex-M0+ while maintaining low power consumption. Key features include:

  • Up to ~3x higher performance than Cortex-M0+ at the same power budget
  • Armv8.1-M instruction set architecture with microcontroller profile
  • Advanced new microarchitecture optimized for embedded
  • Efficient dual-issue superscalar pipeline
  • Optional Memory Tagging Extension (MTE) for memory safety
  • Scalable design allows implementation in various power/performance points
  • Compatibility with Cortex-M0/M0+ simplifies software reuse

Spending some time upfront getting familiar with the Cortex-M1 architecture and capabilities will help you make the most of the processor when designing your system.

2. Read All the DesignStart Collateral

ARM provides a wealth of resources to DesignStart users through the program website. This includes detailed technical reference manuals, optimization guides, application notes covering specific design topics, tutorials, etc. Set aside some time to read through the available collateral. This will give you a solid base of knowledge to work from and help avoid common pitfalls.

Pay special attention to the known issues/errata and integration notes. ARM is continually updating and adding collateral, so check back periodically for new releases.

3. Get Hands-On with the Arm Virtual Hardware

Virtual prototyping is invaluable when starting new designs. Arm offers a virtual Cortex-M1 prototype through the Arm Virtual Hardware program. This lets you simulate your Cortex-M1 system before any physical hardware exists. The virtual prototype includes:

  • Cortex-M1 processor models at different power/performance points
  • Components like clock, memory, bus infrastructure
  • Peripheral models including GPIO, UARTs, timers, watchdog, etc.
  • Simulation framework to load and run firmware on the model

The virtual hardware lets you validate your firmware, develop drivers, and start application development all before taping out any physical silicon. Sign-up for a 30-day evaluation license to test it out.

4. Check Out the Example Designs

ARM provides a set of example DesignStart system designs that you can use as a starting point for your own design. These include:

  • Basic system – Minimal setup for early firmware development
  • Blinky – Adds GPIO and a sample LED blinking firmware
  • Sensor subsystem – Demonstrates interfacing sensors over I2C
  • Secure system – Shows how to incorporate Arm TrustZone for Cortex-M

The example designs have schematics, pin-outs, software, and documentation all ready to go. You can easily import these into your tools and start modifying for your application.

5. Join the Community

DesignStart has an active and growing online user community. The Arm Community forum features technical discussions about Cortex-M1 hardware, software, tools, and more. Developers are sharing code snippets, asking questions, and helping each other out.

Becoming a member of the community is a great way to learn. You can search for answers to issues you run into or post questions when stuck. Collaborating with fellow designers will help you be successful on your project.

6. Take Advantage of Free Tools

You don’t need expensive commercial tools to start developing with Cortex-M1. DesignStart provides free tool options including:

  • Arm Compiler 6 – Code generation for C/C++
  • Arm Development Studio – C/C++ IDE and debugger
  • Keil MDK-Lite – Free version of Keil IDE and debugger
  • Mbed Online Compiler – Online IDE and build tools

These free tools allow you to start writing Cortex-M1 firmware on day one. You can upgrade to more advanced commercial tools later if needed.

7. Understand the DesignStart Deliverables

The DesignStart program provides early access to the Cortex-M1 IP so you can start development before the full commercial release. Understand exactly what deliverables you get access to:

  • RTL for the Cortex-M1 cores
  • Integration test bench for verifying your design
  • Documentation, models, collateral as described above

What you don’t get at this stage is physical silicon or implementation IP. Your first DesignStart tapeout will be an FPGA prototype or test chip. Plan your project timeline accordingly.

8. Start Your Design

With an understanding of the architecture, tools setup, and example designs available, you’re ready to dive in and start your Cortex-M1 design. Work through these steps iteratively:

  1. Define peripherals, memory map, and system interfaces you need
  2. Configure and instantiate the Cortex-M1 core
  3. Add peripherals and connect system buses
  4. Develop board support code, device drivers, etc.
  5. Implement embedded application firmware
  6. Verify on virtual prototype before taping out FPGA or test chip

Move quickly through iterations to validate your design and firmware together. Be prepared to revisit and refine the architecture as you go.

9. Optimize Performance and Power

A key benefit of Cortex-M1 is the performance headroom it provides over Cortex-M0+/M0. But you’ll need to design with this performance in mind to fully realize it. Follow these tips:

  • Use the Cortex-M Profile Architect’s Guide to start
  • Understand how the dual-issue pipeline works
  • Look at compiler feedback and optimize hot spots
  • Profile on virtual prototype to identify improvements
  • Configure cycle count options and timers
  • Measure power on FPGA prototype

Optimizing both performance and power efficiency should be an ongoing effort through your design process.

10. Engage Arm Early and Often

Arm has a team of engineers available to support DesignStart users. Engage them early for design reviews and advice. Have regular check-ins throughout your project to:

  • Review your high-level architecture
  • Get feedback on specific design issues
  • Ask tool usage and flow questions
  • Verifying integration of new IP versions

Don’t wait till you run into blockers. Leveraging Arm expertise proactively will help you avoid pitfalls and improve your design.

Following these tips will get you off to a successful start with your Cortex-M1 DesignStart project. The Cortex-M1 community is excited to see what innovative embedded and IoT products you build!

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article Debugging Cortex-M1 DesignStart Projects with DAPLink
Next Article Estimating Stack Memory Needs for Arm Cortex-M Applications
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

2k Followers Like
3k Followers Follow
10.1k Followers Pin
- Sponsored-
Ad image

You Might Also Like

What is the difference between link register and stack pointer?

The link register and stack pointer are two important registers…

9 Min Read

Which interrupt has the highest priority in arm?

In the ARM architecture, interrupts are handled by the processor's…

6 Min Read

How to Install ARM GCC Compiler

The ARM GCC compiler is necessary for compiling code to…

5 Min Read

What is Single Instruction Multiple Data (SIMD) in ARM Neon?

SIMD (Single Instruction Multiple Data) refers to a type of…

7 Min Read
SoCSoC
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
Welcome Back!

Sign in to your account