I would have a look at mBed - they have a good Arduino-style API with well written libraries to interface with a variety of board.
If you need to go deeper, and you are using ST, beware, the [ST ecosystem is terrible](https://www.eevblog.com/forum/microcontrollers/st's-(stm32cube)-software-ecosystem-is-terrible-how-can-we-fix-it/). But if you must...
I work in Eclipse with the GNU ARM Plugin, and OpenOCD as the debugger (its built into the plugin).
It was painful to setup like you wouldn't imagine, but once it works, it works. I generally dislike Eclipse. I am a *huge* JetBrains fan and use IntelliJ (and a little Sublime) for all other development. I wish CLion had a community version that we could make an embedded dev environment for. Best text-editor, refactorings, editor performance, diff tool, etc.
However, Eclipse feels amazing when you look at the other "industry-standard" IDEs for ARM development. I cannot stand Keil and IAR. They have such terrible editors I don't know how anyone writes well structured code, or refactors, or uses version control effectively.
To work productively I need: keyboard shortcuts to jump to files and symbols; find usages/call hierarchy; include browser; code style/smart-indent; file navigator linked to file system (none of these virtual files that get out of sync); auto-complete; ctrl-click code navigation; find text in files; refactorings; extract methods/variables shortcuts; local history; vcs integration; plugins.
I don't think this is unreasonable to expect a decent editor from these $4000 IDEs, but I think its very important to have good debugging features which are only available at these kind of price points. You will suffer one way or the other in ST.
CrossWorks has a big fan base on the usual forums, is cheap, and works pretty smooth for setup, flashing, debugging, but its editor doesn't have ctrl-click navigation and is pretty weak.
Can't really stand anything java/eclipse related, just principles.
Another experiences :
- Apple iOS development, same arm-compatible chips, free toolset, good debugger ... well I also hate xcode, but it's another story
- Windows phone development, same arm-compatible chips, free toolset, great debugger ... and MSVS
- Android development, same arm-compatible chips, free toolset, PAY FOR NATIVE DEBUGGING to Nvidia, or go die with VisualGDB
Wonder why embedded is so "different"
We could have arm development in MSVS and that's it .. but instead people in embedded-releted companies are trying to develop "best text editor of all times" .. that's not even their field of business
I mean vim is there, emacs is there, notepad++ is there, "Not invented here" syndrome is studied and well known, what's wrong with them then ?