>> Смелое утверждение. А как ввод/вывод осуществляется? В языке же нет на сей счет ничего. Весь ввод-вывод, и даже типы данных фиксированной длины определены в libc. > Ввода-вывод как он сделан в libc в маленькой эмбеддовщине вообще не нужен. > Там ввод-вывод - это дёрганье пинов, или коммуникации по i2c, в > libc ничего не этого нет впомине. Типы фиксированной длины это горстка > тайпдефов, libc чтобы их определить не нужен от слова вообще. >> Считайте, что в контексте языка си любая библиотека, требования к функционалу которой определены в стандарте, и есть libc, как бы она не называлась. > Повторюсь, можно писать на C с библиотекой вообще никаким требованиям из стандарта > не отвечающей. А можно вообще без библиотеки.Без библиотеки нельзя -- в языке, слава богу, нет никаких операторов ввода-вывода. Так что в любом случае Вам придется либо готовую libc брать под Ваш контроллер, либо самому ее под Ваши нужды изготавливать. Я думаю, что Вы просто не понимаете, ни что такое libc, ни что такое язык си, и даже вообще, что такое вычислительная система и как Ваш сишный код во что преобразуется и чем оборачивается перед тем, как передать ему управление. Просто задумайтесь, каким образом вообще "дергаются пины". Кто и как Вам отображает уровень сигнала на "пине" в ноль/единицу какого-то бита в байте по некоторому указателю или в переменной. Нет там никаких пинов -- есть исключительно мнгоразрядные регистры, скорее всего, на D-триггерах, в которые можно что-то записать с шины данных по фронту/спаду синхросигнала, используя машинные инструкции. И два варианта -- регистры эти существуют в отдельном адресном пространстве, или отображаются на память. Поскольку си не различает этих вариантов этого, ему на помощь приходит libc -- библиотека, расширяющая и дополняющая язык си, которая в вашем случае сводит все к "дерганью пинов". В случае полноценной host-среды к этой библиотеке предъявляются четкие требования. Мы ее просто называем libc. В случае не-hosted случая структура, функционал и даже именование файлов оставлены реализации, что ни отнимает у ьакой библиотеки названия libc. Просто потому, что ее кроме как с языком си использовать нигде не возможно.
|