
¿î¿µÃ¼Á¦ÀÇ ¿ø¸®´Â ¾ó¸¶³ª º¹ÀâÇÒ±î? ÀÌ Ã¥Àº ÀÛ°í °£´ÜÇÑ ÀÓº£µðµå ¿î¿µÃ¼Á¦¸¦ ¸¸µé¾î º¸¸é¼ ¿î¿µÃ¼Á¦ÀÇ ¿ø¸®¸¦ ÀÍÈú ¼ö ÀÖµµ·Ï ±¸¼ºÇÑ Ã¥À¸·Î, ¿î¿µÃ¼Á¦¶ó´Â °ÍÀ» Å©°í º¹ÀâÇÏ°í ¾î·Æ°í ¹üÁ¢ÇÒ ¼ö ¾ø´Â Á¸Àç¶ó°í ÀνÄÇß´ø »ç¶÷µéÀÇ µÎ·Á¿òÀ» ±ú´Âµ¥ µµ¿òÀÌ µÇ´Â Ã¥ÀÌ´Ù. ºÒÇÊ¿äÇÑ ¿î¿µÃ¼Á¦ ÀÌ·Ð ¼³¸íÀº À̷м¿¡ ¸Ã±â¸é¼ ´ã¹éÇÏ°Ô °³¹ß¸¸À» À§ÁÖ·Î ¼³¸íÇϰí ÀÖ´Â °ÍÀÌ Æ¯Â¡ÀÌ´Ù.
ÄÚµùÀ» ÇÏ¸é¼ ÀÛµ¿ ¹æ½ÄÀ» ÆÄ¾ÇÇÏ´Â °úÁ¤À» ÅëÇØ ¿î¿µÃ¼Á¦ÀÇ ÀÌ·ÐÀ» Å͵æÇÒ ¼ö ÀÖ´Ù. ÀÓº£µðµå ARM ÇÁ·Î¼¼¼ ±â¹Ý¿¡¼ ¿î¿µÃ¼Á¦¸¦ °³¹ßÇÏ´Â °úÁ¤À» ¼³¸íÇϰí ÀÖÀ¸¸ç, ARM ¾ÆÅ°ÅØÃ³ÀÇ ±âº», ºÎÆ®·Î´õ ÀçȰ¿ë, ÄÁÅØ½ºÆ® ½ºÀ§Äª, ¿ÜºÎ ÀÎÅÍ·´Æ® Á¦¾î, ¿¡¹Ä·¹ÀÌÅÍ¿ë ½Ç½À ÄÚµå µîÀÇ ³»¿ëÀ» ´Ù·ç°í ÀÖ´Ù.

ÀúÀÚ : À̸¸¿ì
¼þ½Ç´ëÇб³ ÄÄÇ»ÅÍÇкθ¦ Á¹¾÷Çϰí, »ï¼ºÀüÀÚ ¼ÒÇÁÆ®¿þ¾î ¸â¹ö½Ê¿¡¼ ¸®´ª½º µð¹ÙÀ̽º µå¶óÀ̹ö, ÀÓº£µðµå ¿î¿µÃ¼Á¦, ºÐ»êó¸® °Ë»ö¿£Áø µîÀ» °³¹ßÇß´Ù. Áö±ÝÀº Æó°£µÈ ¡ºÇÁ·Î±×·¥ ¼¼°è¡»¿¡ ¸®´ª½º °ü·Ã °Á¸¦ ´Ù¼ö ¿¬ÀçÇß°í, ÇöÀç´Â »ï¼ºÀüÀÚ ¹ÝµµÃ¼ ÃѰý¿¡ ±Ù¹«ÇÑ´Ù.

