Отличается между Systick и Timer в ARM M4 - PullRequest
0 голосов
/ 18 марта 2019

Я закончил базовый микропроцессор с 8051. В этом курсе я научился использовать таймер для запуска события.После семестра я изучил программирование встроенной системы с помощью ARM Cortex M4 (панель запуска Tiva C) и начал использовать Systick для запуска события (почти используется в FreeeRTOS), а иногда он используется в качестве таймера.

  • Интересно, что отличается между таймером и ручкой?Потому что иногда я думаю, что поведение систик такое же, как таймер.Я искал разницу, и знаю: systick находится в ядре руки, а timer принадлежит поставщику чипа.
  • И в какой ситуации мы должны использовать systick вместо использования timer?Пожалуйста, дайте мне знать.Спасибо.

Ответы [ 2 ]

4 голосов
/ 18 марта 2019

У вас в основном это есть. Таймер Systick является частью ядра ARM. И другой таймер (ы) от производителя чипа. Вы, программист, можете использовать их по своему усмотрению.

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

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

Здесь нет волшебства, вы - программист, вы можете использовать периферию по своему усмотрению.

Теперь, если вы используете ОСРВ, такую ​​как FreeRTOS или другие, тогда ваша свобода ограничена тем, что ОСРВ не потребляет для себя (она, скорее всего, будет использовать таймер синдиката, если он присутствует, но оставит другие).

2 голосов
/ 19 марта 2019

Причина заключается в том, что любой разработчик ОС может написать код для любого Cortex-M, который имеет SysTick, и ему не нужно беспокоиться о деталях поставщика. Существует гарантия того, что SysTick всегда работает одинаково на широком спектре устройств, поэтому требуется меньше низкоуровневого переноса.

То же самое для вашего курса, если вы пишете голое железо, вам не нужно беспокоиться о поставщике устройства, пока вы не используете его периферийные устройства (таймер, uart, сторожевой таймер).

...