Tue May 09 2006 12:23, Kirill Frolov wrote to Vladimir Vassilevsky:
KF> Почему бы не пойти с другого конца. Инаписать HAL под конкретную KF> задачу. А какой там будет таймер с какими режимами -- вопрос этого HAL. Почему бы сразу не написать задачи на все конкретные случаи жизни :) По этой же причине не получается сделать универсальный HAL.
KF> Таймер меняется путём смены всего HAL. Практически нужно HAL под целевое KF> железо и один под эмуляцию.
Универсальный HAL возможно сделать не как интерфейс к специализированному железу, а как средство создания произвольных машин состояний для махания пинами. Возможно, с какими-то стандартными блоками. Железо должно предоставлять возможность реализовывать произвольные машины.
KF> Это не снимает необходимость написания -его либо, зато вводит совсем KF> не единый и не совместимый, но понятный интерфейс. Что по сути более KF> правильно.
Слишком много особенностей, характерных для данного конкретного железа. Если ими не пользоваться, получится примитивно и неэффективно. Пример: таймер может быть N-фазным.
KF> Разный HAL для разной аппаратной реализации и одинаковая KF> логика во всех случаях. Тот же тахометр. Функция сложить и поделить -- KF> она аппаратно-независима.
От того же cчетчика, который в тахометре, может крутиться куча других событий, не имеющих отношения к тахометру.
VLV
"Клянусь всем тем, во что когда-либо верили дураки" (с) Вальтер Скотт