ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=trap_init">trap_init</a>()

5.4. trap_init()

Æ®·¦Àº ÀÎÅÍ·´Æ®¿Í´Â ´Þ¸® Á¤ÇØÁø °÷À¸·Î ºÐ±âÇϵµ·Ï µÇ¾î ÀÖ°í ¹øÈ£·Î Á¤ÇØÁ® ÀÖ´Ù. ¾Æ·¡´Â i386¿¡¼­ Á¤ÇØÁ® ÀÖ´Â Æ®·¦ÀÇ ÀϺθ¦ ¿­°ÅÇÑ °ÍÀÌ´Ù.

  • 0 - divide_error

  • 1 - debug

  • 2 - nmi

  • 3 - int3

  • 4 - overflow

  • 5 - bounds

  • 6 - invalid_op

  • 7 - device_not_available

  • 8 - double_fault

  • 9 - coprocessor_segment_overrun

  • 10 - invalid_TSS

  • 11 - segment_not_present

  • 12 - stack_segment

  • 13 - general_protection

  • 14 - page_fault

  • 15 - spurious_interrupt_bug

  • 16 - coprocessor_error

  • 17 - alignment_check

  • 18 - machine_check

  • 19 - simd_coprocessor_error

trap_init()¿¡¼± ½Ã½ºÅÛ ÄÝÀ» À§ÇÑ ÃʱâÈ­µµ ½ÇÇàÇØ 0x80À» ½Ã½ºÅÛ ÄÝ¿¡ »ç¿ëÇϵµ·Ï ÇØ³õ´Â´Ù.

±×¸®°í CPU¸¦ ÃʱâÈ­ ÇÑ´Ù. CPU ÃʱâÈ­¿¡¼± ÆäÀÌÁö, gdt, ldt, idt, tss µîÀÌ ¼³Á¤µÇ°í À̸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â »óÅ·Π¸¸µé¾î º»°ÝÀûÀÎ Ä¿³Î ½ÇÇà¿¡ µé¾î°£´Ù. /var/log/dmesgÀÇ (6)¿¡ Ãâ·ÂµÈ ÇÑ ÁÙÀÌ CPUÀÇ ÃʱâÈ­¸¦ ÀǹÌÇÑ´Ù.

i386¿¡¼­ trapÀ» ÃʱâÈ­ÇÏ´Â ÇÔ¼öÀÎ _set_gate()´Â C.2.2Àý¸¦ ÂüÁ¶ Çϱ⠹ٶõ´Ù.

ARM ÇÁ·Î¼¼¼­ÀÇ trapÀº arch/arm/kernel/entry-armv.S³ª arch/arm/kernel/entry-armo.S¿¡ Á¤ÀǵǾî ÀÖ°í ³»¿ëÀº ´ÙÀ½°ú °°´Ù. ¾ÕÀÇ °ªÀº vectorÀÇ offsetÀ» ¸»ÇÑ´Ù.

  • 0x00000000 - reset

  • 0x00000004 - Undefined instruction

  • 0x00000008 - Software Interrupt(SWI)

  • 0x0000000C - Prefetch Abort(Instruction fetch memory abort)

  • 0x00000010 - Data Abort(Data Access memory abort)

  • 0x00000018 - IRQ(Interrupt)

  • 0x0000001C - FIQ(Fast Interrupt)

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.