LINUX.ORG.RU
ФорумTalks

Взбесившиеся изделия Toyota Motor Corporation

 , , , ,


1

1

Недавно произошел очередной случай самопроизвольного ускорения автомобиля Lexus (бренд TMC): http://www.autoreview.ru/news/7396/133038/ До этого был громкий скандал и серия процессов, где Toyota проиграла: http://www.edn.com/design/automotive/4423428/Toyota-s-killer-firmware--Bad-de... (русское изложение: http://spb-auto.livejournal.com/27534171.html).

... специалисты в области embedded-программирования по окончанию судебного процесса получили возможность открыть данные об экспертизе «прошивки» злополучного контроллера дроссельной заслонки. И данные оказались далёкими от утешительных. Итак, группа экспертов, информацию о которых можно легко отыскать на сайте «гуру embedded программирования» (EmbeddedGurus), после анализа firmware контроллера дроссельной заслонки пришла к выводу что (даю дословный перевод) «это позорный образец проектирования и разработки ПО». В выводах – общее низкое качество кода, наличие ошибок в нём, которые могут вызывать случайный разгон автомобиля, общая система контроля и обеспечения безопасности исполнения кода организована по принципу «карточного домика», и, наконец, вердикт, к которому прислушались судьи – ошибки в firmware стали причиной аварии с тяжёлыми последствиями.

Как всё это знакомо... Собственно, вопрос: как же жить дальше с этой кривой проприетарщиной, которой с каждым годом всё больше и которая всё отвязней? Раньше были только кривые блоки АБС, мешавшие тормозить, а теперь машины уже умеют сами разгоняться и сами рулить. А за все последствия отвечает в первую очередь водитель, во вторую очередь - собственник, а уже потом, может быть, если очень постараться и много лет доказывать, - производитель этого «умного» хлама.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Собственно, вопрос: как же жить дальше с этой кривой проприетарщиной

Никак. Нет никакого доверия. Начиная с проектирования автомобиля и заканчивая сборкой — сплошная проприетарщина.

TGZ ★★★★
()
Ответ на: комментарий от TGZ

Не согласен. Проверить отсутствие утечек в тормозной системе я могу легко. Проверить отсутствие утечек памяти в прошивке контроллера ЭСУД я без исходников не смогу при всем желании. Уже тут очевидна принципиальная разница. Далее - железную проприетарщину я могу разобрать по винтикам и изучить досконально. Софтовую проприетарщину я, скорее всего, не смогу даже достать из памяти ктнтроллера - защита этой проариетарщины предусмотрена произаодителями чипов.

asaw ★★★★★
() автор топика
Ответ на: комментарий от asaw

Под ручником подразумевал МКПП. Двусмысленно получилось. Пардон:) А тем самым ручником да, тормозить бесполезно.

der_looser ★★
()
Ответ на: комментарий от hope13

это самое лучшее определение проприетарщины что я видел.

Проприетарщину можно писать адекватно. Проприетарно или нет — это вопрос того, кому еще показываются исходники. А эффективный менеджмент может вписаться где угодно, даже в опенсорсе.

shimon ★★★★★
()
Ответ на: комментарий от shimon

А эффективный менеджмент может вписаться где угодно, даже в опенсорсе.

это бич современного мира; согласен

Проприетарщину можно писать адекватно.

Но этого почему то никто не делает.

это вопрос того, кому еще показываются исходники.

А это уже вопрос бэкдоров в софте. А т.к. их сейчас везде немерено, то показывать исходники никому нельзя. И в итоге у нас сложилась знакомая ситуация.

hope13 ★★★
()
Ответ на: комментарий от dk-

вот что есть, то есть:) стоять в пробке с автоматом намного комфортнее

der_looser ★★
()
Ответ на: комментарий от asaw

что исходники должны быть открытыми. Потому что ПОТОМ доказать таким вот упертым, что ты не верблюд,

нехрен ничего доказывать. Тот «верблюд» после столкновения дал заднюю передачу..а потом снова переднюю :-). Это что, ошибка автопилота? Чем рулит та несчастная «дроссельная заслонка» в которой переклинило контроллер??

