1- When I pick a (cortex-A / M) processor/board from vendor1 and learn how to program it , then I want to switch to vendor2 (cortex-A / M) processor/board will I need to re-learn how to use the peripherals?
2- If I learned a cortex-M processor programming will that help me learn cortex-A programming ? my guess is that cortex-A run on an OS and thus its programming is somewhat similar to desktop programming? yes?
3- are peripherals physically inside the processor chip (and its specs is part of arm specs) or they are in separate chip on the board? I think that they are inside the chip and vendor specific , in other words those are not part of the arm specs but rather "addons" by the vendor. right?
thank you
Hi John,
1) To some degree, yes, they will be different... as per Q3, these peripherals are generally vendor specific. Programs such as CMSIS (and now Open-CMSIS) have been developed to ease this portability.
2) Many, but not all, Cortex-A use cases run Linux or similar OS, but they are also deployed in bare-metal or RTOS use cases. Though the instruction sets share a lot of commonality, the programmers model of Cortex-M and Cortex-A, notably the exception model, are quite different.
3) Arm based devices are typically highly integrated with many peripherals inside the IC. Though Arm have designed some general purpose Peripheral controllers, these are not mandated for use, and most silicon vendors will use a mix of internally developed and licensed (from Arm or other) peripheral IP in their devices.
RegardsFYI, I am an an Arm employee, though my comments here are my personal comments
1: Yes, peripherals are vendor-specific:
https://community.arm.com/developer/tools-software/tools/f/keil-forum/43684/lpc2148-timer0-not-working-as-expected/158950#158950
EDIT: as already covered in your previous question:
https://community.arm.com/developer/ip-products/f/infrastructure-solutions/49417/is-c-programming-standard-for-all-arm-chips/172383#172383
2. In general, Yes: 'M' is for "Microcontroller"; 'A' is for "Application" - but some "microcontroller" project use an OS (or, more likely, RTOS), and it's possible to do "bare metal" on 'A'
3. It depends - especially when you come to things like radio subsystems. The terms "SoC" and "SiP" are sometimes used:
Generally, it makes no difference to the programmer.
Sometimes the terms are mis-applied
FYI, I am not affiliated with nor sponsored by ARM.