My great grandmother grew up on a farm in the middle of nowhere in Kansas (that’s actually most of Kansas). She lived until she was 96 and saw a lot of things change in the world. When I was a child I was surprised to learn that she saw Americans go from riding horse-drawn carriages, to driving cars. Transportation has a major effect on people and societies, and cars changed lives around the world. We are now on the brink of another major transportation breakthrough, self-driving cars. While we are still years away from fully autonomous vehicles, advanced driver assistance systems (ADAS) are becoming more common in the automotive industry. The ADAS market is headed for major growth, and smart software developers can grow with them. Developers should be prepared to take advantage of this new era of transportation by making their code more efficient, and mastering the use of memory protection units (MPUs).
While some drivers currently enjoyed the advantages of ADAS enabled cars, most are unaware of ADAS. That is going to change in the near future, as the US and EU will begin requiring new cars to have automatic braking systems and collision warning systems by 2020. These mandates contribute to the rising ADAS market, which is expected to grow from $22.69 billion in 2015 to $78.19 billion by 2020.
The ADAS market is expected to continue growing as manufacturers push the boundaries of autonomous navigation. Currently, “self-driving” cars are only up to “level 3” of autonomy. Multiple manufacturers, though, are looking towards levels 4 and 5, which will require increasingly complex ADAS systems. Even some companies from unrelated industries are getting involved in the ADAS market. NVidia has announced that they plan to enter the market with Audi and release a level 4 car by 2018.
As more competitors enter the market, software developers will have to work harder to differentiate their programs. Two techniques to set yourself apart are making code that runs more efficiently and mastering the intricacies of MPUs.
One major roadblock on the path to full autonomy is processing power. The level 4 and 5 systems you’ll be controlling will need processors that are many times faster than those currently available for automotive applications. You’re a humble software developer, not a chip manufacturer, so what can you do? Making your programs more efficient will help reduce the load on processors.
Efficient coding will help with timing safety concerns as well. You don’t want to find out that your safety features fail critical requirements after you’ve already built your program. If you focus on efficiency from the beginning, you’re more likely to pass in a timely manner. Libraries can make a major difference in the detection-reaction chain of your program. Using a well-developed standard library can help you parse incoming sensor data much more quickly, making your code run that much more efficiently.
One non-software solution to the processing problem is the move from distributed electronic control units (ECUs) to integrated multi-core microprocessor control units (MCUs). However, the move to MCUs has given rise to another problem, dealing with MPUs.
ADAS will make parallel parking a lost art.
While the move to MCUs has helped solve the speed shortage it introduced safety concerns in device memory. Now, with all systems sharing the same processor and memory, cascading faults could cause serious problems. In order to avoid having to certify every system to ASIL level 5, the MPU was developed. The MPU is a difficult beast to master and will require special tools and knowledge to tame it. You should get started on mastering it, because it’s not going anywhere anytime soon.
The first thing you should do is to get a good static analyzer. A well made static analysis tool will save you a lot of time in debugging the code for your MPU. In addition, it will allow you to use your compiler to its full potential.
With processing requirements expected to increase as we move forward toward truly autonomous vehicles, the MPU is here to stay. As sensor complexity and variety increases, new cars will require centralized MCU’s capable of higher level programming. Those MCUs will certainly require an MPU, which will likely be more complex than the ones we’re using now. It’s a good idea to go ahead, buckle down, and delve into MPU programming so you’re ready for the future of self-driving cars.
As autonomous vehicles become increasingly more advanced, you’ll need cutting edge tools to help you ride the wave of the future. The programs governing ADAS systems will need to be fast, efficient, and accurate. This means that you will need the best compiler and libraries available. You’ll also need good safety tools to deal with MPUs quickly and correctly. TASKING has a wide range of tools available for software developers ready to move into the next era of transportation. These tools will help you write the fastest, most efficient code you can. TASKING’s tools will help you speed up your development along with your code with tools like standalone debuggers. Equip yourself with the best tools available, so you can build our future.
Have more questions about program efficiency and MPUs? Call an expert at TASKING.