Никакие исходники тут вообще не при чём. Даже если списать первый удар на техническую неисправность, то всё остальное - 100% вина водителя Лексуса. И это поведение за рулём ставит под большое сомнение вообще тех.факторы аварии.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Ты что, ещё не понял, что таких случаев было уже тысячи, и все с тойотами?

asaw ★★★★★
() автор топика
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от asaw

тысячи глобальных переменных и километры спагетти-кода

Вы наверное удивитесь, но это нормальная практика для софта под микроконтроллеры. Просто потому, что сишка (не плюсы) и убогость аппаратуры.

Если бы код был открыт,

ок. открою кусок кода из реально работающей программы под микроконтроллеры, не моей:

response = 0;
RI = 0;
TH0 = FA;
while(i--){
 if(response){
   func = 0;
   func();
 }
 SYSTEMOUT[0x6000+i]=0;
}

Осилите хотя бы этот кусочек осмыслить, или будете продолжать малые водоёмы газофицировать?

next_time ★★★★★
()

Ну прям как наши тазики.

Ygor ★★★★★
()
Ответ на: комментарий от next_time

Вы наверное удивитесь, но это нормальная практика для софта под микроконтроллеры. Просто потому, что сишка (не плюсы) и убогость аппаратуры.

Не рассказывай сказки. Даже в ассемблерном коде, который я писал, ничего подобного не было.

ок. открою кусок кода из реально работающей программы под микроконтроллеры, не моей:
Осилите хотя бы этот кусочек осмыслить, или будете продолжать малые водоёмы газофицировать?

Зачем мне это овно осмысливать, когда и так видно, что это типичный говнокод? Тойотовский говнокод тоже работает, и даже работает правильно, 99,999% времени, только оставшийся процент всё равно слишком велик.

asaw ★★★★★
() автор топика
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от asaw

зачем мне это овно осмысливать, когда и так видно, что это типичный говнокод?

Я так и думал, что вы не осилите. Вот и попробуй людям открыть код, если они будут смотреть на него как бараны на новые ворота. Кстати, это отличный код. А вас даже близко бы не подпустили в автомобильную промышленность кодить — зафэйлите всё своим рукожопием, раз простейших вещей не знаете/ не понимаете.

Даже в ассемблерном коде, который я писал, ничего подобного не было.

В ассемблерном коде, родной, вообще все переменные глобальны. Так что 42.

next_time ★★★★★
()
Ответ на: комментарий от next_time

В ассемблерном коде, родной, вообще все переменные глобальны. Так что 42.

Ты про стек что-нибудь когда-нибудь слышал?

Кстати, это отличный код.

Это говнокод не по одной, а по нескольким причинам, которые тебе, видимо, неизвестны только из-за узкого кругозора, неопытности и присущей только школоте уверенности, что им не нужно ничего узнавать потому что они и так всё лучше всех знают.

asaw ★★★★★
() автор топика
Ответ на: комментарий от grim

Можно и так, но такой херни кроме как от Тоёт и их переделанных «Luxiry» собратьев ни от кого другого не поступало.

Не считая фольксвагенов, чья АБС тупо почти прекращает тормозить при повороте и БэМэВэ которая чуть не убила филиппинского (или малазийского? ХЗ, но в общем откуда-то оттуда) министра, в 40-градусную жару заперев его в салоне и заблокировав все двери, окна и отключив кондиционер? :-)

no-dashi ★★★★★
()
Ответ на: комментарий от asaw

Ты про стек что-нибудь когда-нибудь слышал?

Да.

Это говнокод не по одной, а по нескольким причинам, которые тебе, видимо, неизвестны только из-за узкого кругозора, неопытности и присущей только школоте уверенности, что им не нужно ничего узнавать потому что они и так всё лучше всех знают.

Вы так и будете продолжать газофицировать водоёмы, или наконец, ответите, что именно вам не нравится в этом коде?

Впрочем, я знаю, что вы так и будете продолжать свой трёп о высоких материях без какой-либо конкретики: потому, что знаете, что сольётесь, попытавшись оспорить хорошее качество это кода (повторюсь, речь идёт о С и МК).

