Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Dream Platform II
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Evgeny_CD
========= Предыдущие обсуждения по теме =========

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
Все это необходимо дополнить идеологией концентраторов.

Есть кучка "контролеров светодиода" на LPC2101 | Atmega48. Чтобы они не занимали слоты на "мамке", ставим концентратор, который эту кучку "приводит" к одному слоту. Тоже на чем-то типа LPC2101.
Evgeny_CD
Тут Ксил еще одну "бомбу" приготовил: XC3S500E-4CPG132C IC SPARTAN-3E FPGA 500K 132-CSP $17.30 http://www.digikey.com. Это уже очень "взрослая" ПЛИСка!
AVR
Цитата(Evgeny_CD @ Aug 15 2006, 17:29) *
Тут Ксил еще одну "бомбу" приготовил: XC3S500E-4CPG132C IC SPARTAN-3E FPGA 500K 132-CSP $17.30 http://www.digikey.com. Это уже очень "взрослая" ПЛИСка!
Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара? Есть ли у Altera подобные штуки за такую цену?
Evgeny_CD
Цитата(AVR @ Aug 15 2006, 22:47) *
Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара? Есть ли у Altera подобные штуки за такую цену?
Да, именно так. Что есть у Альтеры - смотрите на их сайте + einfo.ru, efind.ru
AVR
Цитата(Evgeny_CD @ Aug 16 2006, 09:48) *
Цитата(AVR @ Aug 15 2006, 22:47) *
Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара?
Да, именно так.
Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...
Evgeny_CD
Цитата(AVR @ Aug 16 2006, 17:02) *
Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...
Нет никакой засады. Просто ксил решил "давонуть" компетиторов. Кстати, на рынке дешевых плисок для него не Altera главный ужас, а Lattice. Spartan-3E не так уже и дешев - технология отработана, Spartan-3 (без Е) уже несколько лет выпускается - так что все спокойно.
Delsian
Цитата(AVR @ Aug 16 2006, 16:02) *
Цитата(Evgeny_CD @ Aug 16 2006, 09:48) *

Цитата(AVR @ Aug 15 2006, 22:47) *
Извините что вклиниваюсь, но 500K это значит 500 тыс. вентилей за 17.3 доллара?
Да, именно так.
Как-то подозрительно/удивительно дешево получается... Тут есть подвох какой-то? У Альтеры ничего подобного нет за такую цену...


Подвох в том, что в таком корпусе уже имеешь головную боль с нехваткой ног, например, повесил на нее память - и все, сидишь и сосешь локоть sad.gif
А вот в роли конвертилки чего-то во что-то на лету без накопления в памяти - самое оно, туда даже IP стек, наверное, запихнуть можно.
PS: Хотя XC3S500E-4FTG256C ненамного дороже получается - $22.85, а ног в два раза больше.
Evgeny_CD
Дополнение про 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) по полной программе smile.gif

Как работать с файлами из *HDL кода отчасти понятно, например
Reading and writing files from Verilog models
http://www.chris.spear.net/pli/fileio.htm

Вопрос - а нечто похожее с сокетами можно сделать? Или нужно делать хак на уровне ОСи - создавать некий виртуальный файл, который в реальности на сокет отмаплен или memory mapped file (понятно, что делать это лучше под Linux smile.gif )
3.14
2 Evgeny_CD
Извини, не хочу губить твой порыв (без иронии).
Но ты понимаешь, что ввязавшись в такое мы рискуем тебя на форуме не увидить эдак с пару лет smile.gif
SpiritDance
Цитата(3.14 @ Aug 23 2006, 10:10) *
Но ты понимаешь, что ввязавшись в такое мы рискуем тебя на форуме не увидить эдак с пару лет smile.gif

Причем без гарантированного результата.
3.14
2 Evgeny_CD
Кстати, я вижу ты охладел к BlackFin-у, почему (на приводимом MCF5407CAI220 ведь то-же MMU нет)?
Evgeny_CD
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.gif

Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой.
dmivs
Цитата(Evgeny_CD @ Aug 25 2006, 01:37) *
Что касается MMU - после некоторого просветления по RTOS'ам я заметно отдалился от Linux, и MMU в Embedded приложениях мне кажется довольно бесполезной штукой.

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

Просто desktop и embedded ОСи - это идеологически разные ОСи. Путем шаманства их можно делать похожими друг на друга (патчить линух до приемлемых параметров либо обвешивать простую embedded оську всякими compatibility layer, пока она не упадет под тяжестью маразма) - но это не есть правильно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.