Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2021-дек-06 23:47

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу « 1 2
Автор Сообщение
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2012-сен-13 15:32 
Не в сети

Зарегистрирован: 2012-июн-13 14:13
Сообщения: 51
Добавлю:
подвисание функции SysTickDelay(N) не зависит от кнопки, а только от значения N:
для значений <39 - подвисает
для значений >=39 - задержка работает штатно.
Что это за магическое число 39 не могу пока понять.
Функции Start, Stop, Delay, Handler (см. выше) - брал готовые, из примеров.
Может кто прояснит, в чем здесь заковыка?


Вернуться к началу
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2012-сен-13 16:52 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1318
Откуда: АО "ПКК Миландр"
borisK писал(а):
Добавлю:
подвисание функции SysTickDelay(N) не зависит от кнопки, а только от значения N:
для значений <39 - подвисает
для значений >=39 - задержка работает штатно.
Что это за магическое число 39 не могу пока понять.
Функции Start, Stop, Delay, Handler (см. выше) - брал готовые, из примеров.
Может кто прояснит, в чем здесь заковыка?
Не успевает отработать обработчик прерываний, как в него снова сваливаются может быть?


Вернуться к началу
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2012-сен-13 19:03 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1603
Откуда: Тула
borisK писал(а):
Выяснил, что если N достаточно велико (где-то поболее 200), то вполне стабильно отрабатывается задержка.
Если N невелико (у меня было 30), задержка зацикливается...
похоже это связано с временем нажатия на кнопку (у меня запуск по кнопке производится).
До конца пока не разобрался, но хоть где копать знаю...
получается таймер у вас тикает очень часто (каждые 30 тактов) и ядро может просто не успевать выполнять вход-выход в прерывание, перегружая контроллер прерываний. не в этом ли причина?

ну и 30*30=900 тактов для ядра на 8МГц это мгновение почти. надо смотреть как реализован запуск по кнопке.

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2012-сен-13 19:08 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1603
Откуда: Тула
prostoRoman писал(а):
borisK писал(а):
Выяснил, что если N достаточно велико (где-то поболее 200), то вполне стабильно отрабатывается задержка.
Если N невелико (у меня было 30), задержка зацикливается...
похоже это связано с временем нажатия на кнопку (у меня запуск по кнопке производится).
До конца пока не разобрался, но хоть где копать знаю...
получается таймер у вас тикает очень часто (каждые 30 тактов) и ядро может просто не успевать выполнять вход-выход в прерывание, перегружая контроллер прерываний. не в этом ли причина?

ну и 30*30=900 тактов для ядра на 8МГц это мгновение почти. надо смотреть как реализован запуск по кнопке.
вторую страницу то я и не заметил) согласен с -=Sergei=- (хотя вход в прерывание емнип тактов 10-12+задержка флеша(на 8мгц почти отсутствует), выход 6-8 тактов, + пару тактов на декремент и проверку (это для гцц с О3)

_________________
сочувствующий…


Вернуться к началу
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2012-сен-13 21:38 
Не в сети

Зарегистрирован: 2012-июн-13 14:13
Сообщения: 51
Да, похоже причина именно в количестве тактов на обработку прерывания.
Спасибо за ответы.


Вернуться к началу
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2021-окт-27 14:35 
Не в сети

Зарегистрирован: 2021-июн-08 11:17
Сообщения: 32
Организация: частное лицо
ЧумА писал(а): *
Вылезаем из танка :). Peripherals\Core Peripherals\System Tick Timer. Причём описание регистров можно и не подгружать, у меня указан голый Cortex-M3. Нужен именно volatile, а не static.
А как можно отлаживать SysTick в eclipse? Потому что в тех svdшках от Keil, которые у меня подгружаются в окно "Peripherals" нет описания SysTick.

UPD. https://github.com/ARM-software/CMSIS_5/issues/844
Как я понял из дискуссии по ссылке - в какой-то момент просто перестали "core peripherals" (в числе которых SysTick) включать в SVD. Так что сейчас не работает что в keil, что в других IDE.

Я понимаю что темка старая конечно.


Вернуться к началу
 Заголовок сообщения: Re: Работа с SysTick Timer
СообщениеДобавлено: 2021-окт-27 17:55 
Не в сети
Support
Аватара пользователя

Зарегистрирован: 2018-авг-10 23:14
Сообщения: 571
Организация: АО «ПКК Миландр»
Откуда: Зеленоград
Steppenwolf писал(а): *
ЧумА писал(а): *
Вылезаем из танка :). Peripherals\Core Peripherals\System Tick Timer. Причём описание регистров можно и не подгружать, у меня указан голый Cortex-M3. Нужен именно volatile, а не static.
А как можно отлаживать SysTick в eclipse? Потому что в тех svdшках от Keil, которые у меня подгружаются в окно "Peripherals" нет описания SysTick.

UPD. https://github.com/ARM-software/CMSIS_5/issues/844
Как я понял из дискуссии по ссылке - в какой-то момент просто перестали "core peripherals" (в числе которых SysTick) включать в SVD. Так что сейчас не работает что в keil, что в других IDE.

Я понимаю что темка старая конечно.
Здравствуйте!

Обратите, пожалуйста, внимание, что системный таймер SysTick опционально является частью ядра в 1986ВЕ4У, официально поставляемые файлы SVD в составе SPL разработки компании Миландр подробно описывают только периферийные блоки микроконтроллера в отрыве от регистров ядра, и для IDE Keil справедливо, что окна с описанием регистров из состава "Core Peripherals" (куда в том числе входит конфигурация SysTick) формируются средой автоматически на основе используемого ядра, так как адреса внутри ядра стандартные и описываются документацией ARM (1986ВЕ4У близок по системе команд с Cortex-M0). Поэтому обратите, пожалуйста, внимание, что в Eclipse при применении тех же файлов SVD регистры SysTick доступны в окне "Peripherals" отладочной сессии не будут, необходимо дописывать файл SVD самостоятельно, либо оперировать адресами, которые регламентирует ARM на ядро Cortex-M0, и конфигурировать системный таймер в окне "Memory". Проблем при работе быть не должно. Спасибо за обращение.

_________________
Отдел технической поддержки support@milandr.ru

Информационный портал отдела технической поддержки support.milandr.ru


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 22 сообщения ]  На страницу « 1 2

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB