ÀÌ ¸Å´º¾óÀº JKÀüÀÚ(JK Electronics) ¿¡ ÀÇÇؼ ¼öÁ¤, ÀÛ¼º µÇ¾ú°í ¼ÒÀ¯±Ç ¶ÇÇÑ JKÀüÀÚ(JK Electronics)ÀÇ °ÍÀÔ´Ï´Ù. ¼ÒÀ¯±ÇÀÚÀÇ Çã°¡¸¦ ¹ÞÁö ¾Ê°í ¹«´ÜÀ¸·Î ¼öÁ¤, »èÁ¦Çϰųª ¹èÆ÷ ÇÒ ¼ö ¾ø½À´Ï´Ù. |
|||
ARM JTAG ´Ù¿î·Îµå ¿¡ÀÌÁ¨Æ®(Flash Agent) °³¹ß °¡À̵å |
|||
* Update history - 2012.3.26 : Ãʱâ Release |
|||
1. Introduction 2. Flash Agent & ARMJTAG Script 3. Flash Download Script 4. Algorithm |
|||
1. Introduction °³¹ßÀÚµéÀÌ ´Ù¾çÇÑ Flash Memory ¿¡ ´ëÇؼ ´Ù¿î·Îµå Äڵ带 °³¹ßÇÒ ½Ã¿¡ ÃÖ´ëÇÑÀÇ ÆíÀÇ¿Í Flexibility ¸¦ Á¦°øÇÏ°íÀÚ ³ë·ÂÇÏ¿´½À´Ï´Ù. ÀÌ·¯ÇÑ ±â´ÉÀº ¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯ ±ÞÀÇ Flash °¡ ³»ÀåµÈ ÇÁ·Î¼¼¼´Â ¹°·ÐÀÌ°í ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼ ¿ÜºÎ¿¡ ¿¬°áµÇ´Â °¢Á¾ NOR, NAND, OneNAND µîÀÇ Flash ¸Þ¸ð¸® ¶ÇÇÑ ¼Õ½±°Ô Read, Write ÇÏ¿© ´Ù¿î·Îµå ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °·ÂÇÑ ±â´ÉÀ» ¸¸µé¾îÁÝ´Ï´Ù. ÀÌ ±â´ÉÀ» À§Çؼ´Â ARMJTAG Commander Tool °ú Target ¿¡¼ ½ÇÇàµÇ´Â Flash Agent °¡ ÇÊ ¿äÇÕ´Ï´Ù. Flash Agent ´Â ½ÇÁ¦ Target ÀÇ RAM ¿¡ Load µÇ°í ½ÇÇàµÇ¾î PC ÀÇ ARMJTAG Commander ¿Í ¿¬µ¿Çϸç Target ¿¡ À̹ÌÁö¸¦ ´Ù¿î·ÎµåÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ ¹®¼´Â Flash Agent (Flash Agent ¿Í ARMJTAG Commander ÀÇ Flash ´Ù¿î·Îµå ¾Ë°í¸®Áò) ¸¦ ¾î¶»°Ô ¸¸µå´ÂÁö¿¡ ´ëÇؼ ¼³¸í ÇÕ´Ï´Ù. 2. Flash Agent & ARMJTAG Script Flash Agent ´Â Target ÀÇ RAM »ó¿¡¼ ½ÇÇàµÇ¸é¼ Target ÀÇ Flash ¸¦ Erase ÇÏ°í Program ÇÏ´Â ±â´ÉÀ» ¼öÇàÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ARMJTAG ¿¡¼ Flash ¸¦ Program Çϱâ À§Çؼ ÀÌ Flash Agent ¸¦ ÀÌ¿ëÇÕ´Ï´Ù. °¢Á¾ ÇÁ·Î¼¼¼¿Í ¸Þ¸ð¸®¿¡ µû¸¥ Flash Agent ´Â PASCOMLAB & JK ÀüÀÚ ¿¡¼ Áö¿øÇÕ´Ï´Ù. ´õ ³ª¾Æ°¡ °³¹ßÀÚµéÀº °¢Á¾ Flash Agent ¸¦ ¼öÁ¤, º¸¿Ï, °³¹ßÇÏ¿© Target ¿¡ ´õ¿í ÃÖÀûÈµÈ ±â´ÉÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ARMJTAG Script ´Â Commander(JICECommander) ¸¦ ÅëÇؼ ½ÇÇàµÇ¸ç ARMJTAG ¿Í Target À» Á¦¾îÇÏ°Ô µË´Ï´Ù. JICEEditor(ÀÏ¹Ý ÅؽºÆ® ¿¡µðÅ͸¦ »ç¿ëÇصµ µÊ) ¿¡¼ ´Ù¿î·Îµå¿ë ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇؼ JICECommander ¿¡·¯ Load ÇÏ¿© ½ÇÇà ½ÃÅ°´Â ±¸Á¶ ÀÔ´Ï´Ù. ARMJTAG Script ´Â ¾Æ·¡¿Í °°Àº ÀÏÀ» ¼øÂ÷ÀûÀ¸·Î ¼öÇàÇÏ¿© Target ÀÇ Flash ¿¡ À̹ÌÁö¸¦ ´Ù¿î·ÎµåÇÏ°Ô µË´Ï´Ù. 1th : target stop 2th : Target Enable(°¢Á¾ register ÃʱⰪ ¼³Á¤) 3th : Flash Agent ¸¦ Target ÀÇ RAM ¿¡ ´Ù¿î·Îµå 4th : Flash Agent ÀÇ agentend address À§Ä¡¿¡ Breakpoint ¼³Á¤ (IAR ÄÄÆÄÀÏ·¯·Î ¸¸µé¾îÁø CORTEX-M ÄÚ¾î Flash Agent ´Â Á¦¿ÜµÇ´Â °úÁ¤) 5th : Flash Agent ¸¦ ½ÇÇàÇÏ°í À̹ÌÁö¸¦ Flash ¿¡ ´Ù¿î·Îµå 3. Flash Download Script Flash Agent ¸¦ ¸¸µé ¶§ ¾Æ·¡¿Í °°Àº Script °¡ ÇÊ¿äÇÕ´Ï´Ù. (½ÇÁ¦ Script ¿¹) target.stop ;initial registers setting ;cp.mmu.off ;mem.write 0xXXXXXXXX %32 0xXXXXXXXX mem.load "C:\STR911FAW44_Data\DebugRel\JICE_FlashAgent.bin" 0x04000000 ;set breakpoint for JICE to chek parameters bp.set.symbol agentend ;configure agent information : ;agent start addr(0x04000000), prarmeter start add(0x04002000), flash buffer size(0x1000) flash.agent 0x04000000 0x04002000 0x1000 ;erase flash memory flash.erase print "Down binary : STR911FAW44 flash start address 0x00000000" flash.program "C:\examples\STR9_M\user\Debug\Exe\Uart.bin" 0x00000000 ¸í·É¾î¸¸À» º¸¸é ¾Æ·¡¿Í °°ÀÌ °£Ãß·ÁÁý´Ï´Ù. target.stop (initial registers setting) mem.load ¡°file location-bin file format¡± <address > bp.set.symbol agentend flash.agent <address1> <address2> <address3> flash.erase flash.program ¡°file location-bin file format¡± <address> Flash Download Script ´Â Ç×»ó µ¿ÀÏÇÏ°Ô À§ ¸í·É¾î Æ÷¸äÀ» °¡Áý´Ï´Ù. Core ¿Í Flash ¿¡ µû¶ó¼ ´Þ¶óÁö´Â °ÍÀº Flash Agent ÀÔ´Ï´Ù. (´Ü CORTEX-M Core ¿¡¼´Â bp.set.symbol agentend ¸í·É¾î´Â Script ¿¡¼ Á¦¿Ü ÇÏ¿©¾ß ÇÕ´Ï´Ù.) ¾Æ·¡¿Í °°Àº ÄÄÆÄÀÏ·¯¸¦ ÀÌ¿ëÇÏ¿© Flash Agent ¸¦ Áö¿øÇÕ´Ï´Ù. ADS1.2 (CodeWarrior for ARM Developer Suite) IAR Embedded Workbench CodeSourcery ARM-NONE-EABI-GCC Keil uVision4 3.1 target.stop À§ ¸í·É¾î´Â Core ¸¦ Stop ½ÃÅ°±â À§Çؼ »ç¿ëµË´Ï´Ù. Commander ¸¦ ½ÇÇàÇÏ°ÔµÇ¸é ±âº»ÀûÀ¸·Î Core ¸¦ Stop ½ÃÅ°°Ô µÇ¹Ç·Î À§ ¸í·É¾î´Â »ý·« °¡´ÉÇÕ´Ï´Ù. 3.2 initial register setting Target À» enable Çϱâ À§Çؼ ÇÊ¿äÇÑ register ¸¦ ¼³Á¤ÇÕ´Ï´Ù. Clock, Àü¿ø, Memory interface µî °ü·ÃÇÑ register °ª µéÀ» ã¾Æ¼ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¿¹ : cp.mmu.off ; for virtual address disable. mem.write 0xXXXXXXXX %32 0xXXXXXXXX À§¿¡¼ cp.mmu.off ´Â MMU ¸¦ °¡Áø Core (¿¹ : ARM926EJ-S, ARM1176JZF-S, CORTEX-A8 µî) ¿¡¼ MMU °¡ Enable µÇ¾î ÀÖÀ» ½Ã¿¡ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼ÀÇ HW Register Address ¿¡ Á¢±ÙÇÒ ¶§ Physical Address ·Î Á¢±ÙÇϱâ À§Çؼ ÇÊ¿äÇÑ ¸í·ÉÀÔ´Ï´Ù. 3.3 mem.load ¡°file location-bin file format¡± <address > À§ ¸í·É¾î´Â Flash Agent ¸¦ RAM ¿¡ ´Ù¿î·Îµå ÇϱâÀ§Çؼ »ç¿ëµË´Ï´Ù. À̾îÁö´Â ¡° ¡° À§Ä¡¿¡´Â Flash Agent Binary À§Ä¡¸¦, À̾îÁö´Â HEX Æ÷¸ä ¼ýÀÚ´Â Binary °¡ Load µÉ RAM ½ÃÀÛ ¹øÁö¸¦ ÀǹÌÇÕ´Ï´Ù. ¿¹ : mem.load "C:\STR911FAW44_Data\DebugRel\STR9_FlashAgent.bin" 0x04000000 3.4 bp.set.symbol agentend Flash Agent ¸¦ °³¹ßÇÒ ¶§ ¾Æ·¡¿Í °°ÀÌ ÄÚµåÀÇ ¸¶Áö¸· ½ÇÇà ÁöÁ¡¿¡ ¾Æ·¡¿Í °°Àº symbol À» Ç¥½ÃÇØÁÜÀ¸·Î½á JTAG Àåºñ°¡ Break Point ¸¦ ¼³Á¤ÇÏ°í Core ¸¦ Stop ½ÃÄѼ Flash Agent °¡ ¸ðµÎ ½ÇÇàµÇ¾úÀ½À» ¾Ë°í Parameter µîÀ» ´Ù½Ã ¼³Á¤ÇÏ¿© ´ÙÀ½ ÀÏÀ» ÁøÇàÇÒ ¼ö ÀÖµµ·Ï ÇϱâÀ§Çؼ »ç¿ëµË´Ï´Ù. ¿¹ : Script »ó¿¡¼´Â ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÕ´Ï´Ù. bp.set.symbol agentend Flash Agent ¼Ò½º¿¡´Â ¾Æ·¡¿Í °°ÀÌ ±¸ÇöµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. (ÄÄÆÄÀÏ·¯¿¡ µû¶ó ¹®¹ý¿¡ Â÷ÀÌ°¡ ÀÖÀ¸´Ï ÁÖÀÇ°¡ ÇÊ¿äÇÕ´Ï´Ù.) agentend DCD 0xEEDEEEDE (ARM ADS ÄÄÆÄÀÏ·¯¿¡¼ »ç¿ë ½Ã) agentend: DCD 0xEEDEEEDE (IAR EWARM ÄÄÆÄÀÏ·¯¿¡¼ »ç¿ë ½Ã) ¡Ü ARM ADS ÄÄÆÄÀÏ·¯ »ç¿ë ½Ã : ¡Ü IAR EWARM ÄÄÆÄÀÏ·¯ »ç¿ë ½Ã : Âü°í CORTEX-M ÄÚ¾î ´Â Flash Agent Assembly Äڵ忡 ÀÌ Äڵ带 Áý¾î³ÖÁö ¾Ê½À´Ï´Ù. Cortex-M ÄÚ¾î´Â º°µµ·Î Assembly ÀÛ¼ºÀÌ ÇÊ¿ä ¾øÀ¸¹Ç·Î ÀÌ ¸í·É¾î¸¦ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ¶ÇÇÑ ´Ù¿î·Îµå Script ÆÄÀÏ¿¡µµ bp.set,symbol agentend ¸í·ÉÀ» Áý¾î³ÖÁö ¾Ê½À´Ï´Ù. Âü°í bp.set.symbol agentend ¸í·ÉÀ» »ç¿ëÇÏÁö ¾Ê°Ô µÇ¸é Flash Agent ´Ù¿î·Îµå, ½ÇÇà ÈÄ ARMJTAG´Â ¹«ÇÑ ·çÇÁ ÄÚµå ½ÇÇàÀ» ÇÏ°Ô µÇ¾î¼ 1) Commander ¿¡¼ STOP ¹öÆ°À» ÅëÇؼ °Á¦·Î Stop ½ÃÅ°°Å³ª 2) Commander ¸¦ Á¾·á ½ÃÅ°Áö ¾Ê´Â ÇÑ °è¼Ó JTAGÀåºñ´Â ´Â °è¼Ó RUN »óÅ¿¡ ÀÖ°Ô µÇ¸ç Flash ´Ù¿î·Îµå ±â´ÉÀ» ¼öÇàÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. 3.5 flash.agent <address1> <address2> <address3> Flash Agent Á¤º¸¸¦ JICECommander ¿¡ ¾Ë·ÁÁÖ±â À§Çؼ »ç¿ëµË´Ï´Ù. µÚ¿¡ 3°³ÀÇ HEX Æ÷¸ä ¼ýÀÚ°¡ À̾îÁý´Ï´Ù. ù ¹ø° parameter <address1> ´Â Load µÈ Flash Agent ÀÇ RAM ÀÇ start address ÀÔ´Ï´Ù. ¾ÕÀÇ mem.load ¿¡¼ »ç¿ëÇÑ address ¿Í µ¿ÀÏÇÑ °ªÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. µÎ ¹ø° parameter <address2> ´Â Flash Agent parameter ¿µ¿ªÀÇ ½ÃÀÛ address ÀÔ´Ï´Ù. ¼¼ ¹ø° parameter <address3> ´Â Flash buffer size ÀÔ´Ï´Ù. º¸ÅëÀº 0x1000 À» »ç¿ëÇÏ¸é µË´Ï´Ù. 3.5.1 Flash Agent Parameter flash.agent ¸í·É¾î¸¦ ¿ÏÀüÈ÷ ÀÌÇØÇÏ·Á¸é Flash Agent Parameter ¿¡ ´ëÇÑ ¼³¸íÀÌ ÇÊ¿äÇÕ´Ï´Ù. flash.agent ¸í·É¿¡¼ µÎ ¹ø°¿¡ ºÙ´Â ¼ö, Áï Flash Agent parameter ¿µ¿ªÀÇ ½ÃÀÛ address°¡ À§ parameter µéÀÌ À§Ä¡ÇÏ´Â ½ÃÀÛ address °¡ µË´Ï´Ù. Áï, flash.agent 0xXXXXXXXX 0x04002000 0x1000 À̶ó¸é Target ÀÇ RAM »ó¿¡ ¾Æ·¡¿Í °°ÀÌ Parameter °ªµé°ú Binary Data °¡ À§Ä¡ ÇÑ´Ù´Â°Í À» ÀǹÌÇÕ´Ï´Ù. 3.6 CORTEX-M Stack & Program Counter Setting ¸¸¾à ÇöÀç Target ÀÇ Core °¡ CORTEX-M À̶ó¸é mem.load flash.agent ¸í·É ÀÌÈÄ Stack pointer ¿Í Program counter ¸¦ ¼³Á¤ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ¾Æ·¡¿Í °°Àº ¸í·É¾î¸¦ ÀÌ¿ëÇÕ´Ï´Ù. mem.read <address1> %32 reg.r13.write.before mem.read <address1+4> %32 reg.pc.write.before À̶§ À§¿¡¼ address1 ¿¡´Â flash.agent ÀÇ Ã¹ ¹ø° parameter ¿Í µ¿ÀÏÇÑ °ªÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. Áï ÇöÀç flash.agent 0x04000000 0x04002000 0x1000 ¿Í °°ÀÌ »ç¿ëµÇ°í ÀÖ´Ù¸é ¾Æ·¡¿Í °°Àº ¸í·ÉÀÌ ÇÊ¿äÇÕ´Ï´Ù. mem.read 0x04000000 %32 reg.r13.write.before mem.read 0x04000004 %32 reg.pc.write.before 3.7 flash.erase Flash.erase ´Â flash agent »ó¿¡ ±¸ÇöÇÏÁö ¾Ê°í °£´ÜÇÑ Script ¸¸À¸·Îµµ ±¸Çö°¡´ÉÇÑ Microcontroller µéÀÌ ¸¹ÀÌ ÀÖ½À´Ï´Ù. ½ÇÁ¦·Î ¾î¶² ¸é¿¡¼´Â ÀÌ·¸°Ô Script ¸¸À¸·Î erase ÇÏ´Â °ÍÀÌ Á¦ÀÏ ¸¸µé±â Æí¸®ÇÒ °æ¿ì°¡ ¸¹½À´Ï´Ù. ¶Ç´Â flash.erase ¸í·É ¾øÀÌ flash.program ¸í·É ¾È¿¡ erase ±â´ÉÀ» ³Ö¾î¼ ¼öÇàÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù. °á±¹ ¿î¿ëÇϱ⿡ Æí¸®ÇÑ ¹æ¹ýÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. Âü°í 1. script ¸¸À¸·Î flash erase ÇÏ´Â ¹æ¹ýÀÇ ¿¹´Â ´ÙÀ½¿¡ ÀÖ½À´Ï´Ù. µð¹ö±ë Example --- ST STR91X µð¹ö±ë Example --- TI LM3S608 µð¹ö±ë Example --- SAMSUNG S3C6410 2. flash.erase ¸í·É ¾øÀÌ flash.program ¸í·É¿¡ flash erase ±â´ÉÀ» µ¿½Ã¿¡ ±¸ÇöÇÑ ¿¹°¡ ´ÙÀ½¿¡ ÀÖ½À´Ï´Ù. µð¹ö±ë Example --- ATMEL AT91SAM7S 3. flash.erase ¸í·ÉÀ» »ç¿ëÇÑ ¿¹°¡ ´ÙÀ½¿¡ ÀÖ½À´Ï´Ù. µð¹ö±ë Example --- SAMSUNG S3C2413 µð¹ö±ë Example --- ST STM32F103 3.8 flash.program ¡°file location-bin file format¡± <address> À§ ¸í·É¾î´Â ½ÇÁ¦ binary ¸¦ Flash ¿¡ ´Ù¿î·Îµå ÇϱâÀ§Çؼ »ç¿ëµË´Ï´Ù. À̾îÁö´Â ¡° ¡° À§Ä¡¿¡´Â ´Ù¿î·Îµå ÇÏ°íÀÚ ÇÏ´Â Binary À§Ä¡¸¦, À̾îÁö´Â HEX Æ÷¸ä ¼ýÀÚ´Â Binary °¡ ¿Ã¶ó°¥ Flash ½ÃÀÛ ¹øÁö¸¦ ÀǹÌÇÕ´Ï´Ù. ¿¹ : flash.program "C:\examples\STR9_M\user\Debug\Exe\Uart.bin" 0x00000000 4. Algorithm ¾Æ·¡´Â JICE ¸¦ ÅëÇؼ Target ÀÇ Flash ¿¡ ´Ù¿î·Îµå ½Ã ¼öÇàµÇ´Â °úÁ¤À» ³ªÅ¸³½ ±×¸² ÀÔ´Ï´Ù. [Notice 1] Flash Agent À§Ä¡. Flash Agent ´Â Binary Buffer ¿¡ À§Ä¡ÇÑ Binary ¸¦ Flash Memory ¿¡ Erase, Write ÇØÁÖ´Â ¿ªÇÒÀ» ÇÔ [Notice 2] ARMJTAG ¿Í Flash Agent °£ÀÇ Á¤º¸±³È¯À» À§ÇÑ Parameter (32Bytes »çÀÌÁî) À§Ä¡ (Âü°í : 3.5.1 Flash Agent Parameter) [Notice 3] Flash ¿¡ Program ÇÏ·Á´Â Binary ÀÇ Buffer À§Ä¡ ÃÖÁ¾ÀûÀ¸·Î Target ÀÇ Flash Memory ¿¡ binary À̹ÌÁö¸¦ ´Ù¿î·Îµå ÇÏ´Â ÁÖü´Â Target ÀÇRAM ¿¡¼ ½ÇÇàµÇ´Â Flash Agent ÀÔ´Ï´Ù. Flash Agent ¿Í JICECommander °¡ »óÈ£ µ¿ÀÛÇϱâ À§Çؼ ½ºÅ©¸³Æ®°¡ ÇÊ¿äÇÑ °Í ÀÔ´Ï´Ù. 1) target.stop, mem.load : ÀÌ ¸í·É±îÁö ½ÇÇàÇϸé Target ÀÇ RAM ¿¡ Flash Agent °¡ Download µÇ¾îÁý´Ï´Ù. 2) bp.set.symbol agentend : ÀÌ ¸í·ÉÀ¸·Î ARMJTAG ´Â Flash AgentÀÇ agentend symbol À§Ä¡¿¡ Breakpoint ¸¦ ¼³Á¤ÇÕ´Ï´Ù. 3) flash.agent : ÀÌ ¸í·ÉÀ¸·Î ARMJTAG ´Â Parameter ÀÇ À§Ä¡, Binary Buffer size µîÀ» ¾Ë°Ô µË´Ï´Ù. 4) flash.erase : ÀÌ ¸í·ÉÀ¸·Î ARMJTAG ´Â Flash ¸¦ erase ÇÏ°Ô µË´Ï´Ù. 5) flash.program ¸í·ÉÀ» À§ ±×¸²À» Âü°íÇÏ¿© ¼³¸íÇÕ´Ï´Ù. ÀÏ´Ü JICECommander ´Â flash.agent ¿¡¼ Á¤ÇØÁø Flash buffer size ¸¸Å¾¿ binary ¸¦ ³ª´¯´Ï´Ù. ÀÌ°ÍÀÌ Block 0, 1,¡¦, Block N À¸·Î Ç¥½ÃµÇ¾îÀÖ½À´Ï´Ù. ÀÌ size ´Â 0x1000 ÀÌ º¸ÅëÀÌ¸ç ¸í·É¾î¿¡¼´Â ¾Æ·¡ ºÎºÐ¿¡ Àû¿ëµË´Ï´Ù. ¿¹ : flash.agent 0x00200000 0x00202000 0x1000 ÀÌÈÄ ARMJTAG ´Â ÀÌ Bolck Å©±â ¸¸Å Target RAM ÀÇ Binary Buffer ¿¡ Load ÇÕ´Ï´Ù. ´ÙÀ½ ´Ü°è·Î Flash Agent ¸¦ ½ÇÇàÇÏ°í Parameter ¼³Á¤ °ªÀ» Âü°íÇÏ¿© Flash Memory ¿¡ Download ÇÏ°Ô µË´Ï´Ù. ÀÌ °úÁ¤Àº Block N Ƚ¼ö¸¸Å ¹Ýº¹µË´Ï´Ù. |
|||