next_time ★★★★★
()
Ответ на: комментарий от no-dashi

Не считая фольксвагенов, чья АБС тупо почти прекращает тормозить при повороте

У нас фольксвагены это экзотика :). А где об этом можно почитать?

БэМэВэ которая чуть не убила филиппинского (или малазийского? ХЗ, но в общем откуда-то оттуда) министра, в 40-градусную жару заперев его в салоне и заблокировав все двери, окна и отключив кондиционер? :-)

Вроде единичный случай.
Опять таки, это был спецавтомобиль да ещё и с виндовсом.
Вероятно за все это отвечала МС.

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 1)
Ответ на: комментарий от next_time

Да.

Тогда не пиши ерунды.

или наконец, ответите, что именно вам не нравится в этом коде?

1. Код, хоть согласно ГОСТ 34, хоть согласно другим стандартам, хоть согласно здравому смыслу - часть РАБОЧЕЙ ДОКУМЕНТАЦИИ системы и поэтому не должен быть ребусом; 1.1 В коде используются неявные константы; 1.2 В коде отсутствуют комментарии; 2. Этот код неполный и правильность его работы зависит от того, как определены переменные. Но, скорее всего, они определены неправильно. 3. Правильность доступа к памяти, даже если переменные определены правильно, сильно зависит от модели МК, а значит на другом МК код придется писать заново - нахрена его тогда вообще было писать на С?

...

100. Давай весь код - расскажу.

asaw ★★★★★
() автор топика
Последнее исправление: asaw (всего исправлений: 1)
Ответ на: комментарий от asaw

В коде используются неявные константы

Лол, что? В представленном фрагменте констант нет вообще.

В коде отсутствуют комментарии

Комментарии не обязаны присутствовать к каждой _тривиальной_ строчке кода. А здесь всё просто и очевидно даже второкласснику.

Этот код неполный и правильность его работы зависит от того, как определены переменные

Да, потому, что это рандомно взятый кусок кода.

Но, скорее всего, они определены неправильно

О да...

Правильность доступа к памяти, даже если переменные определены правильно, сильно зависит от модели МК

а вот это прямая ложь: этот код целиком, без каких либо изменений, даже без перекомпиляции, переносился на разные МК без проблем. Глубина аналитики детектед.

Давай весь код - расскажу.

Обойдётесь.

next_time ★★★★★
()
Ответ на: комментарий от next_time

даже без перекомпиляции, переносился на разные МК без проблем

Ты не только хамоват, ты ещё и не понимаешь о чем тебе пишут.

Лол, что? В представленном фрагменте констант нет вообще.

0x6000

Это - константа. Свободен.

asaw ★★★★★
() автор топика
Ответ на: комментарий от next_time

Просвети меня, сирого:

- согласно прочитанному, в цикле переменную response менять некому. Каким образом ее значение может стать ненулевым?

- func = 0; func(); /* ШТОААА? */

- что такое 0x6000 и почему не 0xB800?

shimon ★★★★★
()

На Ту-134 сделано что ни на есть самым правильным способом. Там автопилот можно отключить от управления при помощи пиропатрона. В автомобилях такого увы не бывает, но можно как минимум покупать машины с обычной механикой, тогда всегда можно будет выжать сцепление и злостно похихикать над беспомощным электронным мозгом.

qrck ★★
()
Ответ на: комментарий от grim

У нас фольксвагены это экзотика :). А где об этом можно почитать?

Ну, например тут - http://www.autoreview.ru/_archive/section/detail.php?ELEMENT_ID=123939&SE...

Вроде единичный случай.

«Ага, щас!». У BMW вообще глючная электрика и электроника. Из новых семерки и трешки на работе обе побывали в гарантийном ремонте по паре месяцев из-за одного и того же - отказ какой-то электронной херни, без которой машина превращается в тыкву. В сочетании с тем, что например на той же 7 серии руль и колеса вообще не имеют механической связи, становится слегка страшноватенько.

no-dashi ★★★★★
()
Ответ на: комментарий от shimon

- согласно прочитанному, в цикле переменную response менять некому. Каким образом ее значение может стать ненулевым?

В прерывании. По тех заданию, во время инициализации приход прерывания в данный момент времени означает ошибку (мы пробуем записывать во внешние регистры) и в этом случае требуется перезагрузить МК.

- func = 0; func(); /* ШТОААА? */

перезагрузка микроконтроллера. кроссплатформенно.

- что такое 0x6000 и почему не 0xB800?

Потому, что это обращение во вне. Можно было бы, конечно, 0x6000 заменить на какую-нибудь именованную константу, но это, попросту не имеет смысла: практика показала, что знать по какому именно адресу записывается в регистр нужно знать куда чаще, чем то, за что этот регистр отвечает. При этом, изменение адресов будет автоматически означать перекройку платы, а к такому никакая программа готова быть не может, да и не осилит никто плату перекроить, в данном случае.

next_time ★★★★★
()
Ответ на: комментарий от asaw

Это - константа.

Взбесившиеся изделия Toyota Motor Corporation (комментарий)

Свободен.

Из мест лишения свободы писать на ЛОР не удобно, да.

ты ещё и не понимаешь о чем тебе пишут.

я прекрасно понимаю. это вы не понимаете жизненных реалий:

значит на другом МК код придется писать заново -

если микроконтроллер той же архитектуры, то переделка кода в худшем даже случае много времени не займёт, если МК другой архитектуры, то это потребует перекройку платы

нахрена его тогда вообще было писать на С?

ровно затем, почему никто не пишет на ассемблере i386 на десктопах

next_time ★★★★★
()
Ответ на: комментарий от no-dashi

Из новых семерки и трешки на работе обе побывали в гарантийном ремонте по паре месяцев из-за одного и того же - отказ какой-то электронной херни, без которой машина превращается в тыкву.

Странно.
Мне кажется вам просто не повезло.
BMW это не Порш, но все-же не Киа/Хуиндаи. Они вроде где-то в серединке болтаются.

BBTW, в америках есть J.D.Power они собирают информпцию от дилеров и публикуют статистику обращений по гаратии.

В сочетании с тем, что например на той же 7 серии руль и колеса вообще не имеют механической связи, становится слегка страшноватенько.

Насколько я знаю последние лет 5 это во всех авто.
В БМВ добралось чуть позже по моему.

Зато приятно - нажал кнопку, машика присела, подвеска и руль стали жёстче и можно погонять на хорошей дороге или на трэке.
Переключил обратно и готов к езде на работу :)

С механикой так не получится.

grim ★★☆☆
()
Ответ на: комментарий от next_time

Ну вот о том, которое именно прерывание выставит переменную и зачем, можно, что ли, и камент написать.

shimon ★★★★★
()
Ответ на: комментарий от next_time

ровно затем, почему никто не пишет на ассемблере i386 на десктопах

Возьми онтопик и посмотри сколько там ассемблерного кода, прежде чем в очередной раз постить очередную лажу.

asaw ★★★★★
() автор топика
Ответ на: комментарий от shimon

Вот, кстати, тоже один из признаков говнокода. Он, конечно, не колется относительно типа response, но вполне возможно, что response = 0; будет неатомарной операцией. И будет работать как в тойотах: 99,999% времени - как надо, а 0,001% - прерывание будет попадать в середину цепочки команд сброса response в 0. Впрочем, если бы в тойоте писали бы ещё и код ОС, она, видимо, газовала бы ещё на два порядка чаще.

asaw ★★★★★
() автор топика
Последнее исправление: asaw (всего исправлений: 2)
Ответ на: комментарий от next_time

перезагрузка микроконтроллера. кроссплатформенно.

Это не так. И ты об этом снова не знаешь.

asaw ★★★★★
() автор топика
Ответ на: комментарий от next_time

Потому, что это обращение во вне.

Прозвучало как «потому, что гладиолус».

При этом, изменение адресов будет автоматически означать перекройку платы

Тогда и кроссплатформенность нахрен не всралась, прости мой акцент. А ежели придёт перекроенная плата, что проще поменять: один дефайн или стопицот литералов, из которых сто совсем о другом?

shimon ★★★★★
()
Ответ на: комментарий от shimon

В любом случае сделать макрос сделает код в пару раз кроссплатформеннее.

+1. Это именно та область программирования, где макросы есть безусловное добро.

asaw ★★★★★
() автор топика
Ответ на: комментарий от asaw

Ну, мне кажется, прерывание возникает оттого, что в SYSTEMOUT пишут. То есть, до цикла ему не с чего возникать. В любом случае — камент нужен. Но тогда код вообще похож на танец с бубном вокруг какого-то косяка: зануляем системную область, при этом зануление некоторых адресов контроллеру может не понравиться, каких именно — мы не знаем, но на всякий пожарный его грохаем.

shimon ★★★★★
()
Ответ на: комментарий от shimon

Да такой цикл сам по себе уже жуткий костыль. Значение i, видимо, подбирается методом тыка, чтобы соответствовать какому-то времени, которое зависит уже не просто от архитектуры миркроконтроллера, а от конкретной модели и от платы.

Я поэтому и написал про документацию. Но школьники же они такие школьники... Подозреваю, он в каком-нибудь отечественном ГУПе работает - программирует ракеты, которые потом феерично падают, или что-то вроде того.

asaw ★★★★★
() автор топика
Ответ на: комментарий от asaw

А еще он думает, что все капец как очевидно. Даже ему самому. Даже если его бросят работать с другими совершенно архитектурами, а через лет пяток попросят что-то в этом говнокоде подправить.

Нету большей срамоты, чем обратная инженерия собственного кода.

shimon ★★★★★
()
Ответ на: комментарий от cvs-255

Таз до сих пор не может качество, наслаждайся:

Есть такое. Уплотнители дверей К2 местами протерли краску (кузов по ходу гуляет) и пошла ржа ,появились точки по кромке лобового. Пробег 5 тыщ, через 20 видимо сгниет. Одно радует, служебная.

Плюс стали использовать говенный магнитогорский металл и теперь из-за кривых дверок на К2 протекают уплотнители. А может то руки кривЕЕ стали.Раньше ничего не протекало.

Просто французы программу «улучшения качества» запустили на ВАЗе, сильно сократив количество оцинкованных деталей кузова у Калины.

машина приобретена 1 декабря 2012г а вылазить начало 02 Июня 2013,причём здесь человек?толщиномер тоже не соврал,зазоры и тд всё было прекрасно.

Блин... начитался здесь и теперь меня осенило - откуда же всё это время (с 01.2012г) появляется грязь на решётке динамика правой двери. А вона ЧЁ... Тоже сфоткал вчера после поездки под дождём... А потом тупо пальцем зазор проверил (видно на фото 2 и 3) и офигел... Сам виноват (имхо) не доглядел при выборе авто. А сейчас... В системе обратной связи ОАО "АВТОВАЗ" Ваш вопрос зарегистрирован под номером 1909243 Будем надеяться на лучшее.

Итак пока решил разместить темку в этой ветке благо если не ошибаюсь обогрев лобового пока только на 2 калинах появился( ну если ошибаюсь поправте). Итак вопрос при вкл на холостом ходу кнопки у меня на машине резко просаживается напряжение до 12.3-12.4 и генератор начинает выть и свистеть, ну соответственно если вкл музыка и печка, то вообще труба. При езде 13.2-13.5 но генератор или ремень посвистывает все равно, стоит остановиться опять резкая просадка. Вопрос это разве нормально? Что делать? Куда копать как говориться?

http://www.lkforum.ru/showthread.php?t=37085&page=20

http://www.lkforum.ru/showthread.php?t=59247&page=13

http://www.lkforum.ru/showthread.php?t=59323

А тазиковское начальство уже отчиталось что качество как у иномарок, читай.

Freiheits-Sender ★★
()
Ответ на: комментарий от grim

BMW это не Порш, но все-же не Киа/Хуиндаи.

