LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

AVR ужасно популярны. Никакими сотнями мегагерц там не пахнет, как и мегабайтами флеша. Пихать везде одноплатники до сих пор не всегда рентабельно (микроконтроллеры могут стоит меньше доллара за штуку, а на миллионных партиях это очень заметно).

Какой бы не был компилилятор оптимизирующий, а memory mapped io никто нормально оптимизировать кроме человека не сможет, ибо в си для него есть только одно слово volatile, которое полностью отключает оптимизации. В ядре Linux тоже много ассемблерных вставок, а на МК вся программа сразу и прикладной софт, и ядро, и драйвера.

Наконец, риал тайм. Иногда важно не быстрее/медленнее, а ровно за указанное количество тактов. Простые МК не имеют конвейеров и кешей, так что время исполнения каждой инструкции отлично предсказуемо, а часто вообще указано в даташите. В свою очередь во что превратиться сишный код зависит от опций компиляции, целевого микроконтроллера, версии компилятора и фазы луны. Зачем нужен риал тайм? Да хотя бы для реализации интерфейсов, которые не реализованы аппаратно. Например, посмотри v-usb. Но одним этим применения риал тайма не ограничивается, конечно.

По этой причине иногда даже при наличии одноплатника рядом ставят МК - Linux это не RTOS, а слишком умные процессоры имеют непредсказуемое время исполнения инструкций.

Исправление KivApple, :

AVR ужасно популярны. Никакими сотнями мегагерц там не пахнет, как и мегабайтами флеша. Пихать везде одноплатники до сих пор не всегда рентабельно (микроконтроллеры могут стоит меньше доллара за штуку, а на миллионных партиях это очень заметно).

Какой бы не был компилилятор оптимизирующий, а memory mapped io никто нормально оптимизировать кроме человека не сможет, ибо в си для него есть только одно слово volatile, которое полностью отключает оптимизации. В ядре Linux тоже много ассемблерных вставок, а на МК вся программа сразу и прикладной софт, и ядро, и драйвера.

Наконец, риал тайм. Иногда важно не быстрее/медленнее, а ровно за указанное количество тактов. Простые МК не имеют конвейеров и кешей, так что время исполнения каждой инструкции отлично предсказуемо, а часто вообще указано в даташите. В свою очередь во что превратиться сишный код зависит от опций компиляции, целевого микроконтроллера, версии компилятора и фазы луны. Зачем нужен риал тайм? Да хотя бы для реализации интерфейсов, которые не реализованы аппаратно. Например, посмотри v-usb. Но одним этим применения риал тайма не ограничивается, конечно.

По этой причине иногда даже при наличии одноплатника рядом ставят МК - Linux это не RTOS.

Исходная версия KivApple, :

AVR ужасно популярны. Никакими сотнями мегагерц там не пахнет, как и мегабайтами флеша. Пихать везде одноплатники до сих пор не всегда рентабельно (микроконтроллеры могут стоит меньше доллара за штуку, а на миллионных партиях это очень заметно).

Какой бы не был компилилятор оптимизирующий, а memory mapped io никто нормально оптимизировать кроме человека не сможет, ибо в си для него есть только одно слово volatile, которое полностью отключает оптимизации. В ядре Linux тоже много ассемблерных вставок, а на МК вся программа сразу и прикладной софт, и ядро, и драйвера.

Наконец, риал тайм. Иногда важно не быстрее/медленнее, а ровно за указанное количество тактов. Простые МК не имеют конвейеров и кешей, так что время исполнения каждой инструкции отлично предсказуемо, а часто вообще указано в даташите. В свою очередь во что превратиться сишный код зависит от опций компиляции, целевого микроконтроллера, версии компилятора и фазы луны. Зачем нужен риал тайм? Да хотя бы для реализации интерфейсов, которые не реализованы аппаратно. Например, посмотри v-usb. Но одним этим применения риал тайма не ограничивается, конечно.