Evgeny_CDАрхитектор (06.05.2009 20:42, просмотров: 396) ответил AlexandrY на Жалобы были на документацию и на тех поддержку.
Дримплатформа и вправду нужна разработчикам. Чтобы одну и ту же "массу технологий" продать разным заказчикам / на разные рынки. И от конкретных ядер, на самом деле, плафторма не шибко зависит. Пока для того, чем лично я занимаюсь, нужно примерно так:
Host контроллер:
* проц 32 бита 50...100 Мгц
* FLASH 1М, хорошо бы 2М в перспективе, код всегда из FLASH
* RAM 64...128K
* внешняя шина 5..10М 32 битных слов/сек. Шина может быть 16 битной, 10М 16 битных слов в сек.
* RAM на внешней шине, SRAM, можно SDRAM при наличии очень хорошего контроллера, 1М...2Мбайт - для коммуникационных буферов и стеков всяких интерпретируемых языков
* DMA, в том числе на внешнюю шину (вот тут многие ARM от NXP, Atmel "срезаются")
* быстрые SPI каналы, 2 шт мин, 8Мбит и быстрее.
* UART - хотя бы пару для отладки, целевые в периферийных процах.
* USB - почти 100% да, Ethernet - по возможности.
* PQFP, хорошо бы не 240 (любимый корпус Ренесаса) :)
Периферийные процы - ATxmega по надобности. На SPI.
Внутри хоста - гибридная ОСька. Часть ресурсов (стеки, семафоры и пр), которая определена на этапе компиляции проекта, задается статически при компиляции/линковке проекта. Ну и часть под динамическое распределение.
Т.е. идея вот в чем. Пусть мне надо кучу семафоров. Если они известны на этапе компиляции - нафига их создавать в процессе работы проги??? Создали статический массив каких-то структур, все что можно - во FLASH. Например, точки входа всех процедур, который могут смотреть на этот семафор - массив указателей во FLASH. И небольшая структурка в ОЗУ - какие из них реально смотрят. Только то, что может динамически измениться - в RAM.
POSIX слой ОСи - ну, в общем, полезно, но скорости от него не надо. Т.е. фактически вся "кодовая" часть POSIX и управляемых им задач должна жить во FLASH, а вот все данные - в медленной SRAM. Под этим позиксом будут жить коммуникационыны задачи с суммарной скоростью по всем портам 1Мбит/сек. Буфера пакетов тоже гибридные: дескрипторы во внутреннем ОЗУ, а сами данные - снаружи.
Фактически, хороший выбор ОСи - тщательно прохаченный RTEMS.
По сравнению с прошлыми моими понятиями о дримплатформе я сильно прокачал мозги в части идеологического избавления от потребности в большом ОЗУ на кристалле. Выясняется, что 1М FLASH/64 к ОЗУ - это очень много. Особенно если ядро поддердживает битовые операции :)
Вот за счет DMA, хорошей внешней шины, больших FLASH/SRAM в мелких корпусах японцы пока и впереди (в моей голове) в части хоста для этой платформы.