Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FreeRTOS and IAR C-SPY Simulator
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
chuvi
Добрый день!
Имеется FreeRTOS v.6.0.5 и IAR Embedded Workbench IDE v.5.50.1 full. Разрабатываю для ядра Cortex M3 STM32.
Пока плата еще не пришла, пытаюсь запустить на симуляторе работу нескольких task в FreeRTOS. Понял, что задачи не будут переключаться без прерывания PendSV. Пробовал устанавливать периодическое прерывание в Interrup Setup. Задача переключалась один раз и все. Хотя прерывание PendSV по-прежнему срабатывало.

Исходя из этого появились вопросы:
1. Возможно ли вообще сделать это на симуляторе? Если да, тогда след. вопросы:
2. Возможно еще какие-нибудь прерывания необходимы для этого?
3. Каким образом нужно настроить периодичность этих прерываний?
zltigo
QUOTE (chuvi @ Jul 28 2010, 12:40) *
Понял, что задачи не будут переключаться без прерывания PendSV.

Для начала все начинается с SysTick прерывания - шедулер там, все остальное (PendSV) потом.
chuvi
С прерыванием SysTick тоже баловался, ставил разные периоды повторений, переменная xTickCount увеличивается, но задачи не переключались. Похоже на то, что шедулеру надо какой-то набор прерываний (совместно, SysTick and PendSV, может еще какие-то).

Никто на симуляторе не запускал такого?
zltigo
QUOTE (chuvi @ Jul 28 2010, 16:10) *
совместно, SysTick and PendSV

Естественно нужны эти два последовательно - так сделан помянутый Вами порт - в SysTick шедулер и взводится PendSV в котором уже переключается контекст.

QUOTE (chuvi @ Jul 28 2010, 16:10) *
Никто на симуляторе не запускал такого?

Зачем? Порт Вы по любому не отладите, а написать без ошибок несколько системных вызовов надо себя уметь заставить.
Artem_Petrik
Цитата(chuvi @ Jul 28 2010, 16:10) *
Никто на симуляторе не запускал такого?


Если так уж хочется поиграться до появления реального проца, то я посоветовал бы воспользоваться для этого более подходящим симулятором, чем ИАР-овский. В KEIL симулятор симулирует не только ядро, но и практически всю периферию. Т. е. там будут работать те же прерывания, что и в железе.


Исходники придется правда несколько подправить (иначе описываются обработчики прерываний, несколько иной формат ассемблера и т. д.) Но, для Вашего случая, можно просто взять готовый порт под KEIL вместо иаровского. Непосредственно Ваш (не freertos-овский) код править скорее всего не придется.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.