ÃßõÀÇ ±Û
ÁöÀºÀÌÀÇ ±Û
1Àå ÀÓº£µðµå ¿î¿µÃ¼Á¦
1.1 ¿î¿µÃ¼Á¦
1.1.1 ÇÁ·Î¼¼½º °ü¸®
1.1.2 ÀúÀåÀåÄ¡ °ü¸®
1.1.3 ³×Æ®¿öÅ·
1.1.3 »ç¿ëÀÚ °ü¸®
1.1.5 µð¹ÙÀ̽º µå¶óÀ̹ö
1.2 ÀÓº£µðµå ¿î¿µÃ¼Á¦
1.3 ³ªºô´ª½º
1.4 ½Ç½À : ÀÓº£µðµå °³¹ß ȯ°æ ±¸¼º
1.4.1 ¸ñÇ¥ Ç÷§Æû Á¤Çϱâ
1.4.2 ¸®´ª½º¿¡¼ Å©·Î½º ÄÄÆÄÀÏ È¯°æ ¼³Á¤
1.4.3 À©µµ¿¡¼ ÀÓº£µðµå °³¹ß ȯ°æ ±¸¼º
1.5 Á¤¸®
2Àå ºÎÆÃÇϱâ
2.1 °³¹ßº¸µå ¼±Á¤Çϱâ
2.1.1 EX-X5 º¸µå
2.2 ÀÌÁöº¸µå¿¡ ³ªºô´ª½º À̹ÌÁö¸¦ ¿Ã¸®´Â ¹æ¹ý
2.3 ¿¡¹Ä·¹ÀÌÅÍ È¯°æ ±¸¼º
2.3.1 qemu
2.3.2 u-boot ¼³Ä¡
2.4 ½Ç½À : ÀÌÁöº¸µå¿¡¼ hello world¸¦ Ãâ·ÂÇÏÀÚ
2.4.1 ÀÌÁöºÎÆ®ÀÇ ¼Ò½ºÄÚµå ÀçȰ¿ë
2.4.2 Ä¿³Î À̹ÌÁö ºÎÆÃÇϱâ
2.4.3 ¸µÄ¿ ½ºÅ©¸³Æ® ¼öÁ¤
2.5 ½Ç½À : ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ hello world¸¦ Ãâ·ÂÇÏÀÚ
2.5.1 UART ÁÖ¼Ò ¼öÁ¤
2.5.2 ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ ºÎÆÃÇϱâ
2.5.3 uImage ¸¸µé±â
2.5.4 ·¥ µð½ºÅ© À̹ÌÁö ¸¸µé±â
2.5.5 Ç÷¡½Ã À̹ÌÁö ¸¸µé¾î ºÎÆÃÇϱâ
2.6 ½Ç½À : À©µµ ȯ°æ¿¡¼ ¿¡¹Ä·¹ÀÌÅÍ ½ÇÇà½Ã۱â
2.6.1 ½Ã±×À©¿¡¼ Ç÷¡½Ã À̹ÌÁö ¸¸µé±â
2.6.2 À©µµ¿ë ¿¡¹Ä·¹ÀÌÅÍ ½ÇÇà
2.7 Á¤¸®
3Àå LED Äѱâ
3.1 ºÎÆ®·Î´õ...ÃßõÀÇ ±Û
ÁöÀºÀÌÀÇ ±Û
1Àå ÀÓº£µðµå ¿î¿µÃ¼Á¦
1.1 ¿î¿µÃ¼Á¦
1.1.1 ÇÁ·Î¼¼½º °ü¸®
1.1.2 ÀúÀåÀåÄ¡ °ü¸®
1.1.3 ³×Æ®¿öÅ·
1.1.3 »ç¿ëÀÚ °ü¸®
1.1.5 µð¹ÙÀ̽º µå¶óÀ̹ö
1.2 ÀÓº£µðµå ¿î¿µÃ¼Á¦
1.3 ³ªºô´ª½º
1.4 ½Ç½À : ÀÓº£µðµå °³¹ß ȯ°æ ±¸¼º
1.4.1 ¸ñÇ¥ Ç÷§Æû Á¤Çϱâ
1.4.2 ¸®´ª½º¿¡¼ Å©·Î½º ÄÄÆÄÀÏ È¯°æ ¼³Á¤
1.4.3 À©µµ¿¡¼ ÀÓº£µðµå °³¹ß ȯ°æ ±¸¼º
1.5 Á¤¸®
2Àå ºÎÆÃÇϱâ
2.1 °³¹ßº¸µå ¼±Á¤Çϱâ
2.1.1 EX-X5 º¸µå
2.2 ÀÌÁöº¸µå¿¡ ³ªºô´ª½º À̹ÌÁö¸¦ ¿Ã¸®´Â ¹æ¹ý
2.3 ¿¡¹Ä·¹ÀÌÅÍ È¯°æ ±¸¼º
2.3.1 qemu
2.3.2 u-boot ¼³Ä¡
2.4 ½Ç½À : ÀÌÁöº¸µå¿¡¼ hello world¸¦ Ãâ·ÂÇÏÀÚ
2.4.1 ÀÌÁöºÎÆ®ÀÇ ¼Ò½ºÄÚµå ÀçȰ¿ë
2.4.2 Ä¿³Î À̹ÌÁö ºÎÆÃÇϱâ
2.4.3 ¸µÄ¿ ½ºÅ©¸³Æ® ¼öÁ¤
2.5 ½Ç½À : ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ hello world¸¦ Ãâ·ÂÇÏÀÚ
2.5.1 UART ÁÖ¼Ò ¼öÁ¤
2.5.2 ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ ºÎÆÃÇϱâ
2.5.3 uImage ¸¸µé±â
2.5.4 ·¥ µð½ºÅ© À̹ÌÁö ¸¸µé±â
2.5.5 Ç÷¡½Ã À̹ÌÁö ¸¸µé¾î ºÎÆÃÇϱâ
2.6 ½Ç½À : À©µµ ȯ°æ¿¡¼ ¿¡¹Ä·¹ÀÌÅÍ ½ÇÇà½Ã۱â
2.6.1 ½Ã±×À©¿¡¼ Ç÷¡½Ã À̹ÌÁö ¸¸µé±â
2.6.2 À©µµ¿ë ¿¡¹Ä·¹ÀÌÅÍ ½ÇÇà
2.7 Á¤¸®
3Àå LED Äѱâ
3.1 ºÎÆ®·Î´õ ÄÚµå ÀçȰ¿ë
3.2 ½Ç½À : 1Ãʸ¶´Ù LED¸¦ ÄÑ º¸ÀÚ
3.2.1 ÀÌÁöºÎÆ®¿¡¼ LED °ü·Ã ÄÚµå ºÐ¼®
3.2.2 ³ªºô´ª½º¿¡ LED Á¡¸ê ÄÚµå Ãß°¡
3.3 Á¤¸®
4Àå exception vector table ±¸¼ºÇϱâ
4.1 ARMÀÇ exception°ú ÇÁ·Î¼¼¼ µ¿ÀÛ ¸ðµå
4.2 ARMÀÇ exception vector table
4.3 ½Ç½À : ÀÌÁöºÎÆ®¸¦ ¼öÁ¤ÇÏ¿© exception Çڵ鸵 Çϱâ
4.4 ½Ç½À : u-boot¸¦ ¼öÁ¤ÇÏ¿© exception Çڵ鸵 Çϱâ
4.5 Á¤¸®
5Àå Software Interrupt Handler ±¸ÇöÇϱâ
5.1 ½ºÅÃÀ» ÀÌ¿ëÇÑ ISR°ú ŽºÅ© °£ÀÇ ÄÁÅØ½ºÆ® ½ºÀ§Äª
5.1.1 ISR
5.1.2 ŽºÅ©-ISR °£ ÄÁÅØ½ºÆ® ½ºÀ§Äª
5.2 ARM ÇÁ·Î¼¼¼ÀÇ ·¹Áö½ºÅÍ
5.2.1 ½ºÅà Æ÷ÀÎÅÍ
5.2.2 ¸µÅ© ·¹Áö½ºÅÍ
5.2.3 spsr
5.3 ½Ç½À : Software Interrupt Hanlding
5.3.1 ½ÇÁ¦ ÇÁ·Î±×·¥Àº ·¹Áö½ºÅ͵éÀ» ¾î¶»°Ô »ç¿ëÇϴ°¡
5.3.2 ŽºÅ©-ISR °£ ÄÁÅØ½ºÆ® ½ºÀ§Äª ÄÚµå ±¸Çö
5.3.3 main ÇÔ¼öÀÇ ¼öÁ¤
5.3.4 ½Ã½ºÅÛ ÄÝ ¹øÈ£ÀÇ ÃßÃâ
5.4 Á¤¸®
6Àå IRQ Çڵ鷯 ±¸Çö : OS ŸÀÌ¸Ó »ç¿ëÇϱâ
6.1 PXA255ÀÇ ÀÎÅÍ·´Æ® ÄÁÆ®·Ñ·¯ °èÃþ
6.1.1 OS ŸÀ̸Ó
6.1.2 ÀÎÅÍ·´Æ® ÄÁÆ®·Ñ·¯ °èÃþ
6.1.3 ICMR
6.1.4 ICLR
6.1.5 ICCR
6.1.6 ICFP, ICIP
6.1.7 ICPR
6.1.8 ÀÎÅÍ·´Æ®ÀÇ Á¾·ù
6.2 msleep() ÇÔ¼ö ºÐ¼®
6.3 PXA255ÀÇ OS ŸÀÌ¸Ó ·¹Áö½ºÅÍ °èÃþ
6.3.1 OSMR
6.3.2 OSCR
6.3.3 OIER
6.3.4 OSSR
6.4 ½Ç½À : IRQ Çڵ鷯 ±¸Çö - OS ŸÀ̸Ó
6.4.1 OS ŸÀÌ¸Ó ÃʱâÈ ÇÔ¼ö ÀÛ¼º
6.4.2 OS ŸÀÌ¸Ó ½ÃÀÛ ÇÔ¼ö ÀÛ¼º
6.4.3 Ä¿³Î main ÇÔ¼ö ¼öÁ¤
6.4.4 IRQ Çڵ鷯 ÇÔ¼ö ¼öÁ¤
6.4.5 Àüü ÀÛ¾÷ ÄÚµå
6.4.6 ŽºÅ©-ISR °£ ÄÁÅØ½ºÆ® ½ºÀ§Äª ÄÚµå ÀÛ¼º
6.4.7 ARM9 ¾ÆÅ°ÅØÃ³ÀÇ ÆÄÀÌÇÁ¶óÀÎ
6.4.8 exception Çڵ鷯¿¡¼ º¹±Í ÁÖ¼ÒÀÇ °áÁ¤
6.4.9 OS ŸÀ̸Ӱ¡ ¹ß»ýµÇ´Â ¼ø¼
6.4.10 ºôµå¿Í Å×½ºÆ®
6.5 Á¤¸®
7Àå ¸Þ¸ð¸® ¸Ê ±¸¼º
7.1 ³ªºô´ª½ºÀÇ ¸Þ¸ð¸® ¸Ê
7.2 ½Ç½À : ³ªºô´ª½º Ä¿³ÎÀÇ ½ºÅà ÁÖ¼Ò ÃʱâÈ
7.3 ½Ç½À : ½ºÅà ÃʱâÈ ÁÖ¼Ò È®ÀÎÇϱâ
7.4 Á¤¸®
8Àå ¸Þ¸ð¸® °ü¸®ÀÚ ±¸ÇöÇϱâ
8.1 ÀÓº£µðµå ¿î¿µÃ¼Á¦¿¡¼ÀÇ »ç¿ëÀÚ Å½ºÅ©
8.1.1 ŽºÅ©
8.1.2 ¸Þ¸ð¸® °ü¸®ÀÚ
8.2 ½Ç½À : ¸Þ¸ð¸® °ü¸®ÀÚ Á¤ÀÇ
8.2.1 ÀÚÀ¯ ¸Þ¸ð¸® ºí·Ï Á¤ÀÇ
8.2.2 ¸Þ¸ð¸® °ü¸®ÀÚ ÇÔ¼ö Á¤ÀÇ
8.3 ½Ç½À : ¸Þ¸ð¸® °ü¸®ÀÚ ÇÔ¼ö ±¸Çö
8.3.1 ¸Þ¸ð¸® °ü¸®ÀÚ Ä¿³Î Àü¿ª º¯¼ö ¼±¾ð
8.3.2 ¸Þ¸ð¸® ºÐÇÒ Å©±â ¼³Á¤
8.3.3 mem_init() ÇÔ¼ö ¼³¸í
8.3.4 mem_alloc() ÇÔ¼ö ¼³¸í
8.3.5 navilnux.h ÆÄÀÏ ¼öÁ¤
8.3.6 Makefile ¼öÁ¤
8.4 Á¤¸®
9Àå ŽºÅ© °ü¸®ÀÚ ±¸ÇöÇϱâ
9.1 ŽºÅ© ÄÁÆ®·Ñ ºí·Ï
9.1.1 ŽºÅ© ÄÁÅØ½ºÆ® Á¤º¸
9.2 »ç¿ëÀÚ Å½ºÅ©
9.2.1 »ç¿ëÀÚ Å½ºÅ©ÀÇ µî·Ï°ú ·Îµù
9.3 ½Ç½À : ŽºÅ© °ü¸®ÀÚ Á¤ÀÇ
9.3.1 ŽºÅ© ÄÁÆ®·Ñ ºí·Ï Á¤ÀÇ
9.3.2 »ç¿ëÀÚ Å½ºÅ©ÀÇ ÄÁÅØ½ºÆ® ÀÚ·áÇü Å©±â
9.3.3 ŽºÅ© °ü¸®ÀÚ ±¸Á¶Ã¼ Á¤ÀÇ
9.4 ½Ç½À : ŽºÅ© °ü¸®ÀÚ ÇÔ¼ö ±¸Çö
9.4.1 ŽºÅ© °ü¸®ÀÚ Ä¿³Î Àü¿ª º¯¼ö ¼±¾ð
9.4.2 cpsrÀÇ Ãʱ⠰ª ¼³Á¤
9.4.3 task_init() ÇÔ¼ö
9.4.4 task_create() ÇÔ¼ö
9.5 ½Ç½À : »ç¿ëÀÚ Å½ºÅ©ÀÇ Ãß°¡
9.5.1 »ç¿ëÀÚ Å½ºÅ© ÇÔ¼öÀÇ Ãß°¡
9.5.2 navilnux.h ÆÄÀÏ ¼öÁ¤
9.5.3 navilnux.c ÆÄÀÏ ¼öÁ¤ - navilnux_init() ÇÔ¼ö Ãß°¡
9.5.4 main() ÇÔ¼ö ¼öÁ¤
9.5.5 Makefile ¼öÁ¤
9.6 Á¤¸®
10Àå ÄÁÅØ½ºÆ® ½ºÀ§Äª ±¸ÇöÇϱâ
10.1 ÄÁÅØ½ºÆ® ½ºÀ§Äª°ú ½ºÄÉÁÙ·¯
10.1.1 ¸ÖƼŽºÅ·
10.1.2 ÄÁÅØ½ºÆ® ½ºÀ§Äª
10.1.3 ½ºÄÉÁÙ·¯
10.2 ½Ç½À : ÄÁÅØ½ºÆ® ½ºÀ§Äª ±¸Çö
10.2.1 IRQ Çڵ鷯 ¼öÁ¤
10.2.2 ŽºÅ© ÄÁÅØ½ºÆ® ¹é¾÷
10.2.3 IRQ Çڵ鷯 ÇÔ¼ö¿¡ ÁøÀÔ
10.2.4 ŽºÅ© ÄÁÅØ½ºÆ® º¹±¸
10.3 ½ºÄÉÁÙ·¯ ±¸Çö
10.3.1 ´Ù¸¥ ¿î¿µÃ¼Á¦ÀÇ ½ºÄÉÁÙ¸µ Á¤Ã¥
10.3.2 °¡Àå ±âº»ÀûÀÎ ½ºÄÉÁÙ·¯
10.3.3 ¶ó¿îµå·Îºó ½ºÄÉÁÙ·¯ ±¸Çö
10.3.4 ½ºÄÉÁÙ·¯ ÃʱâÈ ÄÚµå ÀÛ¼º
10.3.5 Ä¿³Î main() ÇÔ¼ö ¼öÁ¤
10.3.6 OS ŸÀÌ¸Ó Çڵ鷯 ¼öÁ¤
10.3.7 navilnux.c Àüü ³»¿ë ´Ù½Ã º¸±â
10.3.8 »ç¿ëÀÚ Å½ºÅ© ¼öÁ¤
10.3.9 ºôµå¿Í Å×½ºÆ®
10.4 ½Ç½À : »ç¿ëÀÚ ½ºÅà ÇÒ´ç °ËÁõ
10.5 Á¤¸®
11Àå ¿ÜºÎ ÀÎÅÍ·´Æ®
11.1 PXA255ÀÇ GPIO ·¹Áö½ºÅÍ °èÃþ
11.1.1 ´ëÇ¥ÀûÀÎ ¿ÜºÎ ÀÎÅÍ·´Æ® : ÀÔ·Â ÀåÄ¡
11.1.2 GPIO
11.1.3 PXA255 ĨÀÇ GPIO ÀÎÅÍ·´Æ® ó¸®
11.1.4 Edge Detect
11.1.5 PXA255 Ĩ¿¡¼ GPIO¸¦ ¼³Á¤ÇÏ´Â ·¹Áö½ºÅ͵é
11.1.6 GPDR
11.1.7 GFER°ú GRER
11.1.8 GEDR
11.1.9 GAFR
11.1.10 ¹öư ȸ·Î ¿¬°á
11.2 GPIO ÀÎÅÍ·´Æ® ó¸®
11.2.1 GPIO ÃʱâÈ ÄÚµå ÀÛ¼º
11.2.2 ÃʱâÈ ÇÔ¼ö Ãß°¡
11.2.3 ÀÎÅÍ·´Æ® ó¸® ÄÚµå Ãß°¡
11.2.4 ¼öÁ¤µÈ Àüü ÄÚµå
11.2.5 Å×½ºÆ®
11.3 Á¤¸®
12Àå ½Ã½ºÅÛ ÄÝ ±¸ÇöÇϱâ
12.1 ¸®´ª½ºÀÇ ½Ã½ºÅÛ ÄÝ
12.1.1 fork() ½Ã½ºÅÛ ÄÝ
12.2 ½Ç½À : ½Ã½ºÅÛ ÄÝ °èÃþ Ãß°¡
12.2.1 ½Ã½ºÅÛ ÄÝ Ä¿³Î ÇÔ¼ö ÀÛ¼º
12.2.2 ½Ã½ºÅÛ ÄÝ ÃʱâÈ ÇÔ¼ö È£Ãâ
12.2.3 ½Ã½ºÅÛ ÄÝ °ü·Ã Çì´õ ÆÄÀÏ ÀÛ¼º
12.2.4 »ç¿ëÀÚ Å½ºÅ© ÇÔ¼ö ¼öÁ¤
12.2.5 ½Ã½ºÅÛ ÄÝ ·¡ÆÛ ÇÔ¼ö ÀÛ¼º
12.2.6 Software InterruptÀÇ ISR ¼öÁ¤
12.2.7 Makefile ¼öÁ¤
12.3 ½Ç½À : ½Ã½ºÅÛ ÄÝ Ãß°¡ ÀýÂ÷
12.4 Á¤¸®
13Àå ŽºÅ© °£ Åë½Å ±¸ÇöÇϱâ
13.1 IPC(Inter-Process Communication)
13.1.1 ÆÄÀÌÇÁ
13.1.2 FIFO
13.1.3 ¸Þ½ÃÁö Å¥
13.1.4 °øÀ¯ ¸Þ¸ð¸®
13.1.5 ÀÓº£µðµå ¿î¿µÃ¼Á¦ÀÇ ITC
13.2 ÄÁÅØ½ºÆ® ½ºÀ§Äª ½Ã½ºÅÛ ÄÝ ¸¸µé±â
13.2.1 ºí·ÎÅ· »óÅÂ
13.2.2 »ç¿ëÀÚ Å½ºÅ©¿¡¼ È£Ãâ °¡´ÉÇÑ ÄÁÅØ½ºÆ® ½ºÀ§Äª ½Ã½ºÅÛ ÄÝ ±¸Çö
13.2.3 ½ºÄÉÁÙ·¯ ½Ã½ºÅÛ ÄÝ Ãß°¡
13.2.4 entry.S ÆÄÀÏ ¼öÁ¤
13.2.5 »ç¿ëÀÚ Å½ºÅ©¿¡¼ ½ºÄÉÁÙ·¯ È£Ãâ Å×½ºÆ®
13.3 ½Ç½À : ¸Þ½ÃÁö °ü¸®ÀÚ Á¤ÀÇ
13.3.1 navilnux_msg.h ÆÄÀÏ ÀÛ¼º
13.3.2 ÀÚÀ¯ ¸Þ½ÃÁö ºí·Ï
13.3.3 ¸Þ½ÃÁö °ü¸®ÀÚ
13.3.4 ¸Þ½ÃÁö °ü¸®ÀÚ Á¦¾î ÇÔ¼öµé
13.4 ½Ç½À : ¸Þ½ÃÁö °ü¸®ÀÚ ÇÔ¼ö ±¸Çö
13.4.1 msg_itc_send(), msg_itc_get() ÇÔ¼ö ±¸Çö
13.4.2 navilnux.h ¼öÁ¤
13.4.3 navilnux_init() ÇÔ¼ö ¼öÁ¤
13.5 ½Ç½À : ½Ã½ºÅÛ ÄÝ °èÃþ¿¡ ITC ÇÔ¼ö µî·Ï
13.5.1 ½Ã½ºÅÛ ÄÝ ¹øÈ£ Ãß°¡
13.5.2 ½Ã½ºÅÛ ÄÝ ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ ¼±¾ð
13.5.3 ½Ã½ºÅÛ ÄÝ ÇÔ¼ö º»Ã¼ ÀÛ¼º
13.5.4 ½Ã½ºÅÛ ÄÝ ·¡ÆÛ ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ ¼±¾ð
13.5.5 ½Ã½ºÅÛ ÄÝ ¾î¼Àºí¸®¾î ·¡ÆÛ ÇÔ¼ö ÀÛ¼º
13.5.6 ½Ã½ºÅÛ ÄÝ C ·¡ÆÛ ÇÔ¼ö ÇÁ·ÎÅäŸÀÔ ¼±¾ð
13.5.7 ½Ã½ºÅÛ ÄÝ C ·¡ÆÛ ÇÔ¼ö º»Ã¼ ÀÛ¼º
13.5.8 ITC Å×½ºÆ®
13.6 Á¤¸®
14 µ¿±âÈ ±¸ÇöÇϱâ
14.1 ¼¼¸¶Æ÷¾î
14.1.1 ¼¼¸¶Æ÷¾î ±¸ÇöÇϱâ
14.1.2 ¸Þ½ÃÁö °ü¸®ÀÚ ÄÚµå ¼öÁ¤
14.1.3 ¼¼¸¶Æ÷¾î ÇÔ¼ö ±¸Çö
14.1.4 »õ·Î¿î ½Ã½ºÅÛ ÄÝ ¹øÈ£¸¦ ¼¼¸¶Æ÷¾î¿¡ ÇÒ´ç
14.1.5 ½Ã½ºÅÛ ÄÝ ÇÔ¼öÀÇ ÇÁ·ÎÅäŸÀÔ ¼±¾ð
14.1.6 ½Ã½ºÅÛ ÄÝ ÇÔ¼ö ÀÛ¼º
14.1.7 ½Ã½ºÅÛ ÄÝ ·¡ÆÛ ÇÔ¼öÀÇ ÇÁ·ÎÅäŸÀÔ ¼±¾ð
14.1.8 ½Ã½ºÅÛ ÄÝ ¾î¼Àºí¸®¾î ·¡ÆÛ ÇÔ¼ö ÀÛ¼º
14.1.9 ½Ã½ºÅÛ ÄÝ C ¾ð¾î ·¡ÆÛ ÇÔ¼ö ÀÛ¼º
14.1.10 »ç¿ëÀÚ Å½ºÅ©¿¡¼ ¼¼¸¶Æ÷¾î »ç¿ë Å×½ºÆ®
14.2 ¹ÂÅØ½º
14.2.1 ¹ÙÀ̳ʸ® ¼¼¸¶Æ÷¾î¿Í ¹ÂÅØ½ºÀÇ Â÷ÀÌ
14.2.2 ½Ç½À : ¹ÂÅØ½º ±¸ÇöÇϱâ
14.2.3 ¸Þ½ÃÁö °ü¸®ÀÚ ¼öÁ¤
14.2.4 ¹ÂÅØ½º ÇÔ¼ö ±¸Çö
14.2.5 ¹ÂÅØ½º¿¡ ½Ã½ºÅÛ ÄÝ ¹øÈ£ ÇÒ´ç
14.2.6 ½Ã½ºÅÛ ÄÝ ÇÔ¼ö ÀÛ¼º
14.2.7 ½Ã½ºÅÛ ÄÝ ·¡ÆÛ ÇÔ¼ö ÀÛ¼º
14.2.8 »ç¿ëÀÚ Å½ºÅ©¿¡¼ ¹ÂÅØ½º Å×½ºÆ®
14.3 ½Ç½À : ½Ã°£ Áö¿¬ ÇÔ¼ö ±¸ÇöÇϱâ
14.3.1 Ä¿³Î Ä«¿îÅÍ Ãß°¡
14.3.2 sleep() ÇÔ¼ö ±¸Çö
14.3.3 ŽºÅ© ÄÁÆ®·Ñ ºí·Ï ¼öÁ¤
14.3.4 sleep() ÇÔ¼ö ÀÛ¼º
14.3.5 ¼öÁ¤µÈ sleep() ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ ¹ÂÅØ½º Å×½ºÆ®
14.4 Á¤¸®
15 ¸Þ¸ð¸® µ¿Àû ÇÒ´ç ±¸ÇöÇϱâ
15.1 ¸Þ¸ð¸® µ¿Àû ÇÒ´ç ¼³°è
15.1.1 µ¿Àû ÇÒ´ç¿¡ »ç¿ëÇÒ ¸Þ¸ð¸® ¿µ¿ª
15.1.2 ±¸ÇöÀÇ ¹üÀ§
15.1.3 ¸Þ¸ð¸® Ç®
15.2 ½Ç½À : ¸Þ¸ð¸® µ¿Àû ÇÒ´ç ±¸Çö
15.2.1 ¸Þ¸ð¸® °ü¸®ÀÚ ¼öÁ¤
15.2.2 µ¿Àû ÇÒ´ç Àü·«
15.2.3 free() ÇÔ¼ö ±¸Çö
15.2.4 malloc() ÇÔ¼ö ±¸Çö
15.2.5 ½Ã½ºÅÛ ÄÝ¿¡ µî·Ï
15.2.6 ¸Þ¸ð¸® µ¿Àû ÇÒ´ç Å×½ºÆ®
15.3 Á¤¸®
16 µð¹ÙÀ̽º µå¶óÀ̹ö ±¸ÇöÇϱâ
16.1 µð¹ÙÀ̽º µå¶óÀ̹ö
16.1.1 ¸®´ª½º ij¸¯ÅÍ µð¹ÙÀ̽º µå¶óÀ̹ö °èÃþÀ» Â÷¿ë
16.2 ½Ç½À : µð¹ÙÀ̽º µå¶óÀ̹ö °ü¸®ÀÚ Á¤ÀÇ
16.2.1 fops ±¸Á¶Ã¼
16.2.2 ÀÚÀ¯ µð¹ÙÀ̽º µå¶óÀ̹ö ºí·Ï
16.3 ½Ç½À : µð¹ÙÀ̽º µå¶óÀ̹ö °ü¸®ÀÚ ±¸Çö
16.3.1 drv_init() ÇÔ¼ö
16.3.2 drv_register_drv() ÇÔ¼ö
16.3.3 ½Ã½ºÅÛ ÄÝ¿¡ µî·Ï
16.4 ½Ç½À : µð¹ÙÀ̽º µå¶óÀ̹ö Ãß°¡Çϱâ
16.4.1 LED¿Í ½ºÀ§Ä¡¸¦ µð¹ÙÀ̽º µå¶óÀ̹ö·Î Á¦¾î
16.4.2 IRQ Çڵ鷯 º¤Å͸¦ Ä¿³Î¿¡ Ãß°¡
16.4.3 read(), write() ÇÔ¼ö ±¸Çö
16.4.4 IRQ Çڵ鷯 ÇÔ¼ö
16.4.5 mydrv_open() ÇÔ¼ö
16.4.6 mydrv_close() ÇÔ¼ö
16.4.7 mydrv_read() ÇÔ¼ö
16.4.8 mydrv_write() ÇÔ¼ö
16.4.9 »ç¿ëÀÚ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ Ä¿³Î¿¡ µî·Ï
16.4.10 »ç¿ëÀÚ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ Å×½ºÆ®
16.5 Á¤¸®
17 ¸¶Ä¡¸ç
17.1 ÇÁ·ÎÁ§Æ® Á¾·á
17.2 ³ªºô´ª½ºÀÇ ÆÄÀÏ ±¸¼º
17.2.1 entry.S, navilnux.c, navilnux.h
17.2.2 navilnux_memory.c, navilnux_memory.h
17.2.3 navilnux_task.c, navilnux_task.h
17.2.4 navilnux_user.c, navilnux_user.h
17.2.5 navilnux_sys.c, navilnux_sys.h, syscalltbl.h, navilnux_lib.S, navilnux_clib.c, navilnux_lib.h
17.2.6 navilnux_msg.c, navilnux_msg.h
17.2.7 navilnux_drv.c, navilnux_drv.h, mydrv.c
17.3 ³ªºô´ª½ºÀÇ °èÃþ
17.4 ¸ÎÀ½¸»
17.4.1 ¿î¿µÃ¼Á¦ÀÇ °³³ä, ÀÌ·Ð ±×¸®°í ±¸Çö
17.4.2 ÀÓº£µðµå °³¹ß ȯ°æ¿¡ ´ëÇÑ °æÇè
17.4.3 ARM ¾ÆÅ°ÅØÃ³¿¡ ´ëÇÑ ´ë·«Àû ÀÌÇØ
17.4.4 ¸¶Ä¡¸ç
ã¾Æº¸±â
¾à¾îÇ¥

