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

 
 
> IAR 5.30 ARM
Andrew Lekar
сообщение Sep 14 2009, 19:00
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 11-10-06
Пользователь №: 21 214



Подскажите, как правильно портировать на IAR 5.30? Апноту 1250 читал, софта внутри не нашёл, а скачать не дают.
В общем, есть версия для at91sam9260 для IAR 4.30, но там формат линкерных файлов другой и стартапы отличаются - я их перелопатил в интуитивной манере и даже запустил (пишет в терминале что работает на 1000 тиков и больше ничего не делает), но неизвестно, всё ли правильно.
Хочется посмотреть на нормальные файлы или хотя бы узнать, как проверить правильность работы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andrewlekar
сообщение Sep 17 2009, 10:25
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Ладно, положусь на создателей порта, которые обрабатывают прерывания напрямую. И не буду из прерываний трогать ось. smile.gif

PS: View заработал. Только почему-то View 310G знает только о ком-портах 1 и 2. Как-то хиловато.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Sep 17 2009, 10:37
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(andrewlekar @ Sep 17 2009, 14:25) *
Ладно, положусь на создателей порта, которые обрабатывают прерывания напрямую. И не буду из прерываний трогать ось. smile.gif

Как это не будете трогать сервисы оси из прерываний? А как же вы будете события задачам передавать?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 17 2009, 10:53
Сообщение #4


Гуру
******

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



Цитата(Andy Mozzhevilov @ Sep 17 2009, 12:37) *
Как это не будете трогать сервисы оси из прерываний? А как же вы будете события задачам передавать?

В более-менее нормальных системах только сервисы собственно переключающие контекст из прерывания требуют системных оберток. Та-же передача сообщений из прерывания в большинстве случаев может только перепланировать шедулер, а переключение произойдет в плановом порядке по очередному тику или вызову шедулера. Лично я практически никогда не пользуюсь переключением контекста из прерываний, впрочем как и uC/OS smile.gif и соответственно давно забыл ее нюансы.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Sep 17 2009, 14:52
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(zltigo @ Sep 17 2009, 14:53) *
В более-менее нормальных системах только сервисы собственно переключающие контекст из прерывания требуют системных оберток. Та-же передача сообщений из прерывания в большинстве случаев может только перепланировать шедулер, а переключение произойдет в плановом порядке по очередному тику или вызову шедулера. Лично я практически никогда не пользуюсь переключением контекста из прерываний, впрочем как и uC/OS smile.gif и соответственно давно забыл ее нюансы.

Вполне нормальная практика - выполнение планировщика с возможным переключением контекста после выхода из прерывания.
Причина тоже понятна - скорость реакции задачи на асинхронное событие.
Если контекст переключать только по тикам таймера, это уже не то. Скорость реакции будет зависеть от периода таймера и его джиттера относительно асинхронного события.
Не думаю, что в любимой вами FreeRtos задачи переключаются по тикам. Должно перепланироваться после выхода из прерывания.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 17 2009, 16:10
Сообщение #6


Гуру
******

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



Цитата(Andy Mozzhevilov @ Sep 17 2009, 16:52) *
Вполне нормальная практика - выполнение планировщика с возможным переключением контекста после выхода из прерывания.

Только в реале нужная на самом деле редко, если подумать.
Цитата
Причина тоже понятна - скорость реакции задачи на асинхронное событие.

Если она нужна smile.gif. При этом на самом деле для достижению рекордных скоростей вся эта возня с бездумным сохранением контекста тормозит изрядно, и если уж нужно действительно скорость реакции, то нужно или без системы или с системными заплатками.
Цитата
Если контекст переключать только по тикам таймера, это уже не то.

По тикам, или после ухода текущей задачи в сон или ожидание
Цитата
Скорость реакции будет зависеть от периода таймера и его джиттера относительно асинхронного события.

И при переключении из обработчика будет - из того, что Вы попытаетесь переключить контекст из одного из рабочих прерываний, совершенно не значит, что он переключится, обо текущая задача может иметь банально больший приоритет нежели та, которой Вы ну очень хотите срочно послать сообщение. Далее поднятая задача тоже должна поработать дабы сделать что-то то,что является той самой "реакцией на асинхронное событие", при этом ее совершенно спокойно может прервать множество рабочих прерываний и время еще поплывет, а то еще и очередной обработчик прерывания пошлет сообщение приоритетной задаче....
Цитата
Должно перепланироваться после выхода из прерывания.

По контексту, полагаю, что Вы имеете ввиду переключение, а не перепланирование, против которого (правда не после, а в обработчике прерывания) я не имею ну совсем ничего против smile.gif
Это просто лозунг, причем тупо реализованный с целью дабы ламеры не думая получили некий результат. При этом о цене заплаченной за "результат", умалчивается.
А цена эта немалая, ну например типичный, как минимум для меня, случай - по прерываниям собирается какой-то фрейм, ну например, сотни байт размером. Складывается в буфер. По получению полного фрейма посылается сообщение задаче, что в буфере лежит фрейм. Если делать тупо с сохранением контекста, то будут сотни лишних сохранений/восстановлений контекста на одну посылку сообщения. И это при этом сам обработчик может быть действительно быстрым буквально десяток команд и железо обслужено. Без сохранения - да, при посылке сообщения мы будем вынуждены дождаться тика или добровольной передачи управления. При этом на самом деле можем попасть и на IDLE, тогда вписав в idle() несколько строк можем уже и переключить задачу сразу. Для более жесткого переключения вполне хорошим приемом является и вызов-эмуляция некого прерывания, на котором висит обертка и переключение контекста, из обработчика прерывания без обертки. Я так несколько раз делал для FIQ.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
solosh
сообщение Sep 17 2009, 17:11
Сообщение #7





Группа: Участник
Сообщений: 13
Регистрация: 23-10-04
Пользователь №: 968



Цитата(zltigo @ Sep 17 2009, 19:10) *
Для более жесткого переключения вполне хорошим приемом является и вызов-эмуляция некого прерывания, на котором висит обертка и переключение контекста, из обработчика прерывания без обертки.


И в scmRTOS тоже так сделано.
А обработчик прервания на входе сохраняет только те регистры, которыми будет пользоваться, а не весь контекст.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Andrew Lekar   IAR 5.30 ARM   Sep 14 2009, 19:00
- - Andy Mozzhevilov   С 4.30 на 5.хх переводится по EWARM_MigrationGuide...   Sep 15 2009, 05:09
|- - Andrew Lekar   Цитата(Andy Mozzhevilov @ Sep 15 2009, 11...   Sep 16 2009, 18:24
|- - Andy Mozzhevilov   Цитата(Andrew Lekar @ Sep 16 2009, 22:24)...   Sep 17 2009, 04:01
|- - andrewlekar   Цитата(Andy Mozzhevilov @ Sep 17 2009, 10...   Sep 17 2009, 04:49
|- - Andy Mozzhevilov   Цитата(andrewlekar @ Sep 17 2009, 08:49) ...   Sep 17 2009, 06:31
|- - andrewlekar   Цитата(Andy Mozzhevilov @ Sep 17 2009, 12...   Sep 17 2009, 08:37
- - Andy Mozzhevilov   Прерывания должны сначала попадать в ось на OS_CPU...   Sep 17 2009, 09:41
|- - Andy Mozzhevilov   Цитата(zltigo @ Sep 17 2009, 20:10) Если ...   Sep 19 2009, 05:18
|- - zltigo   Цитата(Andy Mozzhevilov @ Sep 19 2009, 07...   Sep 19 2009, 08:15
|- - Andy Mozzhevilov   Цитата(zltigo @ Sep 19 2009, 12:15) Посме...   Sep 21 2009, 10:08
- - HARMHARM   Цитата(Andy Mozzhevilov @ Sep 17 2009, 17...   Sep 17 2009, 17:04


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 18:36
Рейтинг@Mail.ru


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