Or maybe the lack of hardware floating point? As for openocd, I did compile in support for that but I'm currently using stlink. Mainly because that seemed easier at the time... I must admit I didn't really do any research on openocd vs stlink vs whatever else there may be out there. At first I was concerned with just getting stuff to work. Does openocd (in SAT or in yagarto) have any advantages over stlink?
I haven't used hardware FP in an mcu project yet, but I'm pretty sure both yagarto and SAT will support it, since they're both using GCC. I've used both stlink and openocd. Stlink is obviously only going to work with ST chips, if that's an issue (I started out using Stellaris parts from TI). Both seem to work fairly well, but my impression is that the openocd project is more active. I've been able to post questions to the mailing list and get answers pretty quickly. I haven't tried that with stlink.
For me, it came down to getting emacs (my IDE), gdb and the debugging layer to place nicely together. It was a trial-and-error process, but I've got things working fairly well now with emacs 24.1.1, gdb 6.3.50, and a patched version of openocd 0.6. The
patch is to handle the "'g' packet reply is too long" error with gdb. If you're curious, read athquad's reply
here.