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.