Нужна ОС реального времени, которая уже портирована под OMAP 1808, либо которую можно в кратчайшие сроки портировать. Интересуют как коммерческие продукты, так и с открытым исходным кодом. Прошу помощи - подсказок, на что обратить внимание.
Нужна ОС реального времени, которая уже портирована под OMAP 1808, либо которую можно в кратчайшие сроки портировать. Интересуют как коммерческие продукты, так и с открытым исходным кодом. Прошу помощи - подсказок, на что обратить внимание.
Я бы рекомендовал Nucleus ReadyStart Платформа далеко обходит по возможностям все RTOS с открытым кодом. При этом очень компактная. Работает в режиме как с MMU так и без MMU. Портирование практически такое же как у известной uCOS. Под OMAP 1808 уже есть порт. Размер и быстродействие тоже конкурируют с uCOS и прочими компактными осями.
Я бы рекомендовал Nucleus ReadyStart Платформа далеко обходит по возможностям все RTOS с открытым кодом. При этом очень компактная. Работает в режиме как с MMU так и без MMU. Портирование практически такое же как у известной uCOS. Под OMAP 1808 уже есть порт. Размер и быстродействие тоже конкурируют с uCOS и прочими компактными осями.
У них явно какие то проблемы с менеджером... Запросил дополнительную информацию о лицензии и стоимости - молчат... За наводку спасибо.
Mahagam
Oct 15 2012, 10:22
ам1808? это где арм9 ядро? ну так берите всё что под арм7 и не парьтесь. хотя бы тотже фриртос. я у себя CTL запустил, кэши включил - летает.
gormih
Oct 15 2012, 13:37
Цитата(Mahagam @ Oct 15 2012, 14:22)
ам1808? это где арм9 ядро? ну так берите всё что под арм7 и не парьтесь. хотя бы тотже фриртос. я у себя CTL запустил, кэши включил - летает.
Для того, чтобы это сделать нужно как минимум хорошо знать структуру ОС, и как ее портировать на конкретный процессор? Или я в чем то заблуждаюсь? Карта регистров не меняется разве? Перечень оборудования? Это все надо где то прописать. А на это далеко не всегда есть время. Желательно иметь готовый вариант.
Mahagam
Oct 15 2012, 14:38
ничего там не надо. для всех этих таск-шедулеров единственный ресурс который нужен - таймер. ARM7/9 - насколько я помню набор инструкций совпадает. у меня основное время заняла адаптация ассемблерного файла собственно переключателя контекста под особенности компилятора/ассемблера CCS. собственно код не правился вообще
aaarrr
Oct 15 2012, 15:11
Цитата(Mahagam @ Oct 15 2012, 18:38)
ничего там не надо. для всех этих таск-шедулеров единственный ресурс который нужен - таймер.
Еще контроллер прерываний настроить. Собственно, для 1808 это будет основной частью работы.
Mahagam
Oct 17 2012, 08:08
QUOTE (aaarrr @ Oct 15 2012, 18:11)
Еще контроллер прерываний настроить. Собственно, для 1808 это будет основной частью работы.
CODE
int ctl_set_isr(unsigned int number, unsigned int priority, CTL_ISR_FN_t isr, CTL_ISR_FN_t *oldisr) { unsigned long *cmr; unsigned long cmr_data, mask;
if (number > sizeof(ctl_isr_table)/sizeof(CTL_ISR_FN_t)) return 0; if (oldisr) *oldisr = ctl_isr_table[number]; ctl_isr_table[number] = isr;
как-то так. никакой работы. ну разве что таблицу векторов надо в шустром месте разместить, да обработчик прерывания должен знать как успокоить контроллер и как выковырять правильный вектор из таблицы
aaarrr
Oct 17 2012, 12:09
Цитата(Mahagam @ Oct 17 2012, 12:08)
как-то так. никакой работы.
Никакой работы - это настройка таймера. А здесь мануал почитать все же придется.
Цитата(Mahagam @ Oct 17 2012, 12:08)
ну разве что таблицу векторов надо в шустром месте разместить, да обработчик прерывания должен знать как успокоить контроллер и как выковырять правильный вектор из таблицы
А зачем обработчику что-то выковыривать? Векторизация решается двумя командами ldr pc, [pc, #offs] - одной на векторе 0x18, и второй на векторе AINTC.
Mahagam
Oct 17 2012, 13:35
я там не всё привёл, но все равно, настойка AINTC не сильно сложнее таймера.
векторизация вышла такая:
CODE
ldr r0, _AINTC_GPVR_ADDR ; r0 contains address of GPVR ; (which contains ISR address) ldr r0, [r0] ; r0 contains address of highest ; prioritized ISR add r14, pc, #0 ; Save return address in LR, ; PC = PC + 8 bytes,see documentation ldr pc, [r0] ; Go to ISR (still in IRQ mode), ; will return to following line
тоже вроде ничего сложного.
evg123
Oct 19 2012, 10:27
Мы без проблем установили LINUX - взяли с сайта TI. Используем OMAP L-138 (там Am1808 + Dsp6748).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.