Why You Should Use the Best Static Analysis Tool For Developing Autonomous Vehicle Software

Designers often focus on benchmarking their compiler, only to have their programs slowed down by safety considerations later. Using a compiler that has integrated safety features, especially static analysis tools, can get your program into ISO 26262 compliance quickly. Using a safety tool with great static analysis can save you time in debugging, keep you from cutting features, and allow you to get the most out of your compiler.

Have you ever been skiing or snowboarding? On every mountain, there are always people who think it’s a race to get to the bottom of a run. Flying downhill at full speed with no technique is a recipe for disaster. Ski patrol would be out of a job if it weren’t for these guys crashing and colliding with other skiers. Moral of the story is, when you rush you risk doing damage to yourself and those around you. You should always take your time and use proper technique to make it down the mountain safely and expediently. Autonomous vehicle compilers are surprisingly similar. Designers often focus on benchmarking their compiler, only to have their programs slowed down by safety considerations later. Using a compiler that has integrated safety features, especially static analysis tools, can get your program into ISO 26262 compliance quickly. Using a safety tool with great static analysis can save you time in debugging, keep you from cutting features, and allow you to get the most out of your compiler.

Don’t end up like this guy. Editorial credit: Mitch Gunn / Shutterstock.com

Save Time In Debugging

Since the move from single electronic control units (ECUs) to integrated ECUs, safety concerns have gotten a bit more complicated. Certifying every feature to the highest ASIL level is time-consuming. This makes using a memory protection unit (MPU) an appealing option for saving you time in development. That being said, misuse of the MPU can result in heavy financial and legal repercussions and can take a huge amount of time to fix manually. An inline static analysis tool can save you from spending tons of time slogging through MPU access violations.

As you know, most developers focus on speed first and safety later. This means that you write a ton of code and only find out afterward if it complies with safety requirements. Wait too long and you may find your code riddled with so many safety violations that it will take days to fix. To be proactive, a well assimilated static analysis tool will let you nip MPU violations in the bud before they snowball into an avalanche.

A good static analysis tool will also show root cause analysis for MPU errors. Root cause analysis will let you cut out the cause of the problem instead of chasing a thread of errors through your entire program. In addition to root cause analysis, the best static analysis tools will allow you to run comprehensive checks with no hardware. You won’t save any time if you have to wait for hardware to come in to set up test cases. Get a static analysis tool that can check your code before you have the hardware in-house.

Caution: MPU Errors Ahead

Reduce Feature Cuts

Taking too long during debugging can lead to your non-essential features being cut. Time is money, and both are limited. If the MPU errors in your features take too long to fix, they might end up on the chopping block. Using a good static analysis tool can save you time and money. A static analyzer with automatic common error checking takes 1% of the time that manual error checking takes. That translates to 15% cost savings on error checking.

Root cause analysis tools can also save you seconds and cents. While it’s tempting to wait until you’ve completed your program to check it for safety compliance; if you wait too long some bugs may be ingrained into your code. Root cause analysis can tell you where the problem started and keep you from getting lost in the woods chasing an error. A static analyzer with root cause analysis takes 95% less time to find error origins than a manual check. That could save you another 5% on error checking costs.

If only it were this easy

Get the Most From Your Tools

Some developers choose the fastest compiler for their application, and then are later forced to abandon some optimizations because their 3rd party safety tools can’t integrate those optimizations. There’s no point in buying super fast skis if you’re not skilled enough to use them. A great static analysis tool will be able to help you fix any contradictions between your safety software and your compiler.

Choosing the Right Developer

If you’re bombing down a run on a pair of $10 Walmart skis, you might not make it to the bottom in one piece. You need the right equipment and the right technique. A fully equipped static analysis tool will let you debug as you go and solve major errors quickly. Tools are often only as good as the company that made them. It’s important to know that your static analyzer developer is the real deal. That’s why I recommend your developer have at least an ASPICE L2 certification. That will guarantee the developer is ready to support you in case you have any problems. It just so happens that TASKING, by Altium, recently received its ASPICE level 2 certification.

As I said earlier, the best static analysis tool will let you debug as you go, give you root cause analysis, won’t keep you waiting for hardware, and will mesh well with your compiler. TASKING’s Safety Checker does all this and more.