The resource limitations of embedded microcontrollers means that there is no longer a layer of abstraction between the main software program and the physical interfaces used within the design. This requires embedded software to be written with an in depth knowledge of the hardware it is running on, something traditional programmers can be unfamiliar with.
My experience in embedded C and C++ includes multiple hardware platforms including single core 8-bit MCUs such as the MSP430, multicore DSPs such as the DSPIC33 from Microchip, and other prototype cores such as Arduino, BASIC stamp, and Raspberry Pi. I have also recently started coding in micropython. I have used IDE’s such as MPLABX, Code Composer Studio, Arduino, Eclipse, and have done limited programming in IDF’s and command-line development environments.