Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ISR в µC/OS-II
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Fat Robot
нашел такую вот сентенцию в книге:

3.09 Interrupts under µC/OS-II
µC/OS-II requires that an Interrupt Service Routine (ISR) be written in assembly language.

Нигде более никаких разъяснений по этому поводу не дается.

Может быть кто-то знает, что это за неприятное требование чем оно продиктовано и есть ли методика писания ISR на С.

Спасибо.
Andy Mozzhevilov
Цитата(Fat Robot @ May 17 2006, 13:21) *
нашел такую вот сентенцию в книге:

3.09 Interrupts under µC/OS-II
µC/OS-II requires that an Interrupt Service Routine (ISR) be written in assembly language.

Нигде более никаких разъяснений по этому поводу не дается.

Может быть кто-то знает, что это за неприятное требование чем оно продиктовано и есть ли методика писания ISR на С.

Спасибо.


Это вроде как связано с ручным сохранением контекста при входе в isr. Поскольку в книге ucos рассматриватся на примере х86 и борланд Ц, то там надо было делать так.
Нужно ли это делать на конкретной платформе, зависит от этой платформы и компилятора, и возможно, порта ОС на эту платформу.
Я под uCOS писал для Fujitsu MB90 и ARM7 полностью на Ц.
Fat Robot
Спасибо. Буду ковырять. Попрбую повторить Ваш позитивный опыт.
ig_z
Цитата(Andy Mozzhevilov @ May 17 2006, 11:00) *
Нужно ли это делать на конкретной платформе, зависит от этой платформы и компилятора, и возможно, порта ОС на эту платформу.
Я под uCOS писал для Fujitsu MB90 и ARM7 полностью на Ц.


IAR мсп, встроенне языковые расширения посволяют обойтись без асм. Портил юкос и сцмртос.
Yra
Советую заглянуть на сайт микриума (www.micrium.com) там куча портов этой операционки под разные процессоры и компиляторы. ISR, хотя-бы
применительно к системному таймеру обычно находится в OS_CPU_C.C
Эту ISR и можно взять за основу (или весь порт целиком)
Fat Robot
Цитата(Yra @ May 20 2006, 22:36) *
Советую заглянуть на сайт микриума (www.micrium.com) там куча портов этой операционки под разные процессоры и компиляторы. ISR, хотя-бы
применительно к системному таймеру обычно находится в OS_CPU_C.C
Эту ISR и можно взять за основу (или весь порт целиком)


да что Вы говорите!! а я-то, дурак, пытаюсь в документацию вникнуть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.