THREAD UPDATE:So, I started this thread in May and I've been using Keil Pro for about 2 months now. I can confidently say, if I had selected Clang, or OpenWhatever, or GCC with free tools, there is just not a chance in hell I'd be where I am now. There have been huge challenges learning the new systems, getting to an RTOS, and all the peripherals I'm using. I can easily understand SFRs and datasheets, but it's just faster to learn with the libraries. The middleware so far has been great and "just works" (how often can we get to say that with micros!?). I do understand the limitations with Keil's IDE and some are annoying, but at the end of the day, I chose correctly. It was just too easy to pay the cash and jump ahead. I'm not even close to hitting performance walls, so take that for what it's worth. If I was an needed to optimize, I can go back and start working with SFRs and assembly again.
This is my work tho, and the only thing I actually care about is being able to deliver a working and reliable product. If I was a hobbyist, or mainly a hardware guy, I think my time testing Rowley was great.
Work has Keil Pro. The middleware is great. If you just need to write some embedded code, gcc is fine. I personally don't really see the value proposition though. For 1k you can buy something and be up and running in a day with support. But if you want USB device, or especially host? TCPIP? Just get Keil Pro. Worth every dollar. The middleware is really where it's at.
Is that where the real value is in the more expensive tools, then?
I've been using Rowley for the last year or so, and haven't had cause to think "I wish this tool had feature X". But then again, I'm writing single purpose, embedded code which runs on bare metal.
What I am missing, is the ability to implement higher level functions without considerable effort. For example, a while back I bought an STM32F4 dev board, which can be programmed by plugging it into a USB port and dragging & dropping a firmware file straight to the drive icon which appears on the Windows desktop.
I wouldn't have the first clue where to start implementing a feature like this on my own product. Suggestions?
Flat out, I've been able to integrate USB Host which I had never done before within a month of switching to ARM from Microchip. I'm a one-man team, so I'm pretty pleased with Keil so far. Support could be faster, esp for the price, but I've only needed it once really.