Evgeny_CD 0 14 августа, 2006 Опубликовано 14 августа, 2006 · Жалоба ========= Предыдущие обсуждения по теме ========= Dream Board http://www.caxapa.ru/echo/arm.html?id=64968 http://www.caxapa.ru/echo/arm.html?id=64969 http://electronix.ru/forum/index.php?s=&am...st&p=143432 Dream Platform: "$8, которые изменили мир" http://www.caxapa.ru/echo/arm.html?id=65085 http://electronix.ru/forum/index.php?showtopic=19858 FreeScale (Motorola) ColdFire - наши мольбы о !BGA услышаны? http://www.caxapa.ru/echo/arm.html?id=63110 http://electronix.ru/forum/index.php?showtopic=18754 ========= Термины и определения ========= HCPU - Host CPU - типа главный HFPGA - его FPGA SCPU - Slave CPU - периферийный сопроцессор SFPGA - его FPGA ========= Рисунки к тексту ========= http://upload.caxapa.ru/Deram_Platform.pdf - 80к ========= Стандартые медленные драйвера ========= Обычный проц, обычная ОСь, обычные дрова. Медленная работа * UART * SPI * I2C ========= Стандартые быстрые драйвера ========= * Ethernet * USB ========= nanoPCI ========= Dream Platform: "$8, которые изменили мир" http://www.caxapa.ru/echo/arm.html?id=65085 http://electronix.ru/forum/index.php?showtopic=19858 ========= TAL драйвера ========= Transaction Abstraction Layer - по аналогии с HAL. Специализированые драйвера. Все общение на уровне транзакций. Например, для SD/CF/IDE * записать кластер * считать кластер Для RS-485, по которому ModBus бегает * передать пакет * считать принятый пакет. Базовые примитивы драйвера * init () * status_get () * cmd_read () * cmd_wright () * data_read () * data_wright () Есди надо, перифейриная плата выставляет запрос на обслуживание, который вызывает прерывание. Регистр прерываний. ========= Таймер реального времени ========= Привязка всех процессов к RT. Выдача синхронизации на периферийные платы при помощи специальной команды. ========= Многопоточный контроллер памяти ========= Буферизация больших пакетов, чтобы экономить ресурс блочной памяти FPGA. "Коммутация данных" - передача данных от одного периферийного устройства к другому минуя память HCPU. ========= Режим отладки ========= На плате основного контроллера запускается простое приложение, которое конвертирует данные периферийных контроллеров в простой и быстрй IP протокол (UDP, raw). Главное - скорость. Передача по локальной сети, потерь пакетов мало. На пЫсюке запускается специальный отладочный сервер, который конвертит "простой протокол" в "сокетный" интерфейс по localhost. Каждое устройсто видно как 5 сокетов * status_get * cmd_read * cmd_wright * data_read * data_wright Целевая ОСь + целевое приложение - синтетический порт или симулятор. Нормальные TAL драйвера заменяются на сокетные. При этом симулируемая ОСь работает с реальным железом!!! Идеальня среда для отладки нового железа. Через сокет "натягиваем" железяку отладочной софтиной на пЫтоне. ========= Требования к HCPU ========= * хороший контроллер DMA с работой через внешнюю шину * Ethernet внутренний с DMA * необходимый минимум контроллеров Кандидаты: * AT91RM9200 - пролетает по критерию DMA * ColdFire - самое то по причине хорошего DMA и Ethernet * LH7952(0|4|5) - самое то по причине DMA * нелюбимый мною x86 - получает шанс, если HFPGA на PCI посадить. * PPC405, MPC5200B - самое то! Уникальный вариант - MCF5407CAI220 - IC MPU 32B 220MHZ COLDF 208-FQFP - 25 pcs $34.92 http://www.digikey.com * 316 DMIPS !!! * PQFP 208 * -40! * мало периферии, Ethernet нет. * DMA 4 канала есть. * нет MMU - нет проблем с портированием ОСей. Порта на RTEMS нет, но должны пойти порты на MCF52xx с минимальным перехаком. Это самый быстрый из известных мне PQFP -40 процессоров. ========= Экономические аспекты ========= Периферийный контроллер - от $11. XC3S250E-4PQG208C 15.25 http://www.digikey.com HCPU ColdFire MCF5270, 5208 - 10$. Т.е. основной контроллер собирается от $30. Вполне разумная плата за фантатическую гибкость! ========= "А зачем нам кузнец?" ========= * Максимальная гибкость. Делаем небольшие платочки под специфическую периферию, и втыкам их в свободные слоты основной платы. Предложенного интерфейса nanoPCI хватит для всех стоящих лично передо мной Embedded задач на долгие и долгие годы. * Независимость от поставщиов. Требования к HCPU очень простые, FPGA тоже какая-нибудь найдется всегда - "выкос" линеек процессоров нас не волнует. * Идельная среда отлаки (при наличи мощного пЫсюка и гигабитного Ethernet порта получаем неплохой real time). Нет места спорам - какую ось выбрать. Взяли uCOS в синтетическом режиме - попробовали. Не понравилось - eCos, RTEMS к нашим услугам. * в принципе, можно и на линукс целевую логику реализовать. Т.е. есть плата - концентратор данных, и есть Linuх управляющий софт, например на x86 (бр...) ========= Просьбы ========= Критика - welcom! ========= Дополнительные посты, полезные в контексте рассматриваемых проблем ========= TDD (Test-driven Development) применительно к embedded системам: похоже, я догнал, как это должно быть устроено. http://www.caxapa.ru/echo/arm.html?id=63285 http://electronix.ru/forum/index.php?showtopic=18859 Развитие идей по упрощенной отладке. http://www.caxapa.ru/echo/arm.html?id=63474 http://electronix.ru/forum/index.php?s=&showtopic=18859 eCos на ARM симуляторе SID, автоматическое тестирование при помощи DejaGNU - очень интересно!!! http://www.caxapa.ru/echo/arm.html?id=62769 http://electronix.ru/forum/index.php?showtopic=18602 uCOS: гораздо более правильная ОСь, чем я долгое время думал. http://www.caxapa.ru/echo/arm.html?id=61909 http://electronix.ru/forum/index.php?showtopic=18222 Сквозная система разработки embedded устройств Полноценная GNU среда для embedded разработки http://www.caxapa.ru/echo/arm.html?id=60891 http://electronix.ru/forum/index.php?showtopic=17562 Продвинутые make'еры: все уже изобретено! http://www.caxapa.ru/echo/arm.html?id=61898 http://electronix.ru/forum/index.php?showtopic=18212 Концептуальный вопрос по написанию прототипа в среде "похожей на embedd Ось" (Ch и не только). http://www.caxapa.ru/echo/arm.html?id=58541 "Питон для Си-программистов" http://www.caxapa.ru/mcu/wwwboard.html?id=57403 http://www.caxapa.ru/mcu/wwwboard.html?id=57960 Ch http://www.caxapa.ru/mcu/wwwboard.html?id=57905 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 15 августа, 2006 Опубликовано 15 августа, 2006 · Жалоба Все это необходимо дополнить идеологией концентраторов. Есть кучка "контролеров светодиода" на LPC2101 | Atmega48. Чтобы они не занимали слоты на "мамке", ставим концентратор, который эту кучку "приводит" к одному слоту. Тоже на чем-то типа LPC2101. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 15 августа, 2006 Опубликовано 15 августа, 2006 · Жалоба Тут Ксил еще одну "бомбу" приготовил: XC3S500E-4CPG132C IC SPARTAN-3E FPGA 500K 132-CSP $17.30 http://www.digikey.com. Это уже очень "взрослая" ПЛИСка! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 15 августа, 2006 Опубликовано 15 августа, 2006 · Жалоба Тут Ксил еще одну "бомбу" приготовил: XC3S500E-4CPG132C IC SPARTAN-3E FPGA 500K 132-CSP $17.30 http://www.digikey.com. Это уже очень "взрослая" ПЛИСка!Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара? Есть ли у Altera подобные штуки за такую цену? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 16 августа, 2006 Опубликовано 16 августа, 2006 · Жалоба Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара? Есть ли у Altera подобные штуки за такую цену?Да, именно так. Что есть у Альтеры - смотрите на их сайте + einfo.ru, efind.ru Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 16 августа, 2006 Опубликовано 16 августа, 2006 · Жалоба Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара?Да, именно так.Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 16 августа, 2006 Опубликовано 16 августа, 2006 · Жалоба Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...Нет никакой засады. Просто ксил решил "давонуть" компетиторов. Кстати, на рынке дешевых плисок для него не Altera главный ужас, а Lattice. Spartan-3E не так уже и дешев - технология отработана, Spartan-3 (без Е) уже несколько лет выпускается - так что все спокойно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Delsian 0 18 августа, 2006 Опубликовано 18 августа, 2006 · Жалоба Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара?Да, именно так.Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену... Подвох в том, что в таком корпусе уже имеешь головную боль с нехваткой ног, например, повесил на нее память - и все, сидишь и сосешь локоть :( А вот в роли конвертилки чего-то во что-то на лету без накопления в памяти - самое оно, туда даже IP стек, наверное, запихнуть можно. PS: Хотя XC3S500E-4FTG256C ненамного дороже получается - $22.85, а ног в два раза больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 20 августа, 2006 Опубликовано 20 августа, 2006 · Жалоба Дополнение про Dream Platform II Написали дрова. Запускаем их либо под отладочным фреймфорком (startup + отладочный код), либо под пустой ОСью (дрова + тестовая задача.) Отладочная конфигцрация: * железо * дрова * контроллер * отладочный сокетный интерефейс * пЫсюк * test suite или синтетический порт ОСи Начинаем замыкать контур ОС - выдаем данные в обратную сторону. Полный путь данных: * железо * дрова * контроллер * отладочный сокетный интерефейс * пЫсюк * синтетический порт ОСи * отладочный сокетный интерефейс * контроллер * дрова * железо Длинновато, не на всех задачах RT получим. Начинаем укорачивать "петлю ОС" - отлаженную часть обработки данных переносим на целевой контролер. По скорости - при использовании контроллера на мамке с PCI интерфейсом (все современные тяжелые контроллеры умеют PCI 32 бит 66 Mhz) либо ставим Gigabit Ethernet, либо из мамки делам плату в PCI слот пЫсюка. Унифицированный интерфейс между блоками (nanoPCI) позволит пилить большую задачу на много сблочков, каждый из которых прост и понятен. Также возможен плавный переход к DSP и ASIC сопроцессорам: * добились работоспособности целевой задачи при использование только процессора "мамки", пусть даже в нереальным времени 1:1000 * выбираем самый "напряжный" алгоритм и в DSP или (FPGA) его. Интерфейс тот же - nanoPCI. * тестируем, снова добиваемся работосмособности. * repeat until За счет унифицированного сокетного отладочного интерфейса можно использовать симуляторы DSP и даже *HDL симуляторы! В общем, TDD (test driven development) по полной программе :) Как работать с файлами из *HDL кода отчасти понятно, например Reading and writing files from Verilog models http://www.chris.spear.net/pli/fileio.htm Вопрос - а нечто похожее с сокетами можно сделать? Или нужно делать хак на уровне ОСи - создавать некий виртуальный файл, который в реальности на сокет отмаплен или memory mapped file (понятно, что делать это лучше под Linux :) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 августа, 2006 Опубликовано 23 августа, 2006 · Жалоба 2 Evgeny_CD Извини, не хочу губить твой порыв (без иронии). Но ты понимаешь, что ввязавшись в такое мы рискуем тебя на форуме не увидить эдак с пару лет :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SpiritDance 0 23 августа, 2006 Опубликовано 23 августа, 2006 · Жалоба Но ты понимаешь, что ввязавшись в такое мы рискуем тебя на форуме не увидить эдак с пару лет :) Причем без гарантированного результата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
3.14 0 23 августа, 2006 Опубликовано 23 августа, 2006 · Жалоба 2 Evgeny_CD Кстати, я вижу ты охладел к BlackFin-у, почему (на приводимом MCF5407CAI220 ведь то-же MMU нет)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 24 августа, 2006 Опубликовано 24 августа, 2006 · Жалоба 1. Пока не достигну концептуального просветления - ничего делать не буду. 2. После этого напишу подробно план действий и "запощу" в публик - дабы быть раскритикованным. 3. Далее выберу примитивный проект и буду на нем "тренироваться на кошках". 4. Все-таки попробую я написать книгу по всем своим идеями, с протоколированием освоения всяческих тулзов. 5. Соберу команду единомышленников. 6. После всего этого возьмусь за серьезные проекты. Так что того - "не дождетесь"!!! По BlackFin - я по прежнему считаю его самым лучшим DSP для практических задач. В том числе и по причине наличия GCC и JTAG для GDB за вполне разумные деньги http://www.section5.ch/index.php?which=1&sub=0#insight Dream Platform II неявно подразумевает наличие BF в качестве одного из периферийных устройств. Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmivs 0 25 августа, 2006 Опубликовано 25 августа, 2006 · Жалоба Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой. В чем с вами и соглашается FreeScale Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeny_CD 0 25 августа, 2006 Опубликовано 25 августа, 2006 · Жалоба Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой.В чем с вами и соглашается FreeScaleВ MCF5475/85 они таки прикрутили MMU к СoldFire. Мне фраза в доке понравилась: "обспечивает быстродействие на уровне 97% по отношению к такому же процу без MMU" (вольный пересказ). Просто desktop и embedded ОСи - это идеологически разные ОСи. Путем шаманства их можно делать похожими друг на друга (патчить линух до приемлемых параметров либо обвешивать простую embedded оську всякими compatibility layer, пока она не упадет под тяжестью маразма) - но это не есть правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться