I first moved from AVR/PIC to ARM on Atmels SAM series. This was at the time before they had a well established ASF, or the popularity brought about by the Arduinos. I initially found it to be a big learning curve. I chose Atmel because I liked their datasheets for AtMega. Most ARM Coretex-M chips seemed to have massively more complicated clock systems and workings, all that needed careful setting up before you even get to the point of flashing LEDs, it made the jump feel quite daunting.
After reading though the datasheets several times, sometimes drawing little sketches of how things like oscillators are clock generators are attached to clock generators, and peripherals helped, especially when the datasheets didn't provide clear diagrams. Still, after a day or so I was up and running with a bear metal LED flasher, with the MCU running at its full speed..
I then moved onto STM32, and found the datasheets to be written in a way that I couldn't get on with. Coming from the way Atmel (used to) write their datasheets, the ST datasheets seemed unfamiliar and difficult to navigate in comparison. The architecture of the STM32 is also a lot more complicated, and versatile. Lots more options for clock routing etc, which at the time made it seem like such a heavy learning process, especially from AtMega/PIC type devices. It didn’t help that at the time the free tools for STM32 were in a really mixed state.
More recently I’ve been doing a lot of development with Silicon Labs EFM32 micros. Whilst they aren’t a popular choice, and by no means the cheapest. I’ve found their datasheets, IDE and kits very easy to get going with. They have a much more straightforward clock generation system and the IDE, and usually most systems are well illustrated or described in the datasheet.
When I get a new placement student to work with, I always start them getting something going with the EFM32. The ones who haven’t had ARM experience say that it was surprisingly easy, and the ones that have (Usually STM32) say that it was much easier to get going with.
As a hobbyist starting out with ARM, pick a product family that looks like it’s designed to get going fast with. Does the vendor provide free tools? Is there a lot of community support? Are those community channels often filled with people struggling to get simple things working?
Often (but not always) the development environments provided by the IC vendor contain everything you should need to get something running, and are usually pre-configured to create suitable templates for linker files etc that will get the micro up and running as fast as possible.
As far as vendor provided IDEs I’ve used, these is my personal ranking of the major ones:
Simplicity Studio (for EFM32)
CubeIDE (for STM32) - This and TrueSudio have some damn fine debugging features.
TrueStudio (for STM32)
AVR studio (For Atmel AVR/SAM)
And a special mention for MPLabX, which is so bad it should be avoided at all costs..
I’ve attached a couple of guides I started writing for a local community makers group to get started with Atmel SAM micros.. They are by no means comprehensive, the first is mainly about some advantages of going ARM, and the second gets a simple blinky done in bare metal on a SAMD21. The blinky guide was designed not to just give you the code but tell you how to use the datasheet to find the required information. I haven’t really had the time to continue them further, or go back to them to make them better, so expect them to be full of mistakes and out of date information!