ÀÌ Ã¥Àº ÀÛ°í °£´ÜÇÑ ÀÓº£µðµå ¿î¿µÃ¼Á¦¸¦ ¸¸µé¾î º¸¸é¼ ¿î¿µÃ¼Á¦ÀÇ ¿ø¸®¸¦ °¡¸£ÃÄÁØ´Ù. ¾î·Á¿î Àü°ø ¼Àû¿¡³ª ³ª¿Ã ¹ýÇÑ ¼³¸íµéÀº Àá½Ã Á¦Ãĵΰí, ÀÏ´Ü ÄÚµùÀ» ÇÏ¸é¼ ÀÛµ¿ ¹æ½ÄÀ» ÆÄ¾ÇÇØ º¸¸é ÀÌ·Ð ¿ª½Ã ½±°Ô ÀÌÇØÇÏ°Ô µÈ´Ù. Çб³¿¡¼ ¹è¿î ¡®¿î¿µÃ¼Á¦ À̷С¯¸¸À¸·Î´Â ºÎÁ·ÇÑ ÇлýºÎÅÍ ¿î¿µÃ¼Á¦°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö ±Ã±ÝÇÑ »ç¶÷, ÀÓº£µðµå Æß¿þ¾î¸¦ °³¹ßÇØ¾ß ÇÏ´Â °³¹ßÀÚ¿¡ À̸£±â±îÁö, ÀÌ Ã¥À» µû¶ó°¡´Ù º¸¸é ¾î´Àµ¡ ÀÛÀº ¿î¿µÃ¼Á¦¸¦ ¿Ï¼ºÇÏ°Ô µÉ °ÍÀÌ´Ù.
- ARM ¾ÆÅ°ÅØÃ³ÀÇ ±âº»
- ºÎÆ®·Î´õ ÀçȰ¿ë
- exception Çڵ鸵
- ÄÁÅØ½ºÆ® ½ºÀ§Äª
- ¸Þ¸ð¸® °ü¸®
- ¿ÜºÎ ÀÎÅÍ·´Æ® Á¦¾î
- ½Ã½ºÅÛ ÄÝ
- ŽºÅ© °£ Åë½Å
- µ¿±âÈ
- µð¹ÙÀ̽º µå¶óÀ̹ö
- ¿¡¹Ä·¹ÀÌÅÍ¿ë ½Ç½À ÄÚµå
1~3ÀåÀº ÀÓº£µðµå ¿î¿µÃ¼Á¦¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸í°ú EZ-X5 º¸µåÀÇ ºÎÆÃ, LED Á¡¸ê µî °£´ÜÇÑ ÀÛ¾÷À» ÅëÇØ ÀÓº£µðµå °³¹ß¿¡ ÇÊ¿äÇÑ ±âº»ÀûÀΠȯ°æÀ» ±¸ÃàÇÑ´Ù. 4~6Àå¿¡¼´Â ARMÀÇ exception, µ¿ÀÛ ¸ðµå, ·¹Áö½ºÅÍ Á¶ÀÛ µîÀ» ¼³¸íÇÏ¸é¼ exception vector table°ú Software Interrupt Handler, IRQ Çڵ鷯(ŸÀ̸Ó) µîÀ» ±¸ÇöÇÑ´Ù. 7~10Àå¿¡¼´Â ¸Þ¸ð¸®¿Í ŽºÅ©¸¦ °ü¸®ÇÏ´Â °ü¸®ÀÚ ÇÔ¼ö¸¦ ±¸ÇöÇϰí, ¿©±â¿¡ ŽºÅ© ½ºÄÉÁÙ·¯¸¦ ÇÕÇÏ¿© ¸ÖƼŽºÅ· ¿î¿µÃ¼Á¦·Î ³ª¾Æ°¡´Â °úÁ¤À» ¼³¸íÇÑ´Ù.
11~13Àå¿¡¼´Â ÀÓº£µðµå ±â±â ¿ÜºÎÀÇ ÀÔ·ÂÀ» ó¸®ÇÏ´Â ¿ÜºÎ ÀÎÅÍ·´Æ®¿Í ¿î¿µÃ¼Á¦ÀÇ ±â´ÉÀ» Àϰü¼ºÀÖ°Ô Ãß°¡Çϱâ À§ÇÑ ½Ã½ºÅÛ ÄÝÀ» ±¸ÇöÇϸç, À̸¦ ¹ÙÅÁÀ¸·Î ŽºÅ© °£ Åë½Å ±â´ÉÀ» ±¸ÇöÇÑ´Ù. 14~16Àå¿¡¼´Â ½Ã½ºÅÛÀÇ Å©¸®Æ¼Äà ¼½¼Ç¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀ¸·Î ¼¼¸¶Æ÷¾î¿Í ¹ÂÅØ½º ±â´ÉÀ» ±¸ÇöÇϸç, »ç¿ëÀÚ Å½ºÅ©°¡ ¿äûÇÏ´Â ¸Þ¸ð¸®¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇÏ´Â ±â´É, ÀÓº£µðµå ±â±â¿¡ ¿¬°áµÈ °¢Á¾ ÀåÄ¡¸¦ Á¦¾îÇϱâ À§ÇÑ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ±¸ÇöÇÑ´Ù. 17Àå¿¡¼´Â ÀÌÁ¦²¯ ±¸ÇöÇÑ ¿î¿µÃ¼Á¦ÀÇ ÆÄÀÏ ±¸¼º°ú °èÃþµµ¸¦ ¼³¸íÇϸç Ã¥À» ¸¶¹«¸®ÇÑ´Ù.
