Приветствую многоуважаемый All.
Я совсем недавно перешёл к параллельной работе над программирование микроконтроллеров. Первый мой проект был - создание USB-интерфейса для прибора на базе чипа от Cypress. Прибор содержит множество плат, каждая из которых управлялась с компа через этот интерфейс. Интерфейс содержит 8-битовую шину адреса и 8-битовую шину данных, а также пару линий для защёлкивания чтения или записи. Схема простая, каждая плата реагирует только на свой диапазон адресов.
Теперь встала задача перенести всё, что делал комп в микроконтроллер (предположительно ARM, конкретней LPC2xxx). Для работы с каждой платой прибора есть набор калибровочных файлов. Используя калибровочные данные, действия оператора с клавиатуры, программа, написанная на C++, управляла каждой из плат и индицировала результат.
Микроконтроллер должен уметь всё то же самое делать. К нему будет приделана какая-то клава (кнопок на 6-10, ещё не определились), LCD-дисплей. Единственное отличие, что теперь доступ к шине прибора прямой, минуя уже готовый переходной интерфейс USB.
Памяти RAM программа может использовать до мегабайта. Какой размер всей программы будет, пока не известно. Нужно будет где-то хранить калибровочные файлы (flash?) и удобно их закачивать (для каждого прибора свои), не меняя самой программы, естественно. Для калибровок тоже может понадобится около полумегабайта.
Планируется подсоединить также микроконтроллер КОП к ARM микроконтроллеру, чтобы управлять потом девайсом (если уж сильно понадобится) по общепринятому КОПу высокоуровневыми командами с компа.
Таким образом, число потоков, как мне видится, будет где-то 5-6 максимум.
Не подскажете ли, как так изогнуться шлангом, чтобы по минимуму переписывать имеющийся код на C++ и какую среду разработки выбрать, RTOS?
Т.к. я новичок в этом всём, то пока что мне не приходит в голову ничего лучшего, как взять какой-то из LPC2xxx, прикрутить к нему внешнюю RAM, внешнюю флешку (может карточку, а может своей флешки хватит?). Взять GNUARM (C++ держит?), eCOS, собрать/купить Wiggler и взяться за gdb.
Может кто-то подскажет что-то получше? Где грабли?
На какой из LPC обратить внимание?
Какую среду разработки для программ на нормальном C++ выбрать?
Как обчеспечить доступ к файловой системе?
Заранее благодарен.
Дмитрий