4 ms·
We have a little bit of assembly for processor-specific startup housekeeping, but that's mostly reused with small modifications for different boards. The rest o
by calummurray 8y ago
We have a little bit of assembly for processor-specific startup housekeeping, but that's mostly reused with small modifications for different boards. The rest of the code base is entirely C, managing functions such as ground communications, mobility (locomotion, navigation and control), thermal management, power management, fault detection and recovery, payload (e.g. science instrument) management and mission planning.
We need 100% branch code coverage at unit test level, and have function validation tests written in Java that validate the software against the requirements, running on simulated hardware. Similar tests are run against simulators with progressively more hardware-in-the-loop for more confidence.
- rubicon33 8y agoAre there any helpful frameworks or tools for unit testing firmware projects written in C? I'd really love to know what you guys are doing!
- jnbiche 8y agoI'd also love to hear what tools the ESA is using for unit testing, test coverage, etc. in C. But for small C projects at least, I've found the CuTest framework to work well: http://cutest.sourceforge.net/ http://cutest.sourceforge.net/
- 8_hours_ago 8y agoI am also interested in what ESA is using... I have used VectorCAST to generate MC/DC coverage reports for C programs. The interface is a pain to deal with and it crashed regularly, but it did the job.
- calummurray 8y agoHate to disappoint you, but we also use VectorCAST for unit test code coverage.
- komali2 8y agoSee that sounds shitty to you man but I just had an issue where I couldn't upgrade to Webpack 4 because some critical modules were out of date, but I have to upgrade to webpack 4 because other modules are claiming they'll be dependent on it soon (or I need to use deprecated modules). When stuff like this happens I'm like... why did I choose web dev...
- marsRoverDev 8y agoFor reference, I used to be in web/mobile dev before working with OP. You can always transfer over, as to be honest a lot of the skills are transferable. That said, space code has its own versions of webpack dependency hell...
- zerr 8y agoCurious why you are not using Ada?
- marsRoverDev 8y agoWe use ada for older projects, I think the move to C was precipitated by the fact that it's hard to hire for ADA and there is not that much external support. C + MISRA + extensive testing plugs the gaps.