========= Предыдущие обсуждения по теме =========
Dream Board
http://www.caxapa.ru/echo/arm.html?id=64968http://www.caxapa.ru/echo/arm.html?id=64969http://electronix.ru/forum/index.php?s=&am...st&p=143432Dream Platform: "$8, которые изменили мир"
http://www.caxapa.ru/echo/arm.html?id=65085http://electronix.ru/forum/index.php?showtopic=19858FreeScale (Motorola) ColdFire - наши мольбы о !BGA услышаны?
http://www.caxapa.ru/echo/arm.html?id=63110http://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=65085http://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.comHCPU 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=63285http://electronix.ru/forum/index.php?showtopic=18859Развитие идей по упрощенной отладке.
http://www.caxapa.ru/echo/arm.html?id=63474http://electronix.ru/forum/index.php?s=&showtopic=18859eCos на ARM симуляторе SID, автоматическое тестирование при помощи DejaGNU - очень интересно!!!
http://www.caxapa.ru/echo/arm.html?id=62769http://electronix.ru/forum/index.php?showtopic=18602uCOS: гораздо более правильная ОСь, чем я долгое время думал.
http://www.caxapa.ru/echo/arm.html?id=61909http://electronix.ru/forum/index.php?showtopic=18222Сквозная система разработки embedded устройств
Полноценная GNU среда для embedded разработки
http://www.caxapa.ru/echo/arm.html?id=60891http://electronix.ru/forum/index.php?showtopic=17562Продвинутые make'еры: все уже изобретено!
http://www.caxapa.ru/echo/arm.html?id=61898http://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=57403http://www.caxapa.ru/mcu/wwwboard.html?id=57960Ch
http://www.caxapa.ru/mcu/wwwboard.html?id=57905