Oft werden Absolventen von Informatikstudiengängen und Anwendungsprogrammierer in Unternehmen eingestellt, in denen sie Software für eingebettete Systeme entwickeln sollen - obwohl sie in Ausbildung oder Beruf bisher nur wenig Kontakt mit technischen Systemen hatten. Ihr Einstieg in das Thema Embedded-Software ist daher meist zeit- und kostenintensiv. Dieses Buch erleichtert das Einarbeiten, indem es systematisch und anschaulich die grundlegenden Begriffe, Konzepte und Problemstellungen vermittelt. Entlang eines Softwareentwicklungszyklus wird beschrieben, wie in jedem Prozessschritt die speziellen Anforderungen eines eingebetteten bzw. Echtzeitsystems berücksichtigt werden. Dies sind die Phasen: - Analyse - Architektur - Design - Implementierung - Testen Ausgehend von den Anforderungen an Embedded-Systeme werden Lösungsansätze für typische Probleme in den jeweiligen Entwicklungsphasen vorgestellt und die Ergebnisse diskutiert. Illustriert werden die Maßnahmen anhand von Beispielen aus der Praxis. Nach der Lektüre des Buchs ist ein Software-Entwickler in der Lage, viele, für ihn neue Herausforderungen der Programierung von Embedded- bzw. Echtzeitsystemen zu meistern.
This book presents the state of the art, challenges and future trends in automotive software engineering. The amount of automotive software has grown from just a few lines of code in the 1970s to millions of lines in today´s cars. And this trend seems destined to continue in the years to come, considering all the innovations in electric/hybrid, autonomous, and connected cars. Yet there are also concerns related to onboard software, such as security, robustness, and trust. This book covers all essential aspects of the field. After a general introduction to the topic, it addresses automotive software development, automotive software reuse, E/E architectures and safety, C-ITS and security, and future trends. The specific topics discussed include requirements engineering for embedded software systems, tools and methods used in the automotive industry, software product lines, architectural frameworks, various related ISO standards, functional safety and safety cases, cooperative intelligent transportation systems, autonomous vehicles, and security and privacy issues. The intended audience includes researchers from academia who want to learn what the fundamental challenges are and how they are being tackled in the industry, and practitioners looking for cutting-edge academic findings. Although the book is not written as lecture notes, it can also be used in advanced master´s-level courses on software and system engineering. The book also includes a number of case studies that can be used for student projects.
´´We´re all safer when the systems we depend upon are inspectable, auditable, and documented - and this definitely includes cars.´´ - Chris Evans, hacker and founder of Project Zero Modern cars are more computerized than ever. Infotainment and navigation systems, Wi-Fi, automatic software updates, and other innovations aim to make driving more convenient. But vehicle technologies haven´t kept pace with today´s more hostile security environment, leaving millions vulnerable to attack. The Car Hacker´s Handbook will give you a deeper understanding of the computer systems and embedded software in modern vehicles. It begins by examining vulnerabilities and providing detailed explanations of communications over the CAN bus and between devices and systems. Then, once you have an understanding of a vehicle´s communication network, you´ll learn how to intercept data and perform specific hacks to track vehicles, unlock doors, glitch engines, flood communication, and more. With a focus on low-cost, open source hacking tools such as Metasploit, Wireshark, Kayak, can-utils, and ChipWhisperer, The Car Hacker´s Handbook will show you how to: - Build an accurate threat model for your vehicle - Reverse engineer the CAN bus to fake engine signals - Exploit vulnerabilities in diagnostic and data-logging systems - Hack the ECU and other firmware and embedded systems - Feed exploits through infotainment and vehicle-to-vehicle communication systems - Override factory settings with performance-tuning techniques - Build physical and virtual test benches to try out exploits safely If you´re curious about automotive security and have the urge to hack a two-ton computer, make The Car Hacker´s Handbook your first stop.
Embedded Systems: ARM Programming and Optimization combines an exploration of the ARM architecture with an examination of the facilities offered by the Linux operating system to explain how various features of program design can influence processor performance. It demonstrates methods by which a programmer can optimize program code in a way that does not impact its behavior but improves its performance. Several applications, including image transformations, fractal generation, image convolution, and computer vision tasks, are used to describe and demonstrate these methods. From this, the reader will gain insight into computer architecture and application design, as well as gain practical knowledge in the area of embedded software design for modern embedded systems. Covers three ARM instruction set architectures, the ARMv6 and ARMv7-A, as well as three ARM cores, the ARM11 on the Raspberry Pi, Cortex-A9 on the Xilinx Zynq 7020, and Cortex-A15 on the NVIDIA Tegra K1 Describes how to fully leverage the facilities offered by the Linux operating system, including the Linux GCC compiler toolchain and debug tools, performance monitoring support, OpenMP multicore runtime environment, video frame buffer, and video capture capabilities Designed to accompany and work with most of the low cost Linux/ARM embedded development boards currently available