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.
Oozlum said: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.
Oozlum said: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.