Graphics Reference
In-Depth Information
3.4.5 Software
All processes and components used to build ADAS must be safe, secure, and reliable,
including software development process, software itself, tools, and operating system.
Development of safety-related electronics products such as ADAS not only
requires SPICE (ISO/IEC 15504) compliant process but also needs to fulfill process
development requirements specified by ISO 26262 functional safety standard [ 50 ].
In order to facilitate code safety, reliability, and portability in the context of embed-
ded systems, Motor Industry Software Reliability Association (MISRA) formulated
a software development standard for C programming language. Published in March
2013, the latest version of MISRA standard (MISRA-C:2012) includes a number of
improvements that can reduce the cost and complexity of compliance, while aiding
consistent, safe use of C in critical systems. There is also a set of guidelines for
MISRA C++.
To meet low-latency processing time requirements and minimize any delays
caused by operating system, ADAS typically use real time operating systems (RTOS).
The RTOS in ADAS is not just responsible for memory partitioning, context switch-
ing, task scheduling, event handling, and lockingmechanisms, but also for controlling
the entire program flow, including safety mechanisms. For these reasons, the kernel
requirements, design, implementation, and tests must include functional safety as
one of key components along with minimal interrupt latency and minimal thread
switching latency.
Ideally, RTOS for ADAS should be developed for seamless integration into
AUTOSAR environment. Some of RTOS that are certified for highest ISO 26262
ASIL D tool qualification level D are: Green Hills Integrity, ElectroBit Tresos Auto-
Core OS, and Microsar OS SafeContext from Vector.
3.4.6 Development Flow
The ADAS algorithm development usually starts on a PC or workstation which offers
'unlimited' compute performance, memory, andmemory bandwidth. Algorithmopti-
mization is a critical component of the cost reduction effort because optimized code
can achieve real-time operation on less expensive embedded processors. In order
to map the algorithms to an embedded platform with very restricted resources an
embedded vision system typically requires optimization on three levels that are not
always orthogonal to each other [ 23 , 46 - 49 ]: algorithmic, software, and system level
optimization.
A typical vision application can run ten or more times faster when critical algo-
rithms are called froma highly optimized library than if they are implementedwithout
much regard for the internal processor architecture. Use of computer vision libraries
such as OpenCV could be suitable in most cases as a proof of concept but in the
Search WWH ::




Custom Search