Комментарии 11
Интересно, что помешало реализовать остальную сверхскоростную часть внутри FPGA в виде связки быстрой логики (что-то вроде двухпортовая RAM + логика + конечный автомат + если надо DSP) + встроенного в чип PowerPC для общей координации процесса, если фреймграббер уже реализован.
Хотя вопрос наверно не к вам, и у него были причины переносить обработку изображения на «ранних стадиях» на CPU.
Хотя вопрос наверно не к вам, и у него были причины переносить обработку изображения на «ранних стадиях» на CPU.
0
Самый ценный ресурс — время.
Отлаживать CPU-код (особенно на PC!) гораздо легче и быстрее, чем городить сигнал-процессинг внутри ПЛИС.
На последующих стадиях разработки, когда заказчик уже убедился что железяка реально работает и готов раскошелиться на оптимизацию — тогда да, значительную часть DSP можно спокойно упаковать в ПЛИС и портировать в Линукс или винду.
Отлаживать CPU-код (особенно на PC!) гораздо легче и быстрее, чем городить сигнал-процессинг внутри ПЛИС.
На последующих стадиях разработки, когда заказчик уже убедился что железяка реально работает и готов раскошелиться на оптимизацию — тогда да, значительную часть DSP можно спокойно упаковать в ПЛИС и портировать в Линукс или винду.
+1
а в Линуксе цикл модификация кода — компиляция драйвера – перезагрузка – анализ printk-сообщений занимал неприемлемо долгое время
А зачем именно перезагрузка? Возможно, я что-то не понимаю, но модуль же можно выгрузить и загрузить новый без проблем.
+1
Передаю ответ art_zh из чата на форуме board.kolibrios.org
в том смысле что на ранних этапах разработки новое, неотлаженное PCIe-устройство часто виснет само и вешает всю систему.
пока не будут выловлены все баги (и в драйвере, и в ПЛИС) — приходится перезагружаться сотни раз
+2
А, тогда понятно. В таком случае Колибри чем выигрывает — не виснет намертво или быстрее перезагружается?
0
Гораздо быстрее перезагружается: 3-5 сек
0
Очень быстрый цикл компиляция — перезагрузка.
0
Во-первых, быстрее перезагружается (POST+BIOS + 2 секунды),
а во-вторых, с экзоядром отпадает необходимость в отдельной компиляции отладочного драйвера кернелспейса — printk-прослойки между отлаживаемым приложением и налаживаемым железом.
(у кода — отладка, у аппаратуры — наладка. Хотя, если железо построено на ПЛИС, то наверное и там тоже правильнее говорить «отладка»?)
а во-вторых, с экзоядром отпадает необходимость в отдельной компиляции отладочного драйвера кернелспейса — printk-прослойки между отлаживаемым приложением и налаживаемым железом.
(у кода — отладка, у аппаратуры — наладка. Хотя, если железо построено на ПЛИС, то наверное и там тоже правильнее говорить «отладка»?)
+2
Испытываю громадное уважение к таким проектам. Ребята вы молодцы! Продолжайте!
+1
Добавлю про GPU. К сожалению, единственный реальный путь к использованию GPU ATI/AMD лежит через портирование LLVM. Первая попытка закончилась неудачно, но я не теряю надежды.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Применение KolibriOS. Часть 2: Экзоверсия ядра для разработчиков железа