Как стать автором
Обновить

Пишем один «exe», который работает на 3-х разных ОС без перекомпиляции

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров12K
Всего голосов 103: ↑101 и ↓2+121
Комментарии40

Комментарии 40

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

Код на гит не успел загрузить перед публикацией, выгружу в течении часа и добавлю линк в статью :)

В ближайший месяц-два у нас будет неделя автоконтента :) Я тут расколупал протокол для общения с ЭБУ в своей десятке, купил 2DIN магнитолу и хочу написать самопальный маршрутный компьютер. Уже есть небольшие наработки и о них будет отдельная статья (как общаться с ЭБУ в машинах без OBD II, а в частности с ЭБУ Bosch).

Также подписчик нашел на барахолке вот такой балдеж и да, он поддерживает запуск эльфов! О нем поговорить чуточку позже, скорее всего в формате второй части сегодняшней статьи - портирование эмулятора GameBoy и SMS

Ну и я купил вот такую необычную штучку в состоянии новой и опломбированной. Вскроем мы её с вами в рамках отдельной статьи.

Кто угадает, что за устройство там лежит? :)

Сдался тебе этот Бош (м1.5.4?), пихай Январь (5.1)! С ним гораздо приятнее играться, софта для редактирования прошивок куча (как и самих инжинерных), шьётся по К-линии, да и вообще Январь торт! Вроде бы даже где-то в интернетах валяются исходники январского софта.

а бош м1.5.4 является предком микасов и январей, так что всё там нормально.

так тогда вообще маскромы и уф-епромы в массе своей были. и проц - 8051 на стероидах.

Там 166

Да я тл866 заказал, распаяю кроватку и 27 winbond поставлю. Прошью двухрежимку, если захочу четыре режима - впаяю вторую кроватку на первую и сделаю коммутацию чипселекта на тумблер :)

Ну kwp 9141 в принципе несложный. сам баловался более 20 лет назад на волге.
С CAN тогда не разбирался, а сейчас некогда...
у тебя или 16 пин OBD или "chevrolet" 12 пин разъем диагностики, проще параллельно прикрутить штатный 16 пин на тот 12 пин уродца.

У меня гм т.к машина 1998 года. Там нет л линии, а к линия выведена отдельно и за магнитолой расположился елм)

так л-линия в боше тоже только флагом для некоторых режимов была, если её в 0 уронить.

Да, концепция схожа, но мой под ARM и под телефоны :)

Тот редкий случай когда статье поставил плюс, хотя почти всегда статьям с рекламой телеграм каналов ставлю минусы. Будто на старый добрый хабр вернулся. Когда народ пилил что-то мало кому кроме автора нужное, но интересное, а потом выкладывал в виде постов.

Спасибо) Стараюсь)

Богдан, ты как всегда, контент интересный и познавательный.

КФБ - форэва!

Спасибки за теплые слова))

Было интересно, спасибо!

... который работает на 3-х разных ОС...

Offtop: cтарая реклама MS VS вспомнилась: "кроссплатформенная IDE", которая (кроссплатформенность) заключалась в том, что IDE можно было запускать на разных версиях Windows...

Нуу, там вроде еще под Mac что-то было же? :))

Эм... У них были свои версии под Mac и даже вроде Linux. Так что шпилька мимо)

В отличии от бинлоадера

Прочитал быдлоадера

Почему автор пишет ABI вместо Abi, PIC вместо Pic, ARM вместо Arm и так далее, но при этом упорно пишет Elf вместо ELF?

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

Может потому что в официальных хидерах он называется именно так?)

Когда докопаться не к чему, остается лишь кидать желчь по поводу стиля написания аббревиатур, причем не выдуманных из головы, а взятых из кодстайла официальных хидеров? 🤡

Ууу... тяжёлый случай. Ссылку на «официальный хидер» можно?

А пока мы ждём ссылку на официальный хидер, я объясню один момент. К именам структур в коде претензий не было вообще. Раз там camel case, то в camel case писать аббревиатуры так, как будто это обыкновенные слова — благое дело. У самого так в коде везде.

Но с какого рожна это должно быть оправданием того, чтобы писать аббревиатуру противоестественным образом в обычной человеческой письменной речи (не в коде)? Я открываю elf.h и вижу, что в /* комментариях */ аббревиатура везде написана как ELF, а не как Elf. Может у меня какой-то не тот elf.h?

Где elf.h или официальная дока, в которой предписано писать Elf вместо ELF в рамках обычной человеческой речи (включая комменты в коде)?

Вы тогда TCP/IP тоже всегда по жизни пишите без слеша, ведь в именах идентификаторов в хидерах слеш встречаться ну никак не может.

Поставь минус и иди дальше, путник)

Определённая логика в вопросе была, но форма напрочь убила содержание

Я согласен) просто задан он по хамски(

Торт. Однозначно. После каждой такой статьи хочется добраться до моддинга и самому что-нибудь сотворить!)

Хоть я сам далек от этой тематики и не все понимаю, но все равно считаю статью хорошей и довольно интересной. Было интересно погрузиться в жизнь моддеров 2000-х 😁

Спасибо за теплые слова

Двухэкранный слайдер-раскладушка-телевизор с qwerty-gamepad клавой и закосом под винмобайл сейчас лежит на полке.

Че каво?!!!! Готов купить!!!!!!

Пишите в тг!!!!!!

Хотел когда-то похожую штуку написать под esp32-s3, там уже и нормальный elf-loader есть, и можно с костылями сделать возможность добавления функций из своего elf в линковщик. Или можно просто прокинуть функции RPC(возможно когда-то новую статью про него сделаю, ведь это уже совершенно другой проект :) ) в elf loader и получить что-то типо модульной ОС

Именно эту цель я преследовал в прошлой статье, а делал я портативную консоль))

На esp32-s3 можно VGA запустить)) Думаю с 8мб ОЗУ эмулятор NES а может и megadrive в 640x480 заведётся. Наверно хороший будет проект для первого раза, научусь считать ЦАП на резисторах, разберусь с графикой и вводом, возможно и usb host на s3 можно будет задействовать

Был готов к тому, что тремя разными ос окажутся виндовс 11, 10 и 7…

Вот бы эльфпак на банковскую панель

Она ведь на WinCE, на нее уже есть эльфятник

Зарегистрируйтесь на Хабре, чтобы оставить комментарий