arhiv6 20 28 октября, 2015 Опубликовано 28 октября, 2015 · Жалоба Добрый день. Хочу попробовать использовать RTOS в своих проектах. На какую стоит обратить внимание для изучения? Есть старая тема, где советуют scmRTOS. Почитал описание, понравилась. Но, к сожалению, для новых МК (ядро MSP430X) есть порт только для IAR, а я использую gcc. Что в таком случае попробовать для изучения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Добрый день. Хочу попробовать использовать RTOS в своих проектах. На какую стоит обратить внимание для изучения? Есть старая тема, где советуют scmRTOS. Почитал описание, понравилась. Но, к сожалению, для новых МК (ядро MSP430X) есть порт только для IAR, а я использую gcc. Что в таком случае попробовать для изучения? Портируйте для gcc. Взять вариант от 430 и добавить то, чего не хватает (по аналогии с iar), там они только контекстом отличаются, насколько помню. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavokhire5 0 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Добрый день. Хочу попробовать использовать RTOS в своих проектах. На какую стоит обратить внимание для изучения? Есть старая тема, где советуют scmRTOS. Почитал описание, понравилась. Но, к сожалению, для новых МК (ядро MSP430X) есть порт только для IAR, а я использую gcc. Что в таком случае попробовать для изучения? а в сторону FreeRTOS не смотрели? вроде бы в списке поддерживаемых МК на ядре MSP430X есть, есть примеры для IAR и для CCS, а CCS, если я не ошибаюсь, на gcc работает http://www.freertos.org/a00090.html#TI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yuri_t 0 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Рекомендую "родную" SYS/BIOS от TI. Работает надежно (использую bios_6_37_00_20 & xdctools_3_25_04_88, MCU MSP430F5359). Недостатки - Генерация ОС из скриптов ( надо скачивать и использовать XDC Tools) - Нет нормальных исходных кодов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Самое простое и компактное - scmRTOS. Сделано на С++ / ООП, шаблоны. Поддержки дебаггера в IAR для нее нет. Есть некоторая непонятка с настройками моделей памяти (IMHO) и "переключателем" контекста (IMHO) Далее следует freeRTOS. Поддержка IAR-debug есть. Чистый С. В настройке сложнее и менее-читабельна чем scmRTOS. Более емкая по RAM чем scmRTOS. Контекст переключается с соотв-ии с моделью памяти. С документацией не густо. Есть ряд статей Курница. Хорошо расписано. Для MSP430 в ней есть порт / пример для MSP430F5438 - из этого и надо исходить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 29 октября, 2015 Опубликовано 29 октября, 2015 · Жалоба Более емкая по RAM чем scmRTOS. По размеру RAM у FreeRTOS издревле было две глупости - для задач и очередей выделялось по два блока памяти и соответственно лишние расходы на блоки контроля памяти. Недавно заглянул в исходники - в какой-то момент глупость с отдельными блоками на стека и TCB убрали, но для очередей оставили. В остальном явным перересходам памяти взяться некоткуда - размеры стека, сохраняеемого контекста, размеры очередей по любому основные потребители памяти и не зависят от операционки. Отличия в размерах TCB это уже не принципиально, да и их можно поджимать во FreeRTOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 30 октября, 2015 Опубликовано 30 октября, 2015 · Жалоба Есть некоторая непонятка с настройками моделей памяти (IMHO) и "переключателем" контекста (IMHO) Что имеется в виду под непонятками (в обоих случаях)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 30 октября, 2015 Опубликовано 30 октября, 2015 · Жалоба Что имеется в виду под непонятками (в обоих случаях)? 1. Настройки моделей памяти ---- В док. явно не расписано, как должна быть настроена ОС для работы в различных моделях памяти IAR C компилятора. Возможно это и не имеет значения. 2. "Переключатель" контекста ---- зависимость (настройка) режимов переключения от: - модели памяти - MSP430 / MSP430X Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 30 октября, 2015 Опубликовано 30 октября, 2015 · Жалоба 1. Настройки моделей памяти ---- В док. явно не расписано, как должна быть настроена ОС для работы в различных моделях памяти IAR C компилятора. Модель памяти к ос вообще отношения не имеет. 2. "Переключатель" контекста ---- зависимость (настройка) режимов переключения от: - модели памяти - MSP430 / MSP430X Переключение контекста, конечно, отличается, т.к. контексты там разные (у 430Х больше регистров со всеми вытекающими). А "непонятка"-то в чём? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 30 октября, 2015 Опубликовано 30 октября, 2015 · Жалоба Модель памяти к ос вообще отношения не имеет. (freeRTOS portmacro.h) В зависимости от модели разрядность стека и соотв-но его размер разные. Если компилировать в SMALL, а контекст переключать "по полной" для MSP430X, то половина выделенного под стек RAM будет гулять. . . . . /* The stack type changes depending on the data model. */ #if( __DATA_MODEL__ == __DATA_MODEL_SMALL__ ) #define portSTACK_TYPE uint16_t #else #define portSTACK_TYPE uint32_t #endif . . . . Переключение контекста, конечно, отличается, т.к. контексты там разные (у 430Х больше регистров со всеми вытекающими). А "непонятка"-то в чём? Это было немного давно (с полгода). Поэтому могу быть неточен. (появится время, я могу попробовать "восстановить стек") Проект довольно большой, флеш MSP430F2618 занята около 80-90проц. 4 потока. После наращивания текста программы (безобидные вещи, работа меню) ПО начало "валиться", что проявлялось в "авторесете" при входе в ранее работавшие (и не изменявшиеся) пункты (блоки кода) . Начались танцы с бубном - размеры-контроль стеков, проверки размеров массивов, комбинациии настроек компилятора во всех вариантах и позах. Все это в "debug". ------------ Непонятка: Не нашел док по ньюансам настройки ОС под различные модели памяти и опции компилятора. ------------ Опятьже, не факт, что причина в ОС. Авторесет, думаю, может происходить по причине "влета" процессора в некорректный опкод. А это уже компилятор-дебаггер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться