Перейти к содержанию
    

Dream Platform II

========= Предыдущие обсуждения по теме =========

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все это необходимо дополнить идеологией концентраторов.

 

Есть кучка "контролеров светодиода" на LPC2101 | Atmega48. Чтобы они не занимали слоты на "мамке", ставим концентратор, который эту кучку "приводит" к одному слоту. Тоже на чем-то типа LPC2101.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут Ксил еще одну "бомбу" приготовил: XC3S500E-4CPG132C IC SPARTAN-3E FPGA 500K 132-CSP $17.30 http://www.digikey.com. Это уже очень "взрослая" ПЛИСка!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут Ксил еще одну "бомбу" приготовил: XC3S500E-4CPG132C IC SPARTAN-3E FPGA 500K 132-CSP $17.30 http://www.digikey.com. Это уже очень "взрослая" ПЛИСка!
Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара? Есть ли у Altera подобные штуки за такую цену?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара? Есть ли у Altera подобные штуки за такую цену?
Да, именно так. Что есть у Альтеры - смотрите на их сайте + einfo.ru, efind.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара?
Да, именно так.
Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...
Нет никакой засады. Просто ксил решил "давонуть" компетиторов. Кстати, на рынке дешевых плисок для него не Altera главный ужас, а Lattice. Spartan-3E не так уже и дешев - технология отработана, Spartan-3 (без Е) уже несколько лет выпускается - так что все спокойно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара?
Да, именно так.
Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...

 

Подвох в том, что в таком корпусе уже имеешь головную боль с нехваткой ног, например, повесил на нее память - и все, сидишь и сосешь локоть :(

А вот в роли конвертилки чего-то во что-то на лету без накопления в памяти - самое оно, туда даже IP стек, наверное, запихнуть можно.

PS: Хотя XC3S500E-4FTG256C ненамного дороже получается - $22.85, а ног в два раза больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дополнение про 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 :) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Evgeny_CD

Извини, не хочу губить твой порыв (без иронии).

Но ты понимаешь, что ввязавшись в такое мы рискуем тебя на форуме не увидить эдак с пару лет :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но ты понимаешь, что ввязавшись в такое мы рискуем тебя на форуме не увидить эдак с пару лет :)

Причем без гарантированного результата.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Evgeny_CD

Кстати, я вижу ты охладел к BlackFin-у, почему (на приводимом MCF5407CAI220 ведь то-же MMU нет)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 в качестве одного из периферийных устройств. :biggrin:

 

Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой.

В чем с вами и соглашается FreeScale

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой.
В чем с вами и соглашается FreeScale
В MCF5475/85 они таки прикрутили MMU к СoldFire. Мне фраза в доке понравилась: "обспечивает быстродействие на уровне 97% по отношению к такому же процу без MMU" (вольный пересказ).

 

Просто desktop и embedded ОСи - это идеологически разные ОСи. Путем шаманства их можно делать похожими друг на друга (патчить линух до приемлемых параметров либо обвешивать простую embedded оську всякими compatibility layer, пока она не упадет под тяжестью маразма) - но это не есть правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...