← Back to NASA Technology Projects

A Semantics-Based Verification Toolset for UAS Embedded Software

Completed TRL 7 (started at 4, targeting 7)

Description

Develop bounded model checker for C programs that detects undefined behavior. Convert prototype developed in Phase I into a robust tool capable of analyzing Airliner, a drone autopilot developed by Windhover under contract from NASA. The bounded model checker and a C interpreter that detects undefined behavior in unit tests are both generated from the same formal semantics of C. Both the tools will be integrated into the build system of Airliner, and used to analyze Airliner and applications built from Airliner.

Benefits

Much satellite software is written in C. For example, NASA's "core Flight Software" is written in C. Software for unmanned aircraft systems tends to be written in C. For example, Airliner is a drone autopilot.

C is the most widely used programming language for embedded systems, and is used in the automotive industry, in telecommunications, in robotics. It is used for the infrastructure of the internet. It is the main language used for Linux. Our tools can be applied to any software written in C.

Details

Technology areaRobotic Systems > Robotics Integration > Robot Software
ProgramSmall Business Innovation Research/Small Business Tech Transfer (SBIR/STTR)
Lead organizationRuntime Verification Inc, Champaign, IL
Start date2021-08-03
End date2024-08-05

Project contacts

Listed on TechPort itself — the most direct way to ask about this specific project.

How to get involved

This is a mature technology (TRL 7) — the realistic path in is usually NASA's Technology Transfer Program: licensing an existing NASA patent, or a Space Act Agreement to use NASA facilities/expertise directly. NASA also runs a startup licensing program with no upfront fee for companies formed to commercialize a specific NASA technology.

None of these are guaranteed paths for this specific project — TechPort itself doesn't have an "apply" button. Reaching out to the contact(s) above with a specific question is usually the fastest way to find out what's actually open.