У меня для тебя внезапные новости, качество оных марок внезапно довольно высокое, особенно если их авто не разрабатывались специально для этой страны.

Freiheits-Sender ★★
()
Ответ на: комментарий от no-dashi

Не считая фольксвагенов, чья АБС тупо почти прекращает тормозить при повороте и БэМэВэ которая чуть не убила филиппинского (или малазийского? ХЗ, но в общем откуда-то оттуда) министра, в 40-градусную жару заперев его в салоне и заблокировав все двери, окна и отключив кондиционер? :-)

Там фрицы нахимичили с прошивкой специально для России адаптировали до адаптировались. На авторевью есть целая статья с разбором полетов. И даже не одно...

http://www.autoreview.ru/_archive/section/detail.php?ELEMENT_ID=128368&SE...

http://www.autoreview.ru/_archive/section/detail.php?ELEMENT_ID=130174&SE...

http://www.autoreview.ru/_archive/section/detail.php?ELEMENT_ID=123939&SE...

Freiheits-Sender ★★
()
Ответ на: комментарий от grim

Мне кажется вам просто не повезло.

Ну да, не слишком представительная выборка, но как бы уже звоночек. Когда на разных моделях практически одна и та же неисправность - это уже опасный симптом. А уж эпопея как владелец трешки её продавал - вообще п...ц. Только покупатель придет - то сигналка не работает, то фары не включаются, то окна откроются и закрываться не хотят. Он это сейчас со смехом рассказывает, а тогда ему не до смеха было.

no-dashi ★★★★★
()
Ответ на: комментарий от Freiheits-Sender

У меня для тебя внезапные новости, качество оных марок внезапно довольно высокое, особенно если их авто не разрабатывались специально для этой страны.

Статистика, собираемая из официальных каналов а не от «экспертов» говорит об обратном.

И если Хуиндаи улучшила качество и уже подобралась к середине, то Киа все так-же внизу по надёжности.

Это по Северной Америке.

grim ★★☆☆
()
Ответ на: комментарий от Freiheits-Sender

И у тех и других, куча узлов и деталей производства контор ZF, SACHS, BOSCH и т.д.

Тем не менее, Reliability Study говорит что Порш - это первое место а БМВ четь выше середины.

grim ★★☆☆
()
Ответ на: комментарий от shimon

Даже если его бросят работать с другими совершенно архитектурами, а через лет пяток попросят что-то в этом говнокоде подправить.

Так и было, потому, что это не мой код. Это чужой код и он был для меня очевиден, когда я первый раз его увидел.

Нету большей срамоты, чем обратная инженерия собственного кода.

Согласен.

next_time ★★★★★
()
Ответ на: комментарий от grim

Ну ну а не чего что Хенде и КИА это одно и тоже отличающие столья экстерьером и интерьером!? Ты лучше посмотри статистику по фольцвагену по ремонтам DSG, по замене турбин, по замене прогоревших клапанов и поршней. :)))

Freiheits-Sender ★★
()
Ответ на: комментарий от asaw

а от конкретной модели и от платы.

Потому, что программа в принципе заточена под определенную плату и под определенное оборудование, с другим оборудованием она в принципе не должна работать. Ибо это массовое производство, а не всякие игрушки типа Расбери Пи и прочего хлама.

next_time ★★★★★
()
Ответ на: комментарий от asaw

Подозреваю, он в каком-нибудь отечественном ГУПе работает

Нет, даже близко не рядом.

next_time ★★★★★
()
Ответ на: комментарий от shimon

Тогда и кроссплатформенность нахрен не всралась, прости мой акцент

Именно, кроссплатформенность даже близко рядом с постановкой задачи не стояла. Тем не менее, она есть: программа отлично исполняется не только на целевом МК, но и на МК, которые в реальное производство у нас никогда не пойдут.

А ежели придёт перекроенная плата

Плату уже 10 лет значительно почти не трогали. Потому, что когда речь идёт о массовом (ок, крупносерийном) производстве, что-то серьёзно менять выходить очень накладно. Поэтому, когда её наконец-таки обновят, там будет столько изменений, что мама дорогая.

next_time ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.