Перейти к содержанию
    

RTOS для MSP430

Добрый день. Хочу попробовать использовать RTOS в своих проектах. На какую стоит обратить внимание для изучения? Есть старая тема, где советуют scmRTOS. Почитал описание, понравилась. Но, к сожалению, для новых МК (ядро MSP430X) есть порт только для IAR, а я использую gcc. Что в таком случае попробовать для изучения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день. Хочу попробовать использовать RTOS в своих проектах. На какую стоит обратить внимание для изучения? Есть старая тема, где советуют scmRTOS. Почитал описание, понравилась. Но, к сожалению, для новых МК (ядро MSP430X) есть порт только для IAR, а я использую gcc. Что в таком случае попробовать для изучения?

Портируйте для gcc. Взять вариант от 430 и добавить то, чего не хватает (по аналогии с iar), там они только контекстом отличаются, насколько помню.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день. Хочу попробовать использовать RTOS в своих проектах. На какую стоит обратить внимание для изучения? Есть старая тема, где советуют scmRTOS. Почитал описание, понравилась. Но, к сожалению, для новых МК (ядро MSP430X) есть порт только для IAR, а я использую gcc. Что в таком случае попробовать для изучения?

 

а в сторону FreeRTOS не смотрели? вроде бы в списке поддерживаемых МК на ядре MSP430X есть, есть примеры для IAR и для CCS, а CCS, если я не ошибаюсь, на gcc работает

http://www.freertos.org/a00090.html#TI

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендую "родную" SYS/BIOS от TI.

Работает надежно (использую bios_6_37_00_20 & xdctools_3_25_04_88, MCU MSP430F5359).

 

Недостатки

 

- Генерация ОС из скриптов ( надо скачивать и использовать XDC Tools)

- Нет нормальных исходных кодов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое простое и компактное - scmRTOS. Сделано на С++ / ООП, шаблоны. Поддержки дебаггера в IAR для нее нет.

Есть некоторая непонятка с настройками моделей памяти (IMHO) и "переключателем" контекста (IMHO)

 

Далее следует freeRTOS. Поддержка IAR-debug есть. Чистый С. В настройке сложнее и менее-читабельна чем scmRTOS.

Более емкая по RAM чем scmRTOS.

Контекст переключается с соотв-ии с моделью памяти. С документацией не густо. Есть ряд статей Курница. Хорошо расписано.

Для MSP430 в ней есть порт / пример для MSP430F5438 - из этого и надо исходить.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Более емкая по RAM чем scmRTOS.

По размеру RAM у FreeRTOS издревле было две глупости - для задач и очередей выделялось по два блока памяти и соответственно лишние расходы на блоки контроля памяти. Недавно заглянул в исходники - в какой-то момент глупость с отдельными блоками на стека и TCB убрали, но для очередей оставили. В остальном явным перересходам памяти взяться некоткуда -

размеры стека, сохраняеемого контекста, размеры очередей по любому основные потребители памяти и не зависят от операционки. Отличия в размерах TCB это уже не принципиально, да и их можно поджимать во FreeRTOS.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть некоторая непонятка с настройками моделей памяти (IMHO) и "переключателем" контекста (IMHO)

Что имеется в виду под непонятками (в обоих случаях)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что имеется в виду под непонятками (в обоих случаях)?

 

1. Настройки моделей памяти

----

В док. явно не расписано, как должна быть настроена ОС для работы в различных моделях памяти IAR C компилятора.

Возможно это и не имеет значения.

 

2. "Переключатель" контекста

----

зависимость (настройка) режимов переключения от:

- модели памяти

- MSP430 / MSP430X

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Настройки моделей памяти

----

В док. явно не расписано, как должна быть настроена ОС для работы в различных моделях памяти IAR C компилятора.

Модель памяти к ос вообще отношения не имеет.

 

2. "Переключатель" контекста

----

зависимость (настройка) режимов переключения от:

- модели памяти

- MSP430 / MSP430X

Переключение контекста, конечно, отличается, т.к. контексты там разные (у 430Х больше регистров со всеми вытекающими). А "непонятка"-то в чём?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модель памяти к ос вообще отношения не имеет.

 

(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".

------------

Непонятка: Не нашел док по ньюансам настройки ОС под различные модели памяти и опции компилятора.

------------

Опятьже, не факт, что причина в ОС. Авторесет, думаю, может происходить по причине "влета" процессора в некорректный опкод.

А это уже компилятор-дебаггер.

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...