|
|
  |
Ускорение входа в прерывание, как уменьшить время реагирования на прерывание |
|
|
|
May 15 2014, 12:53
|
Частый гость
 
Группа: Участник
Сообщений: 181
Регистрация: 26-07-10
Пользователь №: 58 606

|
Цитата(ZEbr @ May 13 2014, 14:47)  Уменьшил время входа в прерывание поставив приоритет 7, время стало 600нс. Но это все равно много! В Вашей тестовой задаче должен быть только один единственный обработчик. Для этого случая приоритет не должен влиять на время входа в обработчик или его влияние должно быть незначительным. Data Sheet что рассказывает по данному вопросу?
|
|
|
|
|
Jun 3 2015, 05:50
|
Группа: Участник
Сообщений: 10
Регистрация: 9-04-09
Пользователь №: 47 414

|
Основное ускорение обработки прерывания происходит именно при установке приоритета 7. Если приоритет 7, то часть регистров сохраняется аппаратно, а не программно, это сильно укорачивает время до начала обработки вашего прерывания. Долго ковырялся в дизассемблере и разочаровало то, что в PIC32. в любом случае даже при использовании теневых регистров (приоритет7), все равно при входе в прерывание, начинают сохраняться некоторые регистры в стек. Какие только я директивы не использовал, все равно чуть больше десятка операций остается. Ускорить работу еще можно путем повышения тактовой частоты периферии, там для этого есть отдельный делитель. Ну и еще вариант- разогнать ядро. У меня разгонялся до 120 МГц, но некоторые экземпляры работали не стабильно. На частоте 110-115 работали нормально все.
|
|
|
|
|
Jun 22 2015, 04:36
|
Группа: Участник
Сообщений: 10
Регистрация: 9-04-09
Пользователь №: 47 414

|
Цитата(ar__systems @ Jun 21 2015, 16:05)  Оставьте в покое С32 и напишите свой обработчик на ассемблере. Осталось только обеспечить безопасное использование ресурсов. Чтобы обработчик на ассемблере не помешал остальному коду скомпилированному при помощи С32. Учитывая, то что описание ассемблера предоставлено компанией MIPS, а в микроконтроллере PIC32 функциональность ядра урезана, то разобраться в прявязке ядра к периферии не очень просто. Да и компилятор С32 на мой взгляд имеет мало настроек. Вобщем с ассемблером в PIC32 стоит связываться только если очень нужно. Чтобы "дергать ножкой" в прерывании, надо внимательно настроить частоту периферии.
|
|
|
|
|
Jun 23 2015, 23:40
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Привязка ядра к периферии - это что значит? Каких ресурсов? Если вы знаете, для чего вам нужно прерывание, написать обработчик не должно представлять сложностей. Возьмите за основу обработчик сгенерированый C32. может вы можете его улучшить, скажем использовать меньше регистров и как следствие меньше сохранять. Цитата Чтобы "дергать ножкой" в прерывании, надо внимательно настроить частоту периферии. Ну так настройте, в чем проблема?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|