We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.