I was a C++ on AVR (NOT Arduino) person for many years. I switched to Atmel ARM devices (i.e. ARM M0+ and M4) years ago as they became bigger, faster, cheaper, lower power, etc. If you are targeting bare metal embedded applications, I would suggest using Atmel Studio 7 with GCC C++ and ASF (Advanced Software Framework). I believe ASF will provide the drivers and hardware abstraction you are looking for. They will warn you that ASF does not support C++, but ASF functions can be called as extern "C" functions. Use Atmel ICE for downloading code, source-code level debugging, and target register read/write. I wrote my own cooperative task-switching executive and resident interactive interpreter/compiler. I typically connect my embedded systems to a PC via multiple USB logical serial connections using multiple endpoints. This is very handy for separating control, status, and debugging streams.
K
Kirk J Davis
@Kirk J Davis