Don't Write Your Own Libraries for Advanced Driver Assistance Systems Applications

Created: April 21, 2017
Updated: September 25, 2020

Have you ever tried renovating your house on your own? Replacing floors and windows, painting walls and cabinets. You know, all the things the experts should be doing. In my opinion, the only thing worse than doing your own renovations is writing your own libraries for advanced driver assistance systems (ADAS) applications.

Our team once had to write our own libraries. It took up an enormous amount of time on the front end. Later, when we had problems, we had to take more time to fix them ourselves. A third party solution, optimized for a specific target hardware architecture, will save your team time, remove the burden of support, and ensure top performance.

Speedy Development

The clock is always ticking, and I don’t just mean the one on your microcontroller. You need to hit all your deadlines or even beat them, if possible. Using a pre-made standard will save your team the one thing you can’t get more of, time.

It’s clear that standard libraries will primarily save you time in development. You want to work on your target programs, not the libraries they will use. Using ready made libraries will let you get right to work on your primary task.

Standard libraries will also save you time when it comes to porting your applications. With self-made libraries, you’ll have to spend hours porting the libraries along with the program. Building your programs on standard libraries will allow you to quickly compile them for different targets.

group throwing girl in air
Use a developer that will be there when you need help

Simple Support

I’m not a structural engineer, so I shouldn’t have tried to change the support beams in my living room. Lesson learned I suppose. When you make your own libraries you take on the burden of development and the burden of support. Using a developed by someone else shifts the burden of support to them.

Murphy’s Law rules in software programming as well as nature. You are guaranteed to have problems with your libraries throughout the development process. If you’ve made your own libraries, you will have to stop everything and fix the problems yourself. Wasted time, disrupted momentum, and frustration all round. If you’ve purchased libraries, it will be the developer’s job to fix them.

Some people say the only thing constant in this world is change. Cars started as fully mechanical systems, and now you’re working on vehicles with sensor arrays and microprocessors. Automotive technology changes quickly, and those who can’t adapt will be left behind. If you develop your own libraries, you’ll have to accommodate those changes yourself. Save yourself the headache of adapting libraries for the ever changing landscape of the auto industry.

Now, it is important to choose the right developer. When something is broken, you want it to be fixed as quickly as possible. Pick a developer that has the capacity to properly support your product. If you choose wisely they should be able to fix your problem much more quickly than you ever could. Otherwise you might end up spending more time waiting than if you had done it yourself.

It’s easier to reach the clouds on the shoulders of giants

Expert Optimization

Standard libraries are heavily tested and optimized, and they have tons of documentation to boot. Using ready made libraries will ensure that they enable your programs, rather than limit them.

You’re not a developer, nor do you want to be. To be useful, self-written libraries will need to be optimized with respect to their intended target architecture. Commercial libraries are tried, tested, and optimized by a dedicated developer. This means you won’t have to optimize and test performance critical operations yourself. It is also important to initially ensure that your is suitable for embedded systems and/or certified for safety-critical applications. This will allow you to spend your time optimizing your programs, not your libraries.

In ADAS applications, porting the performance critical computations to different target architectures can result in high computational overhead. Using libraries that support a standard interface for the linear algebraic operations in ADAS computations can sometimes increase computation speed by an order of magnitude.

One thing all programmers like is documentation. A huge perk of standard libraries is that they’re heavily documented. Need some advice on how to use a function more efficiently? Simply look it up. Learn from other people’s successes and failures by using a well documented standard .

At the end of the day choosing the right man for the job can make the difference between success and failure. I apparently was not the right man to paint all the walls in my house (sorry honey). The developer you choose will determine how helpful standard libraries can be. A good developer can save you time, support your project, and speed up your programs. A bad developer will leave you wishing you had written your own libraries. With over 20 years in the industry, TASKING® can help you. Their optimized libraries, like LAPACK, will enable you to write your programs on time, and run them efficiently.

Have more questions about why  libraries are right for you? Talk to an expert at .

most recent articles

Back to Home