Hi Alex and Felix,
planned development schedule :
* test that pprz code built with chibios build systems runs reliably.
* let pprz run in one big chibios task and test how it behaves.
* log data to sd within another task, with api which permit to log data from pprz task
I would say that this was my first approach and I completely agree with it.
but to be honest, when I started to integrate ChibiOS to ppz, I realized that probably the time spent for this task would be about the same whether
I had to write the low-level stuff from scratch. So my approach is currently the next, which could be considered a new project:
- Rewrite the drivers and fit the low level tasks to the scheduler (just reading sensors, radio communication, etc) employing only ChibiOS stuff (HAL and Kernel services) in C++ (I like classes for reading out
and maintain the code).
- To abstract the former such that I can still using the control loops, logging, etc from ppz.
- Later on to abstract the control loops and other high level stuff as well.
- Port algorithms involving matrices to Eigen (matrix lib in C++), so they would be easier to read and modify, and also the end user can take advantage of that for new stuff.
- Maintaining the same xml files as in ppz, so for the end user (if this finally ends up) nothing has been changed.
The main drawback is obvious, this is a "critical" system and the current ppz code is reliable, therefore this "port" likes more a different system (probably the last point about xml files does not make sense either),
so it is not reliable anymore before testing it.
The main advantage to me is to have a more scalable (in the sense of having everything in abstract blocks) and easier code to maintain, taking as starting point blocks that they are already nicely working in ppz.
My current status is that I have almost finished the first task, and now I have to figure out how to integrate/glue the high level stuff from ppz.