Download Software and software architecture for a student satellite

Transcript
Testing the OBC firmware was difficult at best. For instance, a stack
overflow caused a lot of headache during development. The only visible
behavior, was that the OBC ended up in an seemingly arbitrary exception handling routine. It was not possible to deduce why or what caused
this to happen. In the end, the problem was a stack overflow when calling printf. The lessons learned here, is that concurrency makes both
testing and debugging difficult.
Unit-testing has not been considered in this project. It would be interesting to research what kind of options we have. But it is important to
note that unit-testing would most likely not reveal the problems enountered during testing of FreeRTOS and Cubesat Space Protocol on the
OBC.
Summary
Cubesat space protocol, libcsp, was found to be a capable communications library. By using libcsp, and using our own services on top of that,
we can take advantage of the fact that libcsp is a tried and testet product. Another option would be to develop a solution from scratch. This
has been done in many other CubeSat projects. But we would still need
at least the following features:
• Packet routing
• Packet checksumming
• Packet authentication or encryption
• Services for getting system status
• Be relative hardware independent
Each of those features themselves, would probably not take a tremendous effort to implement ourselves. Especially because we only have to
implement exactly what we need. But we would still have to spend a lot
of time designing, implementing and testing the system.
FreeRTOS was found to be the only viable OS alternative. There are
other operating systems, but unless we are willing to do the porting
ourselves, there is no other cost-effective option. libcsp is also ported to
FreeRTOS.
It would be possible to implement operating system-like features
ourselves. And while that would certainly be an interesting task, i would
also just as certain be extremely time consuming.