murug 0 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба Сугубо практический вопрос на обсуждаемую тему. Только выбор стоит не "без ОС или с ОС", а "с минимальной ОС а-ля FreeRTOS или с ОС побольше а-ля uClinux". LPC2478 (ARM7-TDMI, 96 кБ ОЗУ, 512 кБ флеш) + дофига (десятки мегабайт) внешней памяти с возможностью выполнения оттуда кода, как ОЗУ так и флеша. Прибор - контроллер АСУТП. Из стандартных вещей, для реализации которых хотелось бы использовать какие-то готовые программные модули - работа с графическим индикатором (текст, простейшая графика - диаграммы), USB Host и Slave, работа с файловой системой на флешке. Остальное - сбор дискретных, аналогвых и цифровых данных, расчеты и логика управления - пожалуй никак не связано с выбором ОС. Требуемое время реакции на некоторые события жесткое и весьма малое, порядка сотен наносекунд. Обеспечит ли какой-нибудь из линуксов такое время? Я сам раньше ни с какими ОС не работал. Главным образом поэтому и склоняюсь к чему-то совсем простому типа FreeRTOS, в чем легко будет разобраться. Кроме того предполагаю, что возможности линукса избыточны для моей задачи, а вот ресурсов он явно будет потреблять много. Прав ли я? Или может быть линукс содержит какие-то вкусности, которые в рамках обрисованной задачи компенсируют время, потраченное на его освоение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба uClinux + LPC2478 + Требуемое время реакции на некоторые события жесткое и весьма малое, порядка сотен наносекунд.Не реально. У нас на AM3517 600MHz + Linux + PreemptRT время переключения контекста 160мкс. А у вас частота фактически в 10 раз ниже. Можете поэкстраполировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 17 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба Не реально. У нас на AM3517 600MHz + Linux + PreemptRT время переключения контекста 160мкс. А у вас частота фактически в 10 раз ниже. Можете поэкстраполировать. ну а если задачу с быстрой реакцией перенести на уровень ядра? Грубо говоря в обработчик прерывания засунуть быструю реакцию на событие. Тоже линукс не успеет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба ну а если задачу с быстрой реакцией перенести на уровень ядра? Грубо говоря в обработчик прерывания засунуть быструю реакцию на событие. Тоже линукс не успеет?Я не замерял таким образом. Так-что пока не могу вам ответить на вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ReAl 0 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба LPC2478 ... порядка сотен наносекунд Т.е. порядка десятков тактов процессора. Только если реакция несложная и вся в обработчике прерываний. Тут неподалёку как-то обсуждалось время переключения задач в scmRTOS на Cortex-M3 (72 MHz STM32F1, 100 MHz LPC17). Ну так эти «сотни наносекунд» идут десятками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба Требуемое время реакции на некоторые события жесткое и весьма малое, порядка сотен наносекунд. Обеспечит ли какой-нибудь из линуксов такое время? Прав ли я? Или может быть линукс содержит какие-то вкусности, которые в рамках обрисованной задачи компенсируют время, потраченное на его освоение? Сам микроконтроллер выбран неправильно. Нужно было брать на Cortex-M3 или M4. Там механизм прерываний оптимизирован для малых задержек. И там легче сделать независимые от оси прерывания. Вообще независимые от оси прерывания можно сделать практически на любом современном микроконтроллере и в любой оси включая линукс. Надо только порт оси поправить и все драйвера. Чтобы не было глобальных запрещений прерываний. Очень быстрый механизм прерываний с поддержкой сервисов оси сделан в свободной RTOS от Keil-а. https://www.keil.com/demo/eval/rtx.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 14 декабря, 2012 Опубликовано 14 декабря, 2012 · Жалоба ну а если задачу с быстрой реакцией перенести на уровень ядра? Грубо говоря в обработчик прерывания засунуть быструю реакцию на событие. Тоже линукс не успеет? нет не успеет. читайте http://www.at91.com/linux4sam/bin/view/Linux4SAM/RealTime Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murug 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба Ок, вынесение самых критичных по времени действий в обработчики прерываний - снимает вопрос времени реакции. А возвращаясь к вопросу о вкусностях - для работы с USB и FAT'ом - как обстоят дела с хорошими бесплатными библиотеками под линукс и под FreeRTOS? И еще, вопрос объема используемой памяти оказался все-таки актуальным. Какого порядка объемы флеша и ОЗУ нужны под ядро линукса и под каждую задачу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 (изменено) · Жалоба Ок, вынесение самых критичных по времени действий в обработчики прерываний - снимает вопрос времени реакции. с чего вы это взяли? смотря с какой частотой прерывания поступают. Навскидку: прерывания до 1кГц только можно "ловить вовремя", быстрее - сложнее. А о частотах порядка мегагерц и речи нет. Всё зависит от задачи. А возвращаясь к вопросу о вкусностях - для работы с USB и FAT'ом - как обстоят дела с хорошими бесплатными библиотеками под линукс и под FreeRTOS? В Linux с этим, насколько я знаю, лучше чем у других. И еще, вопрос объема используемой памяти оказался все-таки актуальным. Какого порядка объемы флеша и ОЗУ нужны под ядро линукса и под каждую задачу? тут не подскажу. Ведь ещё ucLinux бывает P.S. реализация TCP/IP в Linux - одна из самых лучших. всякие Lwip и рядом не валялись. ИМХО Изменено 17 декабря, 2012 пользователем TigerSHARC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба И еще, вопрос объема используемой памяти оказался все-таки актуальным. Какого порядка объемы флеша и ОЗУ нужны под ядро линукса и под каждую задачу?Всяко бывает. Всё от задачи зависит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dead_Morose 0 18 декабря, 2012 Опубликовано 18 декабря, 2012 · Жалоба И еще, вопрос объема используемой памяти оказался все-таки актуальным. Какого порядка объемы флеша и ОЗУ нужны под ядро линукса и под каждую задачу? Зависит от задачи. Минимум 4МВ флэш и 16МБ RAM но начинать лучше с 8МВ флэш и 64МБ RAM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TigerSHARC 0 18 декабря, 2012 Опубликовано 18 декабря, 2012 · Жалоба но начинать лучше с 8МВ флэш и 64МБ RAM. это вы с чего взяли? я запускался на AT91+4MBDataFlash+32MB_SDRAM слабее конфигурацию не пробовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 18 декабря, 2012 Опубликовано 18 декабря, 2012 · Жалоба слабее конфигурацию не пробовал.Ничего, другие это проделали:-) http://dmitry.co/index.php?p=./04.Thoughts...nux%20on%208bit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 18 декабря, 2012 Опубликовано 18 декабря, 2012 · Жалоба Ничего, другие это проделали:-) http://dmitry.co/index.php?p=./04.Thoughts...nux%20on%208bit ...uARM is certainly no speed demon. It takes about 2 hours to boot to bash prompt... Фанатик, что сказать. В Google людям видать больше нечего делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SyncLair 0 18 декабря, 2012 Опубликовано 18 декабря, 2012 · Жалоба Сугубо практический вопрос на обсуждаемую тему. Или может быть линукс содержит какие-то вкусности, которые в рамках обрисованной задачи компенсируют время, потраченное на его освоение? TCP/IP -- помоему одна из действительных вкусностей. А так рекомендую Вам поначалу взять этот чип (если уж вы решились именно на этот), а затем перейти на CotexM3 LPC178x он должен идти ножка в ножку с LPC2478. А FAT32 с USB HOST у меня как одельный поток неплохо работает. CotexM3 действительно более хорош для более быстрой реакции на прерывания чем LPC2478. Перифирия у чипов схожая. Если хотите возится с переносимостью кода, то см мой проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться