реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
arhiv6
сообщение Oct 28 2015, 21:42
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423



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


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 29 2015, 06:37
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



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

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
slavokhire5
сообщение Oct 29 2015, 11:34
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 31-03-14
Из: Харьков
Пользователь №: 81 165



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


а в сторону FreeRTOS не смотрели? вроде бы в списке поддерживаемых МК на ядре MSP430X есть, есть примеры для IAR и для CCS, а CCS, если я не ошибаюсь, на gcc работает
http://www.freertos.org/a00090.html#TI
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Oct 29 2015, 12:34
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Рекомендую "родную" SYS/BIOS от TI.
Работает надежно (использую bios_6_37_00_20 & xdctools_3_25_04_88, MCU MSP430F5359).

Недостатки

- Генерация ОС из скриптов ( надо скачивать и использовать XDC Tools)
- Нет нормальных исходных кодов.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Oct 29 2015, 13:30
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Самое простое и компактное - scmRTOS. Сделано на С++ / ООП, шаблоны. Поддержки дебаггера в IAR для нее нет.
Есть некоторая непонятка с настройками моделей памяти (IMHO) и "переключателем" контекста (IMHO)

Далее следует freeRTOS. Поддержка IAR-debug есть. Чистый С. В настройке сложнее и менее-читабельна чем scmRTOS.
Более емкая по RAM чем scmRTOS.
Контекст переключается с соотв-ии с моделью памяти. С документацией не густо. Есть ряд статей Курница. Хорошо расписано.
Для MSP430 в ней есть порт / пример для MSP430F5438 - из этого и надо исходить.

Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 29 2015, 14:23
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (k155la3 @ Oct 29 2015, 16:30) *
Более емкая по RAM чем scmRTOS.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 30 2015, 05:14
Сообщение #7


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (k155la3 @ Oct 29 2015, 19:30) *
Есть некоторая непонятка с настройками моделей памяти (IMHO) и "переключателем" контекста (IMHO)

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
k155la3
сообщение Oct 30 2015, 10:13
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(dxp @ Oct 30 2015, 09:14) *
Что имеется в виду под непонятками (в обоих случаях)?


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

2. "Переключатель" контекста
----
зависимость (настройка) режимов переключения от:
- модели памяти
- MSP430 / MSP430X


Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 30 2015, 11:01
Сообщение #9


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (k155la3 @ Oct 30 2015, 16:13) *
1. Настройки моделей памяти
----
В док. явно не расписано, как должна быть настроена ОС для работы в различных моделях памяти IAR C компилятора.

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

QUOTE (k155la3 @ Oct 30 2015, 16:13) *
2. "Переключатель" контекста
----
зависимость (настройка) режимов переключения от:
- модели памяти
- MSP430 / MSP430X

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


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
k155la3
сообщение Oct 30 2015, 14:10
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(dxp @ Oct 30 2015, 15:01) *
Модель памяти к ос вообще отношения не имеет.


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



Цитата(dxp @ Oct 30 2015, 15:01) *
Переключение контекста, конечно, отличается, т.к. контексты там разные (у 430Х больше регистров со всеми вытекающими). А "непонятка"-то в чём?

Это было немного давно (с полгода). Поэтому могу быть неточен.
(появится время, я могу попробовать "восстановить стек")
Проект довольно большой, флеш MSP430F2618 занята около 80-90проц.
4 потока. После наращивания текста программы (безобидные вещи, работа меню)
ПО начало "валиться", что проявлялось в "авторесете" при входе в ранее работавшие (и не изменявшиеся) пункты (блоки кода) .
Начались танцы с бубном - размеры-контроль стеков, проверки размеров массивов,
комбинациии настроек компилятора во всех вариантах и позах.
Все это в "debug".
------------
Непонятка: Не нашел док по ньюансам настройки ОС под различные модели памяти и опции компилятора.
------------
Опятьже, не факт, что причина в ОС. Авторесет, думаю, может происходить по причине "влета" процессора в некорректный опкод.
А это уже компилятор-дебаггер.





Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 16:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016