º£Å׶û ¿£Áö´Ï¾îÀÇ Àü±â/ÀüÀÚÀÓº£µðµå ½Ã½ºÅÛ °³¹ßÀ» À§ÇÑ È®½ÇÇÑ ·Îµå¸Ê!¡°ÀÌ Ã¥À» Àд °¡Àå ÁÁÀº ¹æ¹ýÀº ¼Ò¼³Ã¥ ÀеíÀÌ ¹Ýº¹ÇÏ¿© ÀÐ¾î ±âÃÊ À̷аú ½Ã½ºÅÛ °³¹ß ±ÔÄ¢ °£ÀÇ ¿¬°ü°ü°è¿¡ ´ëÇØ ÀÌÇØÇÏ´Â °ÍÀÔ´Ï´Ù.¡±CPU(Central Processing Unit)´Â ¸ñÇ¥ÇÏ´Â µ¿ÀÛÀ» ¼öÇàÇϱâ À§ÇØ ¸í·ÉÀ» Àаí Çؼ®ÇÏ¿© ó¸®ÇÏ´Â Áß¾Ó Ã³¸® ÀåÄ¡·Î Á¤ÀǵȴÙ. ¼öµ¿ ¼ÒÀÚ, ´Éµ¿ ¼ÒÀÚ¿Í ¹ÝµµÃ¼ IC. ƯÈ÷ Çø³ÇÃ·Ó °°Àº ¸Þ¸ð¸® ¼ÒÀÚµéÀ» ¸ðµÎ ÀÌ¿ëÇÑ È¸·Î¸¦ ÇϳªÀÇ ÆÐÅ°Áö¿¡ ÁýÀûÇÏ¿© ¸¸µé¾îÁø IC°¡ CPUÀ̸ç, ÁýÀûȸ·ÎÀÇ ÃÖ°íºÀÀ̶ó ÇÒ ¼ö ÀÖ´Ù. CPUÀÇ »ç¿ëÀº Çϵå¿þ¾î¸¸À¸·Î ¼³°èµÈ ½Ã½ºÅÛ¿¡ ºñÇÏ¿© ¼ÒÇÁÆ®¿þ¾î¸¸ º¯°æÇÔÀ¸·Î½á ½Ã½ºÅÛÀÇ ±¸Çö ¹× ¼öÁ¤À» ½±°Ô ÇÒ ¼ö ÀÖ´Ù´Â ÃÖ´ëÀÇ ÀåÁ¡À¸·Î ´ëºÎºÐÀÇ Àü±â/ÀüÀÚ ½Ã½ºÅÛ¿¡ »ç¿ëµÇ¹Ç·Î ±¸Á¶ ¹× µ¿ÀÛ¿¡ ´ëÇØ ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù. ƯÁ¤ CPU¸¦ ÁöÁ¤ÇÏ¿© ÀÚ¼¼È÷ ¾Ë¾Æº¸´Â °Íµµ ÃæºÐÈ÷ Àǹ̰¡ ÀÖ°ÚÁö¸¸, ¿©±â¼´Â CPUÀÇ ÀϹÝÀûÀÎ ±¸¼º ¿ä¼Òµé°ú µ¿ÀÛ¿¡ ´ëÇؼ »ìÆ캽À¸·Î½á, »ç¿ëÇÏ°Ô µÉ CPUÀÇ Á¾·ù°¡ ¹Ù²î´õ¶óµµ ½±°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Â ´É·Â ¹è¾çÀ» ¸ñÇ¥·Î ÇÑ´Ù.
1999³âµµ Ãæ³²´ëÇб³ ¸ÞÄ«Æ®·Î´Ð½ºÇаú¸¦ Á¹¾÷Çß´Ù. ÀÌÈÄ ¹ÝµµÃ¼ ÆÕ¸®½º ¾÷ü¿¡¼ 18³â µ¿¾È ¿£Áö´Ï¾î·Î ±Ù¹«Çϸé¼, ƯÇãûÀå ǥâÀ» ¹ÞÀº ÀÌ·ÂÀÌ ÀÖ´Ù.
I. CPU ±âÃÊ ÀÌ·Ð1. CPU ÀϹÝ1.1. CPU ÀÇ ±¸Á¶ ¹× µ¿ÀÛ1.1.1. CPUÀÇ ±¸Á¶ ¹× ±â´É1.1.2. CPUÀÇ µ¿ÀÛ ´Ü°è1.2. ¸í·É¾î ±¸Á¶¿Í ½ÇÇà ÆÄÀÏ1.2.1. ¸í·É¾î ±¸Á¶·Î º¸´Â RISC/CISC CPU±¸Á¶1.2.2. CPUÀÇ µ¿ÀÛ°ú ½ÇÇà ¹ÙÀ̳ʸ® ÆÄÀÏ1.3. CPU µ¿ÀÛÀ» À§ÇÑ ÁÖº¯ Çϵå¿þ¾î1.3.1. Àü¿ø (Power)À» À§ÇÑ ·¹±Ö·¹ÀÌÅÍ1.3.2. Ŭ·° (Clock)1.3.3. ¸Þ¸ð¸®(Memory)1.3.4. CPU ¹ö½º ±¸Á¶1.3.5. ¸®¼Â (Reset)1.4. ¸®¼Â ÈÄ Æß¿þ¾î ºÎÆà °úÁ¤1.4.1. ¸®¼Â º¤ÅÍ1.4.2. Reset_Handler1.5. ÀÎÅÍ·´Æ®1.5.1. ÀÎÅÍ·´Æ®ÀÇ µ¿ÀÛ2. MCU(Micro Controller Unit)2.1. GPIO2.1.1. ºÎ°¡ ±â´É (Alternate Function)2.1.2. GPIO ³»ºÎ ȸ·Î2.2. Á÷·Ä Åë½Å ÀÌ·Ð ÀϹÝ2.2.1. OSI 7 °èÃþ(Layer)2.2.2. ÇÁ·ÎÅäÄÝ(Protocol)2.2.3. Á÷·Ä(Serial) Åë½Å ¹æ½ÄÀÇ ±¸ºÐ2.2.4. Åë½Å ½ÅÈ£ÀÇ SNR(Signal to Noise Ratio) °È2.2.5. Åë½Å ¿À·ù °ËÃâ ¹æ¹ý2.3. Á÷·Ä Åë½Å2.3.1. UART (Universal Asynchronous Receiver & Transmitter)2.3.2. I2C2.3.3. SPI (Serial Peripheral Interface)2.4. ADC ¿Í DAC&PWM2.4.1. ADC (Analog To Digital Converter)2.4.2. DAC (Digital to Analog Converter)2.4.3. PWM(Pulse Width Modulation)2.5. MCU ¼±ÅÃÀÇ °í·Á»çÇ×II. ½Ã½ºÅÛ °³¹ß ÇÁ·Î¼¼½ºIII. Æß¿þ¾î °³¹ß ±ÔÄ¢1. Æß¿þ¾îÀÇ ¼³°è ¹× ±¸Çö ±ÔÄ¢1.1. Æß¿þ¾îÀÇ ¼³°è1.1.1. HAL ±¸Á¶ ¼³°è1.1.2. µ¥ÀÌÅÍ Ãëµæ ¹× Á¦¾î ¹æ½Ä1.1.3. Æß¿þ¾î ¼³°è µµ±¸1.2. Æß¿þ¾îÀÇ ±¸Çö Àü·«1.2.1. ½Ã½ºÅÛ¿¡ ¸Â´Â ÄÄÆÄÀÏ È¯°æ ¼³Á¤1.2.2. °¡µ¶¼ºÀ» À§ÇÑ ±ÔÄ¢1.2.3. Çϵå¿þ¾î Á¢±Ù ÄÚµù1.3. Æß¿þ¾îÀÇ ¾ÈÀü¼º1.4. Æß¿þ¾îÀÇ ¼º´É1.4.1. ¾Ë°í¸®Áò ±¸Çö1.4.2. ¸Þ¸ð¸® Á¤·Ä(Align)1.4.3. ¸ÅÅ©·Î¿Í Inline ÇÔ¼öÀÇ »ç¿ë1.4.4. ½Ç¼ö »ç¿ëÀÇ °í·Á»çÇ×1.4.5. ÀÎÅÍ·´Æ® Çڵ鷯¿Í ÀӰ迵¿ª(Critical Section)1.5. Æß¿þ¾îÀÇ ¾ç»ê ¹× À¯Áöº¸¼ö2. Low Level Æß¿þ¾î2.1. CPU ÀÇ µ¿ÀÛ°ú ¹ÙÀ̳ʸ® ÆÄÀÏ »ý¼º °úÁ¤2.1.1. ºôµå(Build) °úÁ¤2.2. Low Level ÇÁ·Î±×·¡¹Ö ½Ç½À2.2.1. ¼Ò½º ÆÄÀÏ »ý¼º2.2.2. ¸µÄ¿ ½ºÅ©¸³Æ® ÀÛ¼º2.2.3. Startup ÄÚµå ÀÛ¼º2.2.4. Main() ÇÔ¼ö ÀÛ¼º2.2.5. Makefile ÀÛ¼º2.2.6. ÄÄÆÄÀÏ·Î ÀÌÁø ¹ÙÀ̳ʸ® ÆÄÀÏ »ý¼º2.2.7. [Âü°í] ELF ÆÄÀÏ¿¡¼ Á¤º¸ ¾ò±âIV. [Âü°í] µð¹ö±ë1. µð¹ö±ë ÀýÂ÷2. ÃøÁ¤ Àåºñ ¹× µð¹ö±ë ¿¹2.1. Àü±â ½ÅÈ£ ÃøÁ¤ Àåºñ2.2. µð¹ö±ë/ÃøÁ¤ Ç׸ñ