Я смотрю на одну печатную плату и вижу некоторые устройства для поверхностного монтажа, некоторые резисторы, конденсаторы и светодиоды. Означает ли это, что, поскольку одна из этих плат является видеокартой, все платы с резисторами и конденсаторами, а также несколькими слоями и трассами являются видеокартами? Неа.
Вот еще один пример, эта веб-страница использует английский алфавит и английские слова. Так что же делает сайт Нью-Йорк Таймс, делает ли он этот сайт Нью-Йорк Таймс? Нет, они просто используют один и тот же алфавит и язык, но в остальном они совершенно разные.
C - это язык программирования общего назначения, который абстрагирует набор инструкций под ним. Может использоваться для чистого металла, может использоваться для создания различных и несовместимых друг с другом операционных систем, может использоваться для создания видеоигр и т. Д. Все из которых используют один и тот же базовый язык C, некоторые общие функции и конструкции C, а также Созданные ими вызовы функций, специфичные для целевого приложения. Для каждой из упомянутых вами платформ или других может быть набор функций, которые кто-то решил создать. Также как кучка людей, включая меня, дали вам тот же ответ, но написали его по-другому. Возьмите 100 программистов, изолируйте их друг от друга и дайте им задачу программирования для решения конкретной проблемы, не ограничивая полностью их свободу программирования, и вы получите от 1 до 100 различных, несовместимых друг с другом решений, вероятно, не 1, а несколько общих тем в зависимости от их обучения и опыта, а затем имена переменных и имен функций, которые в виде набора, вероятно, уникальны для каждого человека. Возьмите те же платы, о которых вы уже говорили, и вы обнаружите, что у меня, безусловно, есть свой собственный C-код, который несовместим (с функциями arduino) для запуска на них, как и со многими другими, а также несовместим с другими платформами. В этом и заключается прелесть встроенного программирования на «голое железо», вы никоим образом не ограничены, вам не нужно жить в рамках вызовов стандартных библиотек операционных систем или ограниченного набора правил и т. Д. Полная свобода. скорее всего, не 1, а несколько общих тем в зависимости от их подготовки и опыта, а затем имена переменных и имен функций, которые в виде набора, вероятно, уникальны для каждого человека. Возьмите те же платы, о которых вы уже говорили, и вы обнаружите, что у меня, безусловно, есть свой собственный C-код, который несовместим (с функциями arduino) для запуска на них, как и со многими другими, а также несовместим с другими платформами. В этом и заключается прелесть встроенного программирования на «голое железо», вы никоим образом не ограничены, вам не нужно жить в рамках вызовов стандартных библиотек операционных систем или ограниченного набора правил и т. Д. Полная свобода. скорее всего, не 1, а несколько общих тем в зависимости от их подготовки и опыта, а затем имена переменных и имен функций, которые в виде набора, вероятно, уникальны для каждого человека. Возьмите те же платы, о которых вы уже говорили, и вы обнаружите, что у меня, безусловно, есть свой собственный C-код, который несовместим (с функциями arduino) для запуска на них, как и со многими другими, а также несовместим с другими платформами. В этом и заключается прелесть встроенного программирования на «голое железо», вы никоим образом не ограничены, вам не нужно жить в рамках вызовов стандартных библиотек операционных систем или ограниченного набора правил и т. Д. Полная свобода. Возьмите те же платы, о которых вы уже говорили, и вы обнаружите, что у меня, безусловно, есть свой собственный C-код, который несовместим (с функциями arduino) для запуска на них, как и со многими другими, а также несовместим с другими платформами. В этом и заключается прелесть встроенного программирования на «голое железо», вы никоим образом не ограничены, вам не нужно жить в рамках вызовов стандартных библиотек операционных систем или ограниченного набора правил и т. Д. Полная свобода. Возьмите те же платы, о которых вы уже говорили, и вы обнаружите, что у меня, безусловно, есть свой собственный C-код, который несовместим (с функциями arduino) для запуска на них, как и со многими другими, а также несовместим с другими платформами. В этом и заключается прелесть встроенного программирования на «голое железо», вы никоим образом не ограничены, вам не нужно жить в рамках вызовов стандартных библиотек операционных систем или ограниченного набора правил и т. Д. Полная свобода.
Вы можете выбрать, как это делают многие, играть в чужой песочнице, а не создавать свою собственную, то есть использовать графический интерфейс arduino и их библиотеки C.
Вы можете взять один и тот же компьютер и запустить разные версии windows it, linux, bsd и список других операционных систем, которые на каком-то уровне используют C, но чьи вызовы функций несовместимы друг с другом. Одинаковое оборудование и несовместимый C, который распространяется на другое оборудование, на одном языке, может иметь совместимый или несовместимый код. Язык никоим образом не делает их совместимыми.
C используется на этих встроенных платформах, потому что это обычная практика, нет другого языка, который мог бы заменить C для этого. Первый шаг для нового процессора - это, конечно, сборка, затем почти всегда следующий C, затем, возможно, другие, если он достаточно мощный для запуска операционной системы (linux, bsd и т. Д.). C был изобретен и надеялся решить на тот момент проблему переноса кода между платформами, и, пока у вас есть операционная система, как в случае C-совместимого компилятора, создающего код, который запускается в операционной системе, будет выполнять стандартный файл C операции и printf и тому подобное. Но голый металл - это отдельная история: нет операционной системы, часто нет понятия ни о файловой системе, ни о дисплее, но по общепринятой практике, скорее всего, есть компилятор C, который в своих корнях превращает C в целевой язык ассемблера.