¢À ºÎ·Ï ¿¹Á¦ ¹× ¼Ò½º ÇÁ·Î±×·¥Àº '»óÇ°°ü·Ã ÀÚ·á½Ç'¿¡ ÀÖ½À´Ï´Ù. ¢À °ü·Ã »çÀÌÆ® (ÁÖ) ÇÏÀ̹ö½º ¢À ÁÖ¿ä³»¿ë ¢À Á¦1Àå¿¡¼´Â ÀÓº£µðµå ½Ã½ºÅÛÀÇ °³¿ä¿Í Á¾·ù¸¦ ¼³¸íÇÏ¿´°í, ƯÈ÷ ÀÓº£µðµå ¸®´ª½ºÀÇ Àå․´ÜÁ¡À» ºÐ¼®ÇÏ¿´´Ù. Á¦2Àå¿¡¼´Â ¸®´ª½º Ä¿³ÎÀÇ ÄÄÆÄÀÏ °úÁ¤°ú ÀüüÀûÀÎ ºÐ¼®À» »ó¼¼È÷ ±â¼úÇÏ¿´´Ù. ƯÈ÷, ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼ Á¦°øÇÏ´Â ³×Æ®¿öÅ©ºÐ¾ßÀÇ ±âÃÊ¿Í ¼Ò½º ¼³¸íÀ» Ãß°¡ÇÏ¿´À¸¸ç, TCP/IP ÆÐŶÀÇ ¼Û¼ö½Å °úÁ¤À» µµ½ÄÀûÀ¸·Î ¼³¸íÇÏ¿´´Ù. ¶ÇÇÑ Ä¿³ÎÀ» ÇÁ·Î¼¼½º °ü¸®, ¸Þ¸ð¸® °ü¸®, ÆÄÀÏ °ü¸®, ³×Æ®¿öÅ© °ü¸® µîÀ¸·Î Å©°Ô ºÐ·ùÇÏ¿© ±â¼úÇÏ¿´´Ù. Á¦3Àå¿¡¼´Â ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼ µð¹ÙÀ̽º µå¶óÀ̹ö¸¦ ¼³°èÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¼³¸íÇÑ´Ù. ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼ µð¹ÙÀ̽º µå¶óÀ̹ö´Â Å©°Ô ¹®ÀÚ µð¹ÙÀ̽º µå¶óÀ̹ö(character device driver), ºí·Ï µð¹ÙÀ̽º µå¶óÀ̹ö(block device driver) ±×¸®°í ³×Æ®¿öÅ© µð¹ÙÀ̽º µå¶óÀ̹ö(network device driver)·Î ³ª´©¾îÁø´Ù. ƯÈ÷ ³×Æ®¿öÅ© µð¹ÙÀ̽º µå¶óÀ̹ö¿ë chipset·Î´Â 10Mbps CS8900À» »ç¿ëÇÏ¿© ¼³¸íÇÏ¿´´Ù. Á¦4Àå¿¡¼´Â StrongARM 1110¿¡ ´ëÇÑ Çϵå¿þ¾îÀûÀÎ ¼³¸í°ú °¢Á¾ ÀνºÆ®·°¼Ç¿¡ ´ëÇؼ ´Ù·ç¾ú´Ù. Çϵå¿þ¾îÀûÀÎ ³»¿ëÀ¸·Î´Â ÁÖº¯ ȸ·Î ¼³°è, ¸Þ¸ð¸® ¼³°è, µðÄÚµù µîÀ» ±â¼úÇÏ°í ÀÖ´Ù. ¶ÇÇÑ Á¦5Àå¿¡¼´Â ºÎÆ® ·Î´õ(BLOB : Boot Loader Object)¿¡ ´ëÇؼ ±× °úÁ¤°ú ¼Ò½ºÄڵ带 ºÐ¼®ÇÏ¿´´Ù. ±×¸®°í Ä¿³ÎÀÌ ¾ÐÃàµÇ¾î À̹ÌÁöÈ µÇ´Â °úÁ¤°ú ¾ÐÃàÀÌ Ç®·Á start_kernel Àü±îÁöÀÇ °úÁ¤À» µµ½ÄÀûÀ¸·Î ¼³¸íÇÏ¿´´Ù. Á¦6Àå¿¡¼´Â JTAG¿¡ ´ëÇؼ ´Ù·ç¾ú´Ù. Á¦7Àå¿¡¼´Â ½ÇÁ¦·Î Ÿ°Ù ½Ã½ºÅÛ¿¡ ÀÓº£µðµå ¸®´ª½º¸¦ Æ÷ÆÃÇÏ´Â ¹æ¹ý°ú Ä¿³Î »ý¼º ¹æ¹ý, ·¥µð½ºÅ© »ý¼º ¹æ¹ý, µ¥¸ó ½ÇÇàµî¿¡ ´ëÇؼ ¼³¸íÇÑ´Ù. »ç¿ëÇÑ Å¸°Ù ½Ã½ºÅÛÀ¸·Î´Â ¢ßHyBus(www.hybus.net)¿¡¼ Á¦ÀÛÇÑ º¸µå¸¦ »ç¿ëÇÏ¿´´Ù.¢À Â÷·Ê ¢À Á¦1ºÎ ÀÓº£µðµå ¸®´ª½º(Linux System) ½Ã½ºÅÛ Á¦1Àå ÀÓº£µðµå ½Ã½ºÅÛ ¹× ¿î¿µÃ¼Á¦ 1.1 ÀÓº£µðµå ½Ã½ºÅÛ °³¿ä 1.2 ÀÓº£µðµå ¿î¿µÃ¼Á¦ 1.3 ÀÓº£µðµå ¸®´ª½º Á¦2Àå ÀÓº£µðµå ¸®´ª½º ÄÄÆÄÀÏ(Compiling) 2.1 GCC¿¡ ´ëÇÑ ±âº» ÀÌÇØ 2.2 Make Utility¿Í Makefile ¼³°è 2.3 ÀÓº£µðµå ¸®´ª½º Ä¿³Î ÄÄÆÄÀÏ Á¦3Àå ·¥µð½ºÅ©(Ramdisk)¿Í ÆÐÄ¡ ÆÄÀÏ(Patch File) 3.1 ·¥µð½ºÅ©(Ramdisk) ¼³°è 3.2 Patch ÆÄÀÏ ¼³°è Á¦1IºÎ ÀÓº£µðµå ¸®´ª½º Ä¿³Î(Linux Kernel) Á¦1Àå ÀÓº£µðµå ¸®´ª½º Ä¿³Î °³¿ä 1.1 ¸®´ª½º Ä¿³Î(Kernel) ±¸Á¶ 1.2 ¸®´ª½º Ä¿³Î(Kernel) °³¿ä Á¦2Àå ÇÁ·Î¼¼½º °ü¸®(Process Managment) 2.1 ÇÁ·Î¼¼½º °³¿ä ¹× ½Ã½ºÅÛ ÄÝ(System Call) 2.2 ÇÁ·Î¼¼½º »óÅ õÀÌ(Process Transition) 2.3 ½Äº°ÀÚ(identifiers) 2.4 ½ºÄÉÁ층(Scheduling) 2.5 ÆÄÀÏ ÇÁ·Î¼¼½º(File Process) 2.6 µð¹ÙÀ̽ºÀÇ ÀÎÅÍ·´ÅÍ(Device Interrupt) 2.7 ŸÀ̸Ó(Timer) Á¦3Àå ¸Þ¸ð¸® °ü¸®(Memory Manatement) 3.1 ¸Þ¸ð¸® ÁÖ¼Ò(Memory Address) 3.2 ¸Þ¸ð¸® ÆäÀÌ¡(Memory Paging)°ú ½º¿ÍÇÎ(Swapping) 3.3 °¡»ó ¸Þ¸ð¸®(Virtual Memory) Á¦4Àå ÆÄÀÏ °ü¸®(File Manatement) 4.1 ÆÄÀÏ ½Ã½ºÅÛ °³¿ä 4.2 2Â÷ È®Àå ÆÄÀÏ ½Ã½ºÅÛ(EXT 2) 4.3 °¡»ó ÆÄÀÏ ½Ã½ºÅÛ(VFS : Virtual File System) 4.4 ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ÇÁ·Î¼¼½º¿Í ÆÄÀÏÀÇ °ü°è 4.5 ÆÄÀÏ ½Ã½ºÅÛ¿¡ »ç¿ëµÇ´Â ½Ã½ºÅÛ ÄÝ Á¦5Àå ³×Æ®¿öÅ© °ü¸®(Network Managment) 5.1 ³×Æ®¿öÅ© °³¿ä ¹× ±âÃÊ 5.2 Ethernet 5.2.1 Ethernet MAC Frame ±¸Á¶ 5.2.2 CSMA/CD(Carrier Sense Multiple Access/Collision Detection) 5.2.3 MACÇÁ·¹ÀÓÀÇ Demultiplexing 5.3 IP(Internet Protocol) 5.4 ARP(Address Resolution Protocol)¿Í RARP(Reverse ARP) 5.5 ICMP(Internet Control Message Protocol) 5.6 IGMP(Internet Group Management Protocol) 5.7 TCP(Transfer Control Protocol) 5.7.1 TCP ConnectionÀÇ ¿¬°á ¼³Á¤°ú Á¾·á 5.7.2 TCP È帧 Á¦¾î(Flow Control) 5.7.3 TCP ¿¡·¯ Á¦¾î(Error Control) 5.7.4 TCP Timer 5.7.5 È¥Àâ Á¦¾î(Congestion Control) 5.8 UDP(User Datagram Protocol) 5.9 Embedded Linux TCP/IP Protocol Á¦IIIºÎ µð¹ÙÀ̽º µå¶óÀ̹ö(Device Driver) ¼³°è Á¦1Àå µð¹ÙÀ̽º µå¶óÀ̹ö °³¿ä 1.1 ¸®´ª½º µð¹ÙÀ̽º 1.2 ¹®ÀÚ µð¹ÙÀ̽º µå¶óÀ̹ö(Character Device Driver) 1.3 ºí·Ï µð¹ÙÀ̽º µå¶óÀ̹ö(Block Device Driver) Á¦2Àå ³×Æ®¿öÅ© µð¹ÙÀ̽º µå¶óÀ̹ö(Network Device Driver) Á¦IVºÎ SA(StrongARM) 1110 RISC CPU Chip Á¦1Àå SA1110 RISC Microprocessor 1.1 SA1110 °³¿ä 1.2 SA1110 Features 1.3 SA1110 Block Diagram/Signal Description 1.4 SA1110 Memory Map 1.5 SA1110 Register 1.6 Little-endian/Big-endian Memory System 1.7 SA1110 Register Summary Á¦2Àå SA1110 Instruction Set 2.1 Instruction Set °³¿ä 2.2 ARM Instruction Set Á¾·ù Á¦VºÎ Bootloacer(BLOB)ARM Kernel Compressing/Decompressing Start_Kernel ÀÌÀü °úÁ¤ ºÐ¼® Á¦1Àå BLOB(Boot Loader Object) 1.1 BLOB °³¿ä 1.2 BLOB ºÐ¼® Á¦2Àå Kernel Compressing/Decompressing °úÁ¤ ¹× start_kernel ºÐ¼® Á¦ VI ºÎ JTAG(Joint Test Access Group) Á¦1Àå JTAG(Joint Test Access Group) °³¿ä 1.1 JTAG ¹è°æ 1.2 JTAG ±â´É 1.3 JTAG µ¿ÀÛ 1.3.1 CellÀÇ ±âº» ±¸¼º 1.3.2 CellÀÇ ±â´É 1.3.3 CellÀÇ µ¿ÀÛ ¿ø¸® 1.4 TAP(Test Access Port) 1.5 IEEE 1149.1 Deviec Architecture 1.5.1 TAP Controller 1.5.2 JTAG Instruction Register 1.5.3 INCODE Àбâ Á¦2Àå JTAG System Example Á¦VIIºÎ ÀÓº£µðµå ½Ã½ºÅÛ ¼³°è ¹× Æ÷ÆÃ(Porting) Á¦1Àå ÀÓº£µðµå ½Ã½ºÅÛ °³¹ß ȯ°æ °³¿ä 1.1 ÀÓº£µðµå Ÿ°Ù ½Ã½ºÅÛ(Hyper104 Board) °³¿ä 1.2 Hyper104 Board ½Ã½ºÅÛÀÇ ±¸¼º 1.3 ½Ã½ºÅÛ °³¹ß ȯ°æ Á¦2Àå ÀÓº£µðµå ½Ã½ºÅÛ °³¹ß ȯ°æ ±¸Ãà 2.1 ÀÓº£µðµå Ÿ°Ù ½Ã½ºÅÛ(Hyper104 Board) °³¿ä 2.2 JTAG ÄÄÆÄÀÏ 2.3 Bootloader ·Îµù(loading) 2.4 Minicom 2.5 Kernel Image, Ramdisk Image, User Image Download 2.6 Kernel compile 2.7 X Compile 2.8 Device Driver(Hyper104 Board) 2.9 Network Setting 2.10 NFS Á¦3Àå ÆÄÀÏ ½Ã½ºÅÛ(File System) 3.1 File System °³¿ä 3.2 Ramdisk 3.3 cramfs(cram a filesystem onto a small ROM) 3.4 JFFS(Journalling Flash File System) 3.5 JFFS2(Journalling Flash File System 2) Á¦4Àå Kernel Design ¹× Compiling 4.1 °³¿ä 4.2 Kernel Compile 4.3 Kernel patch Á¦VIIIºÎ ÀÓº£µðµå ½Ã½ºÅÛ ÀÀ¿ë(Application Part) Á¦1Àå FND(7-Segment) ½ÇÇè 1.1 FND(7-Segment) 1.2 FND(7-Segment) ½ÇÇè ¹æ¹ý Á¦2Àå LCD ½ÇÇè 2.1 LCD °³¿ä 2.2 LCD ¸ðµâÀÇ ³»ºÎ ±¸¼º 2.3 LCD ¸ðµâÀÇ ÀνºÆ®·°¼Ç 2.4 LCD ½ÇÇè ¹æ¹ý Á¦VIIIIºÎ ÀÓº£µðµå ½Ã½ºÅÛ ºÎ·Ï A. ½ºÄÌÅæ(skeleton) °³¿ä` B. °¡»ó ÁÖ¼Ò(virtual address) C. ȸ·Îµµ(circuit) D. Âü°í ÀÎÅÍ³Ý »çÀÌÆ®(site)
¢À ºÎ·Ï ¿¹Á¦ ¹× ¼Ò½º ÇÁ·Î±×·¥Àº '»óÇ°°ü·Ã ÀÚ·á½Ç'¿¡ ÀÖ½À´Ï´Ù. ¢À °ü·Ã »çÀÌÆ® (ÁÖ) ÇÏÀ̹ö½º
Á¦1ºÎ ÀÓº£µðµå ¸®´ª½º(Linux System) ½Ã½ºÅÛ Á¦1Àå ÀÓº£µðµå ½Ã½ºÅÛ ¹× ¿î¿µÃ¼Á¦ 1.1 ÀÓº£µðµå ½Ã½ºÅÛ °³¿ä 1.2 ÀÓº£µðµå ¿î¿µÃ¼Á¦ 1.3 ÀÓº£µðµå ¸®´ª½º Á¦2Àå ÀÓº£µðµå ¸®´ª½º ÄÄÆÄÀÏ(Compiling) 2.1 GCC¿¡ ´ëÇÑ ±âº» ÀÌÇØ 2.2 Make Utility¿Í Makefile ¼³°è 2.3 ÀÓº£µðµå ¸®´ª½º Ä¿³Î ÄÄÆÄÀÏ Á¦3Àå ·¥µð½ºÅ©(Ramdisk)¿Í ÆÐÄ¡ ÆÄÀÏ(Patch File) 3.1 ·¥µð½ºÅ©(Ramdisk) ¼³°è 3.2 Patch ÆÄÀÏ ¼³°è Á¦1IºÎ ÀÓº£µðµå ¸®´ª½º Ä¿³Î(Linux Kernel) Á¦1Àå ÀÓº£µðµå ¸®´ª½º Ä¿³Î °³¿ä 1.1 ¸®´ª½º Ä¿³Î(Kernel) ±¸Á¶ 1.2 ¸®´ª½º Ä¿³Î(Kernel) °³¿ä Á¦2Àå ÇÁ·Î¼¼½º °ü¸®(Process Managment) 2.1 ÇÁ·Î¼¼½º °³¿ä ¹× ½Ã½ºÅÛ ÄÝ(System Call) 2.2 ÇÁ·Î¼¼½º »óÅ õÀÌ(Process Transition) 2.3 ½Äº°ÀÚ(identifiers) 2.4 ½ºÄÉÁ층(Scheduling) 2.5 ÆÄÀÏ ÇÁ·Î¼¼½º(File Process) 2.6 µð¹ÙÀ̽ºÀÇ ÀÎÅÍ·´ÅÍ(Device Interrupt) 2.7 ŸÀ̸Ó(Timer) Á¦3Àå ¸Þ¸ð¸® °ü¸®(Memory Manatement) 3.1 ¸Þ¸ð¸® ÁÖ¼Ò(Memory Address) 3.2 ¸Þ¸ð¸® ÆäÀÌ¡(Memory Paging)°ú ½º¿ÍÇÎ(Swapping) 3.3 °¡»ó ¸Þ¸ð¸®(Virtual Memory) Á¦4Àå ÆÄÀÏ °ü¸®(File Manatement) 4.1 ÆÄÀÏ ½Ã½ºÅÛ °³¿ä 4.2 2Â÷ È®Àå ÆÄÀÏ ½Ã½ºÅÛ(EXT 2) 4.3 °¡»ó ÆÄÀÏ ½Ã½ºÅÛ(VFS : Virtual File System) 4.4 ÆÄÀÏ ½Ã½ºÅÛ¿¡¼ ÇÁ·Î¼¼½º¿Í ÆÄÀÏÀÇ °ü°è 4.5 ÆÄÀÏ ½Ã½ºÅÛ¿¡ »ç¿ëµÇ´Â ½Ã½ºÅÛ ÄÝ Á¦5Àå ³×Æ®¿öÅ© °ü¸®(Network Managment) 5.1 ³×Æ®¿öÅ© °³¿ä ¹× ±âÃÊ 5.2 Ethernet 5.2.1 Ethernet MAC Frame ±¸Á¶ 5.2.2 CSMA/CD(Carrier Sense Multiple Access/Collision Detection) 5.2.3 MACÇÁ·¹ÀÓÀÇ Demultiplexing 5.3 IP(Internet Protocol) 5.4 ARP(Address Resolution Protocol)¿Í RARP(Reverse ARP) 5.5 ICMP(Internet Control Message Protocol) 5.6 IGMP(Internet Group Management Protocol) 5.7 TCP(Transfer Control Protocol) 5.7.1 TCP ConnectionÀÇ ¿¬°á ¼³Á¤°ú Á¾·á 5.7.2 TCP È帧 Á¦¾î(Flow Control) 5.7.3 TCP ¿¡·¯ Á¦¾î(Error Control) 5.7.4 TCP Timer 5.7.5 È¥Àâ Á¦¾î(Congestion Control) 5.8 UDP(User Datagram Protocol) 5.9 Embedded Linux TCP/IP Protocol Á¦IIIºÎ µð¹ÙÀ̽º µå¶óÀ̹ö(Device Driver) ¼³°è Á¦1Àå µð¹ÙÀ̽º µå¶óÀ̹ö °³¿ä 1.1 ¸®´ª½º µð¹ÙÀ̽º 1.2 ¹®ÀÚ µð¹ÙÀ̽º µå¶óÀ̹ö(Character Device Driver) 1.3 ºí·Ï µð¹ÙÀ̽º µå¶óÀ̹ö(Block Device Driver) Á¦2Àå ³×Æ®¿öÅ© µð¹ÙÀ̽º µå¶óÀ̹ö(Network Device Driver) Á¦IVºÎ SA(StrongARM) 1110 RISC CPU Chip Á¦1Àå SA1110 RISC Microprocessor 1.1 SA1110 °³¿ä 1.2 SA1110 Features 1.3 SA1110 Block Diagram/Signal Description 1.4 SA1110 Memory Map 1.5 SA1110 Register 1.6 Little-endian/Big-endian Memory System 1.7 SA1110 Register Summary Á¦2Àå SA1110 Instruction Set 2.1 Instruction Set °³¿ä 2.2 ARM Instruction Set Á¾·ù Á¦VºÎ Bootloacer(BLOB)ARM Kernel Compressing/Decompressing Start_Kernel ÀÌÀü °úÁ¤ ºÐ¼® Á¦1Àå BLOB(Boot Loader Object) 1.1 BLOB °³¿ä 1.2 BLOB ºÐ¼® Á¦2Àå Kernel Compressing/Decompressing °úÁ¤ ¹× start_kernel ºÐ¼® Á¦ VI ºÎ JTAG(Joint Test Access Group) Á¦1Àå JTAG(Joint Test Access Group) °³¿ä 1.1 JTAG ¹è°æ 1.2 JTAG ±â´É 1.3 JTAG µ¿ÀÛ 1.3.1 CellÀÇ ±âº» ±¸¼º 1.3.2 CellÀÇ ±â´É 1.3.3 CellÀÇ µ¿ÀÛ ¿ø¸® 1.4 TAP(Test Access Port) 1.5 IEEE 1149.1 Deviec Architecture 1.5.1 TAP Controller 1.5.2 JTAG Instruction Register 1.5.3 INCODE Àбâ Á¦2Àå JTAG System Example Á¦VIIºÎ ÀÓº£µðµå ½Ã½ºÅÛ ¼³°è ¹× Æ÷ÆÃ(Porting) Á¦1Àå ÀÓº£µðµå ½Ã½ºÅÛ °³¹ß ȯ°æ °³¿ä 1.1 ÀÓº£µðµå Ÿ°Ù ½Ã½ºÅÛ(Hyper104 Board) °³¿ä 1.2 Hyper104 Board ½Ã½ºÅÛÀÇ ±¸¼º 1.3 ½Ã½ºÅÛ °³¹ß ȯ°æ Á¦2Àå ÀÓº£µðµå ½Ã½ºÅÛ °³¹ß ȯ°æ ±¸Ãà 2.1 ÀÓº£µðµå Ÿ°Ù ½Ã½ºÅÛ(Hyper104 Board) °³¿ä 2.2 JTAG ÄÄÆÄÀÏ 2.3 Bootloader ·Îµù(loading) 2.4 Minicom 2.5 Kernel Image, Ramdisk Image, User Image Download 2.6 Kernel compile 2.7 X Compile 2.8 Device Driver(Hyper104 Board) 2.9 Network Setting 2.10 NFS Á¦3Àå ÆÄÀÏ ½Ã½ºÅÛ(File System) 3.1 File System °³¿ä 3.2 Ramdisk 3.3 cramfs(cram a filesystem onto a small ROM) 3.4 JFFS(Journalling Flash File System) 3.5 JFFS2(Journalling Flash File System 2) Á¦4Àå Kernel Design ¹× Compiling 4.1 °³¿ä 4.2 Kernel Compile 4.3 Kernel patch Á¦VIIIºÎ ÀÓº£µðµå ½Ã½ºÅÛ ÀÀ¿ë(Application Part) Á¦1Àå FND(7-Segment) ½ÇÇè 1.1 FND(7-Segment) 1.2 FND(7-Segment) ½ÇÇè ¹æ¹ý Á¦2Àå LCD ½ÇÇè 2.1 LCD °³¿ä 2.2 LCD ¸ðµâÀÇ ³»ºÎ ±¸¼º 2.3 LCD ¸ðµâÀÇ ÀνºÆ®·°¼Ç 2.4 LCD ½ÇÇè ¹æ¹ý Á¦VIIIIºÎ ÀÓº£µðµå ½Ã½ºÅÛ ºÎ·Ï A. ½ºÄÌÅæ(skeleton) °³¿ä` B. °¡»ó ÁÖ¼Ò(virtual address) C. ȸ·Îµµ(circuit) D. Âü°í ÀÎÅÍ³Ý »çÀÌÆ®(site)