Софт заточенный под железо это тупик.
С точки зрения вычислительной техники - да, безусловно. С точки зрения даже не софта, а если быть чуть более точным - Firmware, что согласитесь - несколько отличается от более общего понятия "софт". А у нас в обсуждаемом случае железо, которому 100 лет в обед., и задача сделать его максимально отказоустойчивым.
Как бы вся история вычислительной техники об этом, IBM PC/XT свободно работал как на "правильной" CP/M так и на "ущербном" (но дешевом) PCDOS.
Ну вот я собственно и говорю, что одно дело PC, а ПО модулей, тем более real-time несколько иное. Имхо.
То что Вы предлагаете - реализуется на ПЛМ/ПЛИС.
Каюсь, у меня туго с русскоязычным обозначением элементной базы. Но по сути - большая часть вычислителей и работает как раз на ПЛИС, по крайней мере те фото, что можно найти в сети.
Что-то попадалось на древних как экскременты мамонта Motorola HC(08), микросхемах памяти от AMD, формфактор "конь", разве что окна под ультрафилотовое стирание не было. Были конечно какие-то фотки внутренностей блоков с ST32. Он уже на арм и 32 разрядный, но это уже что-то из совсем нового. Хотя в современном мире, оно уже тоже старое)
Мне где то попадались статейки про разработку софта для Арбуза , почитайте за "Scade".
А вот переписывать софт, при смене элементной базы...
Его или слегка переписывать, или как минимум перекомпилировать точно придётся. А это, скорее всего приведёт к тому, что это нужно будет опять как-то сертифицировать наверное. Не уверен.
Замена процессора стоит на порядки дешевле чем новое ПО
А зачем его менять? Старые, но отлично работающие MCU Motorola 555/556 серии до сих пор можно купить хоть на развес. Просто как пример. Хотя они морально старые.
Тем более "кривовата" замена ПО при смене элементной базы когда речь идет о весьма мелкосерийных производствах (а авиация с т.з. микроэлектроники вся крайне мелкосерийна)
Да, но оно построено не на уникальном железе. Да, повышенной живучести, но вполне обычном. Так зачем менять элементную базу? Первые арбузы 90-ых годов меняют сразу блоками. Был MCDU на ЭЛТ, пришел срок - туда ставят LCD. Там естественно элементная база уже новая. Софт тем более. Боинг вообще как был механический, так и остался. В Airbus 7 минут ADIRU алайнится, а у Boeing те же семь минут лампы греются)
Так что при уходе с рынка тех или иных "мелкосхем", стараются найти полностью логически - совместимый аналог, или заменить на новое с минимально возможными адаптациями.
Промышленные серии мелкосхем на рынке, особенно при наличии спроса живут как-то очень долго. Причём не обязательно, что они находятся в производстве. Их просто видимо штампуют столько, чтобы ещё и внукам хватило. Имхо.
Реальная замена ПО будет производиться только при изменении требований именно к логике функционирования. Либо если оно написано с жесточайшей завязкой на железо (что в современном мире вряд ли )
Ну, в любом случае поддержка Firmware и возможность UpDate там присутствует, и насколько можно судить по разным форумам и блогам переодически фирмварь там апдейтят. Что само по себе намекает на наличие BootLoader, а соответственно не то, чтобы совсем древний MCU. Поэтому, кмк, заязка на железо вряд-ли там прям вот жесточайшая, но практически уверен, чтт заточена под производителя MCU. Возможно конечно что и RISC-архитектура. К сожалению предметно ничего не могу сказать. К сожалению меня с отверткой пока к самолёту не подпускали.
В реализации новой версии нашего автономного вождения мы переходим с Intel на ARM.
Ну так блин) Вы ж не путайте банан с килькой. У вас ресурсов требуется, как для майнинга. Там и драйвера, и мультиядерность, и поточность и инструкций вагон. В авиастроении всё значительно проще. Пока.
Понятно, что новые фичи приходится дописывать, но в остальном практически весь наш код просто перекомпилируется другим тулчейном от того же поставщика (BlackBerry). Unit tests и software component tests для одного и того же кода гоняются на обеих платформах.
Так вы по сути перекомпилили ядро, а остальное само взлетит. QNX-based я полагаю?
Вы ошибаетесь в исходном постулате
Мы говорим не о массовке, а о практически штучных изделиях.
Ну будет стоить проц не 10 баксов, а 20. Что это изменит в ценнике самолета?
Блоки - да. Штучные. Но компоненты вполне массовые. Да, не для стиральных мвшин, но Automotive/Marine/Avionics. А их дофига. Да и экономить "на спичках" это давно уже в моде.
А вот полная замена ПО из за его жесткой завязки на железо - вещь крайне геморная и дорогая. Над этим не один месяц будут работать десятки программистов, и платить им надо не 10 баксов...
Понятно. Но если вам всё таки нужно перевести тот или иной блок на новое железо, то скорее всего это будет полноценный переход на что-то качественно новое, а поэтому программисты всё равно будут ваять. Никуда не денутся, и у них есть исходники, заново всё вряд-ли писать придётся. Они же не на асме пишут. Поэтому скомпилировать это по другой проц будет не очень большой задачей.
Поэтому в авиации много дешевле заложить избыточные возможности в железо и сваять под него максимально "железонезависимый" софт, чем потом перелопачивать все от и до.
Всё зависит, кмк, от поколения этого самого железа. А "максимальная железонезависимость" достигается HAL (Hardware Abstract Layer) . А это уже драйвера, Protected Mode, IRQ и прочие радости Windows®)
P. S. Хотя я вполне допускаю, что я сильно не прав, поскольку всё-таки не являюсь в прямом смысле разработчиком МК. Но в любом случае дискуссия с образованными людьми сама по себе познавательна.