There are a lot of these things that "look easy enough" until you dive in. An example is a datasheet of a CPU. You might glance through it and think: Looks usable. Then when you start using it, precisely that section that you need is absent, badly written or inconsistent.lizardmech wrote: but motor control looks easy enough.
For C2000: It took me a long time to get the compiler to work. One of the things was that gcc-for-C2000 had a bug. It was noticed years ago, but nobody had taken the trouble to fix it for the distributed gcc. So I had to go in and patch it myself.
Oh anotherthing that looks good on the surface but is in fact "bad": They give you the code to drive the motors. However the code that you need to call to get the motor to spin is so complicated that they have to give you that code too. They end up writing a code generator for you. So you go clicketyclick, and it generates your source code for you. But now... when something changes, you get several not-pleasant choices: rerun the code generator and re-merge your code into the generated code. Rerun the code generator, try to figure out what changed and merge that into your code.
Similarly, they GIVE you the startup source code. YOU are meant to change it if you want to use an external clock or something. So when you get a new revision of the compiler suite, you get to review if they've fixed anything in one of the startup files that they have GIVEN you. Much better would be to have a default startup file. The startup file could call different hooks so that if necessary you can change different parts of the startup sequence. And if really necessary, you could override the global startup file.
You end up with a mess of system files and user-source files in your working directory. It's a mess.
Chibios suffers from some similar problems, but it is not that bad. You are supposed to COPY the ch.conf and hal.conf files from an example, and modify those to your liking. This breaks down when chibios changes something and requires a change to all the .conf files.