ABSTRACT

Minimization Heuristics . . . . . . . . . . . . . . . . . . . . . . . . 435 15.6 Integration of Time-Triggered Communication with Event-Triggered

Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 15.6.1 Software Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 15.6.2 Optimization Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 15.6.3 Schedulability Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

15.6.3.1 Static Single Message Allocation (SM) . . . . . . . . . 440 15.6.3.2 Static Multiple Message Allocation (MM) . . . . . . 442 15.6.3.3 Dynamic Message Allocation (DM) . . . . . . . . . . . . 443 15.6.3.4 Dynamic Packet Allocation (DP) . . . . . . . . . . . . . . . 444

15.6.4 Optimization Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 15.6.4.1 Greedy Heuristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 15.6.4.2 Simulated Annealing Strategy . . . . . . . . . . . . . . . . . . 450

15.6.5 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 15.7 Configuration and Code Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455

15.7.1 Communication Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 15.7.1.1 TTP — Personalized MEDLs . . . . . . . . . . . . . . . . . . . 456 15.7.1.2 Monitor MEDL for TTP . . . . . . . . . . . . . . . . . . . . . . . . 457 15.7.1.3 Buffer Configuration for FlexRay . . . . . . . . . . . . . . . 457

. . . . . . . . . 15.7.2.1 Configuration Format . . . . . . . . . . . . . . . . . . . . . . . . . . 460 15.7.2.2 FlexRay Interface Configuration . . . . . . . . . . . . . . . . 461 15.7.2.3 HS-COM Configuration . . . . . . . . . . . . . . . . . . . . . . . . 466

15.7.3 Code Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 15.7.3.1 Feature Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 468 15.7.3.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472

15.7.4 Configuration of Third-Party Software . . . . . . . . . . . . . . . . . . . . . 476 15.8 Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

15.8.1 Process Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 15.8.1.1 DO-178B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 15.8.1.2 IEC 61508 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 15.8.1.3 ISO 26262 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

15.8.2 Verification Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 15.8.2.1 Reuse of Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 15.8.2.2 Extending Checklists . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 15.8.2.3 Use of COTS Products . . . . . . . . . . . . . . . . . . . . . . . . . 483 15.8.2.4 Modular Certification . . . . . . . . . . . . . . . . . . . . . . . . . . 484 15.8.2.5 Requirements Management . . . . . . . . . . . . . . . . . . . . . 484 15.8.2.6 Test Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 15.8.2.7 Test Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

15.8.3 Verification Tooling Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 15.8.3.1 Output Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 15.8.3.2 Manual vs. Automated Verification . . . . . . . . . . . . . 487 15.8.3.3 Qualification of Verification Tools . . . . . . . . . . . . . . 488 15.8.3.4 TTPVerify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 15.8.3.5 TTPTD-COM-Verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490

15.1 Introduction Embedded systems are now everywhere: From medical devices to vehicles, from mobile phones to factory systems, almost all the devices we use today are controlled by embedded computers. Over 98% of microprocessors are used in embedded systems, and the number of embedded systems in use has become larger than the number of humans on the planet, and is projected to increase to 40 billion worldwide by 2020 [11, 84]. The embedded systems market size is about 100 times larger than the desktop market, with over 160 billion Euros worldwide and a growth rate of 9% [84].