XPOH писал(а): ↑Вт дек 24, 2019 21:12
микрософты сожрали борландов, фокспров, аксаптов, навижнов, скайпов и еще много кого толкового, превратив их в полное гоуно :)
Борланд и до микрософта был говном, вы уж простите. Глючней и тормозней софта было сложно придумать.
XPOH писал(а): ↑Вт дек 24, 2019 21:01
Есть и минусы асма, разумеется, палка о двух концах. И все равно понтированность всегда условная, ибо код, писаный под атмегу 2560 даже на сях, не встанет на тини хоть ты тресни и какие хош библиотеки и дрова подключай, нет памяти и меньше портов, таймеров и всякой периферии, а также остального и все равно код другой. Да даже если примерно схожие камни, если ты их возможности, а значит особенности полностью используешь, то код переписывать. Понятно, что не весь, но портированности 100% не бывает в реале, если камни по настоящему разные и ты их используешь полноценно а не кнопки считываешь и счетчик-дешифратор программный делаешь...
Вот для этого и созданы операционные системы и стандарты, ты же когда под винду или линукс программу пишешь, ты ведь не задумываешься, какой у тебя там процессор стоит и сколько у него таймеров, верно? Так и для микроконтроллеров, есть операционная система, где есть команда "создать таймер", и всё, и тебя не волнует как и что там аппаратно используется. Если ты очень крут, то можешь полезть в драйвера операционки, где написано как всё это к конкретному железу привязано, можешь даже свой порт операционки на конкретный кристалл создать, но скорее всего это уже сделано и тебе нужно просто нажать кнопочку "скомпилировать", чтобы всё заработало. Портируемость это ключевой принцип стандартов для операционных систем. И если POSIX, например, этому не вполне отвечает и от ОС к ОС работает часто по-разному, то вот ARINC 653 портируется на 100%. Если софт написан под, например, VxWorks для одного контроллера, то он 100% портируется на другой контроллер под управлением той же VxWorks. И никакие аппаратные возможности контроллера в данном случае не задействуется напрямую. Ибо, ещё раз - портируемость. В серьезной конторе тебе никто не позволит написать код типа "задействовать регистр Х процессора Y", потому что портабельность будет нарушена.