This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How generic are Cortex-M0+ MCUs?

I'm just getting started in the Arm world and I'm trying to get a better understanding of the similarities between various vendor implementations of the Cortex-M0+ at the toolchain level.

I have previously got a 'blinky' program working on an LPC804, using a generic arm-gcc cross-compiler, programmed using the UART boot loader with a command line application.  I now have a need to use the ATSAMD21G processor in a project and I'd like to understand how much of the LPC804 workflow I can re-use.

Assuming that no chip-specific peripherals are being used, I presume I can use the same, generic arm-gcc cross-compiler to target the new MCU?  Is the boot loader actually part of the Cortex specification?  Can I expect the same command line application to upload the binary to any Cortex-M0+ MCU?

I'd be grateful for any pointers to information on the realities of using the Cortex-M0+ across different vendors.

  • Just compare the reference manuals. 

  • There are some optional features in the Cortex-M0+ core - so you'd have to check the specific implementation details on them.

    Can I expect the same command line application to upload the binary to any Cortex-M0+ MCU?

    generally, yes.

    But if you're using some manufacturer-supplied utility, you might find that it is locked to that manufacturer's chips.

    Assuming that no chip-specific peripherals are being used

    That might be rather difficult - as providing the clock to the core is usually proprietary (chip-specific).

    Also, the programming of the flash is chip-specific.