Новые концепции библиотеки управления таймером для встроенного приложения - PullRequest
0 голосов
/ 17 июня 2020

Я разрабатываю модуль управления таймером для встроенного приложения. Я обдумывал несколько вариантов дизайна и хотел бы внести свой вклад.

1) Предположим, пользователь вызвал функцию TimerCreate с тайм-аутом, параметром обратного вызова. Когда вызывается функция TimerCreate, создается узел и размещается в правильном хронологическом порядке в связанном списке. Мы запускаем аппаратный таймер с помощью самого раннего таймера.

Контекст ISR -При возврате из аппаратного таймера мы удаляем головной узел и вызываем аппаратный таймер со следующим узлом.

Pro: тратить короткое время во время ISR. Это не искажает время. Запускайте аппаратный таймер только при необходимости, чтобы сэкономить электроэнергию.

Против: возможная проблема с параллелизмом, поскольку и ISR, и поток TimerCreate работают с одним и тем же списком ссылок. Меня беспокоит возможное состояние гонки. Думаю, мне нужно установить минимальное время, таймер можно установить на.

Я приветствую любой вклад в этот дизайн.

...