I would like to know how much compatibility can I expect between ARM MCUs from different vendors.
For example, let's say I write a firmware using C language for a Cortex M0 using its CAN peripheral. Will I be able to port it to a Cortex M0 from a different vendor with no changes? (or at least minimal changes) Or peripherals are completely different between them?
And what about if I use an RTOS like FreeRTOS? Does FreeRTOS abstract from the hardware so I'm able to port my software easily?
Finally, are all ARM Cortex M0, M4, etc from all vendors supported by FreeRTOS? Or only specific models of specific vendors?