Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Захванал съм се тука с една Атмега16 на С
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=808
Страница 1 от 1

Автор:  Filo [ Съб Юни 25, 2005 4:16 pm ]
Заглавие:  Захванал съм се тука с една Атмега16 на С

Пиша дипломан работа на тема Операционни системи за реално време и имам тука една примерна ОС ит която се уча и на която ще трябва да направя подобрения, ама май се хвърлих малко на дълбоко с тази тема.

Та някой може ли да ми каже какво означава __attribute__ ((naked));
в следния код:
Код:
void SIG_OVERFLOW0 (void) __attribute__ ((naked));

SIGNAL(SIG_OVERFLOW0) {

   /*
      suspend the current active task
   */   
   asm (     
      "push __zero_reg__\n\t"
      "push __tmp_reg__\n\t"
      "in __tmp_reg__,__SREG__\n\t"
   ....   
}



Ясно ми е че се обработва прекъсване за препълване но тези две заклинания не са ми ясни:

__attribute__ ((naked));

и

SIGNAL(SIG_OVERFLOW0)

Автор:  danov [ Съб Юни 25, 2005 4:40 pm ]
Заглавие: 

Обикновенно тези подробности могат да се видят в документацията на компилатора и системната библиотека, които използваш.
Предполагам, че е посано за gcc, така че:
http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Function-Attributes.html#Function%20Attributes

И може да прочетеш първо документацията на системната библиотека, която предполагам е:
http://savannah.nongnu.org/projects/avr-libc/

Автор:  Реконструктор [ Нед Юни 26, 2005 11:49 am ]
Заглавие: 

То си пише - naked векторите са без пролог/епилог, генериран от компилатора.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/