Je to podle me nejaky nesmysl, ktery treba puvodne - nez nekdo psal ten clanek - mohl mit nejaky (jiny) smysl.
Ty postizene jednotky jsou bud' PPC nebo Tricore, u PPC je 2M flash, u Tricore typicky 2-4M.
Mohl bych projit co z toho je kod a co data, co jsou nepouzita mista, ale prijde mi to zbytecne.Dneska tak 1/3 jsou v ECU data, a spousta mista je nevyuzita. I kdyby to bylo 4M kodu, tak to je max. 2 097 152 instrukci, ktere by se tam mohly vejit (realne ale mnohem mene uz jen kvuli tomu, ze spousta instrukci je 4byte.
V původním textu je na jediném místě (v úvodu) toto: "A premium-class automobile, for example, can contain more than 70 electronic control units and 100 million lines of code [4]."
Vzhledem k tomu, že "premium-class automobile" bude mít např. zabudovanou satelitní navigaci nebo dnes klidně i autonomní řízení ap. tak je podle toho co je napsáno myšleno tohle vše. O tom, že by to obsahoval firmware řídící jednotky není ani slovo.
Co se týká toho fejkování emisí na testu, uvádějí tam kus kódu, na kterém to ukazují:
if (-20 /* deg */ < steeringWheelAngle &&
steeringWheelAngle < 20 /* deg */) {
lastCheckTime = 0;
cancelCondition = false;
} else {
if (lastCheckTime < 1000000 /* microsec */) {
lastCheckTime = lastCheckTime + dT;
cancelCondition = false;
} else
cancelCondition = true;
}
takže měli očividně k dispozici C kód, takže předpokládám, že když mluví o řádcích kódu nemyslí tím asm instrukce.
no sice presne neuvadi, co to znamena ta "control unit", ale asi bombasticky mysli celou elektroniku. Takze i v mem "hloupem" aute mam radio s MP3 prehravacem, zrovinka MP3 dekoder bude docela dlouhej, to nejsou algoritmy na 100 radku (ale zase, proc by tam pocitali toto?, lepsi by bylo mluvit jen o ECU a to fakt bude nejakej TriCore s par megama pro program).
Ja jsem tam cetl "[...]hide cheats among the 100 million lines of code that[...]".
Ten kod je pouze rekonstrukce tricore assembleru. Mluvil jsem o asm kodu, ale da se predpokladat, ze jedna radka v cecku bude alespon jedna radka v assembleru. Schovavat nejakou rozhodovaci logiku mimo powertrain CAN-BUS mi prijde prinejmensim velmi neprakticke, takze tech jednotek kam se to da strcit neni zase tak mnoho.
A ano, pokud do toho vezmeme treba i navigaci, tak se na takove cislo muzeme dostat, ale to uz je nesmyslne tvrzeni typu "Bezny pocitac je naprogramovan 1 miliardou radkou kodu".
Navic tech 70 ECU je dost diskutabilnich. Kdyz vezmeme BMW 7, tak zde je seznam jednotek v aute diagnostikovatelnych: http://www.obdtester.com/bimcom-eculist/bmw/7/2014_f01_f02_f03_f04 tak jich mame 47 (kolik takto vybavenych sedmicek tu ale jezdi???). Kdyz k tomu pridame ruzne senzory na LINu, tak se mozna k 70ti dostaneme, ale tyto senzory jsou casto s nejakym custom obvodem, kde se tezko da mluvit o tom, ze je to programovatelene.
Tak zrovna u auta s vestavěnou navigací si to přímo koleduje o detekci diskrepance mezi údaji z ABS, GPS (tzn. jsem v budově / v tunelu) a porovnáním s polohou volantu (volant rovně a vůbec se nehýbe = skoro určitě testovací stolice) vs. údajů z 3D akcelerometru za pár korun (auto není v pohybu) a poslání tohoto stavu v podobě jednoho příznaku do ECU, která tak bude mít jednodušší práci s vyhodnocením, zda test probíhá (profil zátěže motoru odpovídá testu & navigace říká že auto je bez GPS signálu a bez pohybu & ABS říká že auto je v pohybu a jede rovně).
To co pisete je logicke, ale neodpovida to realite.
Prvni problem je v supply chainu automobilky, muselo by o tom vedet hodne lidi napric ruznymi oddelenimi.
Druhy problem je, ze to co popisuje neodpovida emisnim testum a neni pro jejich detekci potreba (dohledejte si ty metodiky, jsou sumarizovane i na Wikipedii)
Treti problem je, ze byste chrlil hromadu dat na CAN-BUS, uz dneska je problem s tim co vsechno tam beha.
Nemuselo.
CAN funguje tak, že jeden procák vyšle zprávu a ostatní ji přijmou. Buďto ji neznají (= ignorují), nebo zpracují. Navíc jsou tam jenom definovány priority a zabezpečení přenosu.
Zprávy, co jsou potřeba, jsou buďto na CANu tak jako tak legitimních důvodů (převodový stupeň, data o rychlosti do tachometru, start motoru, plynový pedál...), nebo si je jednotka vygeneruje sama (např. pomocí časovače).
Udělat v jednotce úpravu režimu, když data má k dispozici na sběrnici, je jenom otázkou firmware jednoho procesoru. Nikdo nezjistí, jestli zprávu o natočení volantu ignoruje nebo ne... O téhle fintě může klidně vědět jenom pár lidí, co dělali řídící jednotku.
A při detekci testu se dá předpokládat, že auto v té době nepojede (akcelerace 0, akcelerometr je třeba v jednotce airbagu), nehne se volant o víc než třeba 10°, kdežto při výjezdu z garáže nebo parkoviště okamžitě řadím 1 - R - 1 nebo točím volantem...
Ja samozrejme vim, jak CAN-BUS funguje, a to i v praxi :-). Automobilky resi, ze maji CAN-BUS prehlceny zpravami. Rozpropagovat takhle nejakou zpravu z infotainment CANu na powertrain CAN neni uplne snadna zalezitost.
Metoda "zaprasime to do zpravy 2D0 do posledniho bitu 7. bajtu" u skupiny typu VAG nebo FCA z principu nebude fungovat. Musite to zadokumentovat, objednat minimalne u 3 firem (motor-bosch, gateway-vdo/temic, navi-podleauta), nekdo to musi cele schvalit (lide z ruznych oddeleni), atd.
To, že ide len o 100 mil. riadkov je tažko uveriteľné. Holt letecká doprava je najbezpečnejšia, vieme prečo..
This Car Runs on Code
It takes dozens of microprocessors running 100 million lines of code to get a premium car out of the driveway, and this software is only going to get more complex
By Robert N. Charette Posted 1 Feb 2009
The avionics system in the F-22 Raptor, the current U.S. Air Force frontline jet fighter, consists of about 1.7 million lines of software code. The F-35 Joint Strike Fighter, scheduled to become operational in 2010, will require about 5.7 million lines of code to operate its onboard systems. And Boeing’s new 787 Dreamliner, scheduled to be delivered to customers in 2010, requires about 6.5 million lines of software code to operate its avionics and onboard support systems.
Professor of informatics at Technical University, Munich, and a leading expert on software in cars. All that software executes on 70 to 100 microprocessor-based electronic control units (ECUs) networked throughout the body of your car.
Alfred Katzenbach, the director of information technology management at Daimler, has reportedly said that the radio and navigation system in the current S-class Mercedes-Benz requires over 20 million lines of code alone and that the car contains nearly as many ECUs as the new Airbus A380 (excluding the plane’s in-flight entertainment system). Software in cars is only going to grow in both amount and complexity. Late last year, the business research firm Frost & Sullivan estimated that cars will require 200 million to 300 million lines of software code in the near future.
http://spectrum.ieee.org/transportation/systems/this-car-runs-on-code
a keď k tomu pridáme
Industry Average: "about 15 - 50 errors per 1000 lines of delivered code."
(Steve) further says this is usually representative of code that has some level of structured programming behind it, but probably includes a mix of coding techniques.
Quoted from Code Complete, found here: http://mayerdan.com/ruby/2012/11/11/bugs-per-line-of-code-ratio/
Tak sa obávam. že do auta si už nikto nesadne
Tak v Indii asi nerobia SW do áut, ale mám pocit, ze semafory riadi len indický softvér...
95% engineers in India unfit for software development jobs, claims report
PTI | | Apr 20, 2017, 03.13PM IST
According to a study by employability assessment company Aspiring Minds, only 4.77% candidates can write the correct logic for a programme -- a minimum requirement for any programming job.
... software development skills - and over 2/3 could not even write code that compiles.
A jediný, mne známy, článok z bývalej ČSFR to ešte rozširuje
26.4.2017
Až 95 % programátorov v Indii je nespôsobilých na vývoj softvéru
Hoci indické univerzity vzdelávajú najväčšiu inžiniersku populáciu na svete, úroveň zručností ich absolventov nie je vysoká. V roku 2011 Národná asociácia spoločností zameraných na softvér a služby odhadla, že iba 25 % indických absolventov strojárstva je zamestnateľných. Po šiestich rokoch je situácia ešte vážnejšia.
Prieskumy hovoria, že nedostatok talentov v oblasti informačných technológií je v Indii akútny. Údajne až 95 % inžinierov v krajine nie je schopných pracovať na vývoji softvéru.
Podľa štúdie spoločnosti Aspiring Minds iba 4,77 % kandidátov dokáže napísať program so správnou logikou, čo je minimálna požiadavka na akúkoľvek programátorskú prácu.
Ukázalo sa, že dve tretiny študentov nevedeli napísať ani „kompilovateľný kód“. Štúdia poznamenáva, že iba 1,4 % kandidátov vie vytvoriť funkčne správny a efektívny kód.
https://www.pcrevue.sk/a/Az-95---programatorov-v-Indii-je-nesposobilych-na-vyvoj-softveru