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

 
 
 
Reply to this topicStart new topic
> FreeRTOS and IAR C-SPY Simulator
chuvi
сообщение Jul 28 2010, 09:40
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 28-07-10
Пользователь №: 58 646



Добрый день!
Имеется 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. Каким образом нужно настроить периодичность этих прерываний?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 28 2010, 10:22
Сообщение #2


Гуру
******

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



QUOTE (chuvi @ Jul 28 2010, 12:40) *
Понял, что задачи не будут переключаться без прерывания PendSV.

Для начала все начинается с SysTick прерывания - шедулер там, все остальное (PendSV) потом.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
chuvi
сообщение Jul 28 2010, 13:10
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 28-07-10
Пользователь №: 58 646



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

Никто на симуляторе не запускал такого?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 28 2010, 13:53
Сообщение #4


Гуру
******

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



QUOTE (chuvi @ Jul 28 2010, 16:10) *
совместно, SysTick and PendSV

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

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

Зачем? Порт Вы по любому не отладите, а написать без ошибок несколько системных вызовов надо себя уметь заставить.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Jul 28 2010, 14:20
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



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


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


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

Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 02:52
Рейтинг@Mail.ru


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