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.
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:
- Define peripherals, memory map, and system interfaces you need
- Configure and instantiate the Cortex-M1 core
- Add peripherals and connect system buses
- Develop board support code, device drivers, etc.
- Implement embedded application firmware
- 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!