
pengantar
Foto itu saya ambil saat mengunjungi showroom BMW di Munich.
Artikel kecil tentang bagaimana kehidupan dan apa yang bernafas di dunia Otomotif yang besar dan kikuk. Dalam dunia pengembangan perangkat lunak, teknologi apa yang digunakan, tugas apa yang harus diselesaikan, semuanya sepenuhnya berdasarkan pengalaman pribadi. Ya, saya tidak akan mengungkapkan kebenarannya di sini, software otomotif biasanya menggunakan teknologi yang sudah ketinggalan zaman dan siklus pengembangan yang agak lama, meskipun tentu saja ada pengecualian - Tesla, misalnya. Meskipun ini hanya asumsi saya dari apa yang dapat saya baca tentang perusahaan ini di Internet. Teks tersebut berisi sisipan kecil dari biografi penulis.
Dan langsung menyimpang: awalnya saya menulis artikel ini sepenuhnya dalam bahasa Rusia, tetapi kemudian saya memutuskan untuk mengganti beberapa istilah dan singkatan dalam bahasa Inggris, karena lebih sering ditemukan dan disebutkan di Internet. Pada akhirnya ternyata yang terjadi.
Proyek otomotif pertama. Tahun 2014
… , IT, , automotive . 2014 ., , Human-Machine Interface (HMI) . , , Head-Unit . , , . 2- ++ GPU Windows, ++.
: HMI — Head-Unit — , Digital Instrument Cluster, . , , Digital Instrument Cluster . Head-Unit , , , Infotainment . , ( ) . Head-Unit , (Alpine, Clarion, etc.) .
, , ++ framework, HMI , . , , , .. UI, Microsoft MFC, , . . - , . , . , (, , ...) , , .
, , - , hardware .
, UI, , engine .
Jam, CMake, , Jam . - QNX Linux, - . Flash.
HMI framework :
1.1. Adobe Photoshop. Photoshop, , .
1.2. PowerPoint , . .
2.1. PSD , UI
PowerPoint.
2.2. controllers, , , .
:) , .
UI NTG5 Mercedes

: Automotive , (OEM) , . Tier 1, 2 .. . OEM, . software , automotive , , Tier , BMW. Tier .
, - Qt framework, . : Tier 1 , Harman, Daimler, Audi .. , , : - 2014 ., Qt -, , , - bug. , , . , .
- , , HTML, Java, Qt , / / HMI . Flash , Qt automotive . WebKit, .
Qt Automotive Suite:

, - . , , , UI, .
frontends JavaFX, QML Web, backend . , , , frontend. , ++, frontend .
, , web- HTML/CSS/JavaScript Qt/QML . R&D, -, , C++ . , web , JS .
, Automotive SPICE (ASPICE), SPICE (ISO 15504). . , . , .
: Automotive SPICE
? , , (SWE.1), (SWE.2). , . , , (SWE.3). , ( , , ). , Unit (SWE.4), (SWE.5) (SWE.6) .
Automotive SPICE V-:

, — (traceability). ? , , / . , , , .
, . , . , Excel DOORS, , . , , Doxygen.
, , , , , , . , , .
2016 , , . … , … , - , . (Head-Unit) , , (1 ). , , : Android Auto, CarPlay, SmartDeviceLink(SDL), Miracast. — Clarion, , , OEM.
hardware - Telechips, Board Support Package (BSP). BSP Yocto Project , CarPlay iAP2. , . Telechips reference board, Clarion , .
: Yocto Project BitBake , Linux. BitBake Python (recipes) . , Linux, . , , , , . Yocto Automotive Grade Linux, .
, user space , UI . BitBake, . , UI, , , , . , Eclipse, 3D, Functional Units.
, . , . , , GENIVI Alliance, , . 10 . , . — , , , , , , ( Clarion, ). , , , , :) , — , .
GENIVI :

, -, () IPC. IPC CommonAPI ( GENIVI). CommonAPI Franca IDL, ++ - , D-Bus. CommonAPI C++, D-Bus SOME/IP, . D-Bus , .
CommonAPI ++:

: Franca Interface Definition Language (IDL) — , , . .
HU. HU, , - , .
- UI , , . , , ;
- , (12 ) , ( );
- , ;
- CarPlay AndroidAuto UI;
- 20 , , .
:
- . , , , . , , , , , . , ;
- , RAM, . , , hardware;
- snapshot , , Linux . , snapshot , , , RAM. snapshot ;
- UI, Apple , ;
- non-volatile memory (NVM) Persistence. , - , . , Persistence RAM . , .
HU Nissan Datsun Cross:

AndroidAuto CarPlay , SmartDeviceLink (SDL) . . Ford SYNC AppLink, Open-Source . , , .
SmartDeviceLink:

, HU , SDL Core. SDL. , , , . , - Head-Unit. , .
Sygic, HU .
SDL Sygic:

Happy End' , automotive, . , . , , . , , . , Nissan, Datsun Cross . UI . - Perodua.
. automotive , OEM. Automotive SPICE, MISRA, ISO 26262.
: Safety ISO 26262 — , , (, , ) . , , . .
MISRA C/C++ — C/C++ . automotive safety ISO 26262. — ( ) , - code style. — switch default . , , . , Axivion, .
, MISRA , C++14, MISRA . C++14? ? ( ) Adaptive AUTOSAR. ++14. AUTOSAR (AUTomotive Open System ARchitecture).
, , Classic AUTOSAR. , , , . - 4. — , . ( ), . , , , , . In-Vehicle Infotainment (IVI) .
, , Adaptive AUTOSAR. POSIX PSE51 . , , Classic, C++ POSIX ( , ). , Classic , , . Classic, ARXML , , , XML , . , , XML AUTOSAR TPS SoftwareComponentTemplate 4- Classic, 800 .
:

, AUTOSAR, . , . — (sensors), (actuators) / (ECUs) , (CAN, LIN, FlexRay, Ethernet). OBD , ( ) - .
Ethernet atuomotive — 100BASE-T1, 10BASE-T.
, ARXML ( , ). , . , (communication matrix) , , (ECUs) , .
, ( ) .
HW AUTOSAR .
( , AUTOSAR ), ARXML . HW AUTOSAR , , .
.
, AUTOSAR ( VECTOR Informatik Elektrobit), . :
- , AUTOSAR . .
- . , - . , 4.3.0, 4.4.0
— , , . , , , .
— ARXML 10- , :)
. Adaptive AUTOSAR , , . , , . , .
, Adaptive AUTOSAR VECTOR ( Elektrobit). , . , Unified Diagnostic Services (UDS). , (TCP/IP, CAN). AUTOSAR : Persistence NVM, (COM) runtime ( CommonAPI). Execution Manager , . Diagnostic Manager (DM). , ( /). AUTOSAR DM , Diagnostic over IP (DoIP), UDS .
: Unified Diagnostic Services — , . :
- / ;
- ;
- , Diagnostic Trouble Codes (DTC);
- ;
- .
CAN Ethernet DoCAN DoIP.
Volkswagen MEB VW.OS, , Automotive, .
VW :

VW.OS — , Volkswagen, . - , , . . , / . - , BMW CarPlay :)
, , :) , location , . , - 7 , . , , OEM , , - . (, ). ? .
? Linux ARM , Classic AUTOSAR . ( ), tools automotive . Ruby, Rust, Electron/TypeScript. Classic AUTOSAR , Ruby, Java, . ARXML , , , ARXML ( demo ).
Hari ini adalah proyek saya saat ini ... Tahun 2020.