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

 
 
> SignalISR() в Blackfin, флаг устанавливается медленно
sevstels
сообщение Feb 22 2010, 04:19
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Собственно трудность заключается в медленном поднятии флага при вызове функции SignalISR().
Разместил флаги в секции "l2_var", функцию SignalISR() в секции "drivers_L1_code"
Но это не помогло решить проблему.

Принимаются блок данных по SPI, после корректного приёма заголовка должен устанвливаться флаг события. Если в коде обработчика прерывания от SPI по совпадению условий вызывается SignalISR() - то такое прерывание затягивается дольше чем принимается байт данных, в итоге весь блок портится, т к следующий байт повреждён. На фотографии красный луч показывает длительность нахождения в прерывании. Самый широкий импульс как раз и есть вызов функции SignalISR().
Если закомментировать строчку с вызовом - всё приходит в норму. Но только процесс ничего не знает о событии.




На фотографии ниже показана длительнось обработки SPI прерывания без подьёма флагов, примерно 400ns.
Вопрос - как победить неувязку? Пока не удаётся разогнать SPI даже до приемлимого уровня...



--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sevstels
сообщение Feb 22 2010, 08:38
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910



Цитата
Какая у вас тактовая частота? На какой скорости SPI гоняете?


core speed = 600mHz
system speed =(600mHz/8) = 75mHz
скорость SPI видно по осциллограмме, период тактовой ~1.8 mks
Это эмуляция spi протокола через USB FT232R на скорости 921600, реальная байтовая скорость = /8/2

Попробую померить.

Сообщение отредактировал sevstels - Feb 22 2010, 08:47


--------------------
Herz - дятел.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sevstels   SignalISR() в Blackfin   Feb 22 2010, 04:19
- - blackfin   Вы или неверно изложили суть проблемы, или выбрали...   Feb 22 2010, 05:09
- - sevstels   Цитатавесь блок данных уже принят и уже сохранен в...   Feb 22 2010, 05:32
|- - blackfin   Цитата(sevstels @ Feb 22 2010, 08:32) Оче...   Feb 22 2010, 05:40
- - sevstels   Речь о scmRTOS функции: void OS::TEventFlag::Signa...   Feb 22 2010, 05:45
|- - blackfin   Цитата(sevstels @ Feb 22 2010, 08:45) Реч...   Feb 22 2010, 05:48
- - sevstels   Видимо вопрос к разработчикам scmRTOS, т к в такие...   Feb 22 2010, 05:52
- - dxp   Цитата(sevstels @ Feb 22 2010, 10:19) Соб...   Feb 22 2010, 08:15
- - sevstels   Перенёс флаги в L1. Измерил. Непосредственно сама ...   Feb 22 2010, 11:00
- - blackfin   Тоже сделал замеры при вызове макросов VDK на дост...   Feb 22 2010, 12:54
- - sevstels   Всё равно - нет в жизни счастья. Звенит тактовый с...   Feb 22 2010, 13:29
|- - blackfin   Цитата(sevstels @ Feb 22 2010, 16:29) Бло...   Feb 22 2010, 13:58
- - sevstels   Нет необходимости вообще что либо делать, кроме ка...   Feb 22 2010, 14:45
- - sevstels   дел   Feb 22 2010, 14:52
- - sevstels   В общем - победил, всё идеально "летает...   Feb 23 2010, 03:40


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

 


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


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