Personally I prefer Ultibo, most baremetal is too bare for me as I am using it instead of an OS.
So if development speed is an issue, Ultibo comes with a lot out of the box.
Very easy to get up and running.
And you can use the normal Lazarus/FPC to code in Raspbian, or Linux or Windows.
But of the C baremetal stuff this is the only one with USB, I think?
It is C++ but the object stuff makes it more modular.
I have always found C++ a big step up from C.
Free Pascal seems to fits between C and C++ in complexity.
Give me a few more years of Pascal coding, I might be ready for C++
USB port programming is tricky too, anything not a standard MSD, HID or UART may cause problems for you.
Writing USB drivers are not easy even in Windows and Linux.
If you have Linux C source it would/should be easy to port to Circle.
Start here? https://github.com/rsta2/uspi
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges