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

 
 
> Ускорение входа в прерывание, как уменьшить время реагирования на прерывание
ZEbr
сообщение May 13 2014, 05:25
Сообщение #1


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

Группа: Участник
Сообщений: 145
Регистрация: 2-12-10
Из: Воронеж
Пользователь №: 61 356



Есть прграмма написанная на PIC32.
Есть преравание по изменению уровня на ножке проца.
Время входа в прерывание 880 нс.
Вопрос такой. Как уменьшить время входа в прерывание?
Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Василий Иванов
сообщение Jun 3 2015, 05:50
Сообщение #2





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



Основное ускорение обработки прерывания происходит именно при установке приоритета 7. Если приоритет 7, то часть регистров сохраняется аппаратно, а не программно, это сильно укорачивает время до начала обработки вашего прерывания. Долго ковырялся в дизассемблере и разочаровало то, что в PIC32. в любом случае даже при использовании теневых регистров (приоритет7), все равно при входе в прерывание, начинают сохраняться некоторые регистры в стек. Какие только я директивы не использовал, все равно чуть больше десятка операций остается.
Ускорить работу еще можно путем повышения тактовой частоты периферии, там для этого есть отдельный делитель.
Ну и еще вариант- разогнать ядро. У меня разгонялся до 120 МГц, но некоторые экземпляры работали не стабильно. На частоте 110-115 работали нормально все.
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jun 21 2015, 13:05
Сообщение #3


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(Василий Иванов @ Jun 3 2015, 00:50) *
Основное ускорение обработки прерывания происходит именно при установке приоритета 7. Если приоритет 7, то часть регистров сохраняется аппаратно, а не программно, это сильно укорачивает время до начала обработки вашего прерывания. Долго ковырялся в дизассемблере и разочаровало то, что в PIC32.


Оставьте в покое С32 и напишите свой обработчик на ассемблере.
Go to the top of the page
 
+Quote Post
Василий Иванов
сообщение Jun 22 2015, 04:36
Сообщение #4





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



Цитата(ar__systems @ Jun 21 2015, 16:05) *
Оставьте в покое С32 и напишите свой обработчик на ассемблере.

Осталось только обеспечить безопасное использование ресурсов. Чтобы обработчик на ассемблере не помешал остальному коду скомпилированному при помощи С32. Учитывая, то что описание ассемблера предоставлено компанией MIPS, а в микроконтроллере PIC32 функциональность ядра урезана, то разобраться в прявязке ядра к периферии не очень просто. Да и компилятор С32 на мой взгляд имеет мало настроек. Вобщем с ассемблером в PIC32 стоит связываться только если очень нужно.

Чтобы "дергать ножкой" в прерывании, надо внимательно настроить частоту периферии.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:19
Рейтинг@Mail.ru


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