¼Ò°³
CMSIS-DAP/DAPLink´Â Muse Lab¿¡¼ ½ÃÀÛÇÑ Çϵå¿þ¾î ¹× ¼ÒÇÁÆ®¿þ¾î ¿ÀÇ ¼Ò½º µð¹ö±× ÇÁ·ÎºêÀÔ´Ï´Ù. ¿Ü°üÀÌ Àý¹¦ÇÏ°í ÄÄÆÑÆ®ÇÕ´Ï´Ù. ÀαâÀÖ´Â J-Link_OB/st-¸µÅ©¿Í ºñ±³ÇÒ ¶§ ·¹ÄÚµù ¼Óµµ´Â ºü¸£Áö ¸¸ °¡°ÝÀº ÀúÀÛ±Ç À§Çè¾øÀÌ ÈξÀ ³·½À´Ï´Ù. DAPLink´Â ¼¼ °¡Áö ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÕ´Ï´Ù. µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹Ö, Á÷·Ä Æ÷Æ® ¹× µð¹ö±ë Áö¿øÀÔ´Ï´Ù. ¶ÇÇÑ ºÎÆ® ·Î´õÀÇ µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© DAPLink Æß¿þ¾î¸¦ ¾÷µ¥ÀÌÆ® ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±â´É
¡Ü ¿ÀÇ ¼Ò½º Çϵå¿þ¾î, Çϵå¿þ¾î ȸ·Îµµ Á¦°ø
¡Ü ¿ÀÇ ¼Ò½º ¼ÒÇÁÆ®¿þ¾î, ¼Ò½º ÄÚµå ¹× Æß¿þ¾î Á¦°ø
¡Ü STM32, GD32, NRF51/52 ¿Í °°Àº ARM Cortex Äھ ±â¹ÝÀ¸·Î ÇÑ ´ë»ó MCU ÇÁ·Î±×·¡¹Ö ¹× µð¹ö±ë Áö¿ø
¡Ü Áö¿ø SWD ¹× JTAG µð¹ö±ë Ä¿³ØÅÍ
µå¶óÀ̹ö ¾ø´Â CMSIS-DAP ±â¹Ý µð¹ö±ë ÀÎÅÍÆäÀ̽º´Â CMSIS-DAP µð¹ö±× ÇÁ·ÎÅäÄÝÀÌ ½ÇÇàµÇ´Â ä³ÎÀ» Á¦°øÇÕ´Ï´Ù. À̸¦ ÅëÇØ ¸ðµç ¾÷°è Ç¥ÁØ µµ±¸ üÀÎÀÌ ´ë»ó ½Ã½ºÅÛÀ» ÇÁ·Î±×·¡¹ÖÇÏ°í µð¹ö±ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö¿øµÇ´Â µµ±¸:
?ÄÉÀÏ MDK
?IAR ¿öÅ©º¥Ä¡
?PyOCD
?´Ù¸¥ CMSIS-DAP °¡´ÉÇÑ µð¹ö°Å
¡Ü USB Á÷·Ä Æ÷Æ® Áö¿ø
DAPLink µð¹ö±× ÇÁ·Îºê´Â ´ë»ó ½Ã½ºÅÛÀÇ TTL UART¿¡ ¿¬°áÇÒ ¼ö ÀÖ´Â USB Á÷·Ä Æ÷Æ®µµ Á¦°øÇÕ´Ï´Ù. USB Á÷·Ä Æ÷Æ®´Â Windows ½Ã½ºÅÛ¿¡¼ COM Æ÷Æ®·Î Ç¥½ÃµÇ°Å³ª Linux ½Ã½ºÅÛ¿¡¼/dev/ty ÀÎÅÍÆäÀ̽º·Î Ç¥½ÃµÇ°í Mac OS¿¡¼´Â dev/usbmodemÀ¸·Î Ç¥½ÃµË´Ï´Ù.
¡Ü USB µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹Ö Áö¿ø
DAPLink µð¹ö±× ÇÁ·Îºê´Â È£½ºÆ® ÄÄÇ»ÅÍ¿¡µµ USB µð½ºÅ©·Î ³ªÅ¸³³´Ï´Ù. ÀÌÁø (.bin) ¹× 16 Áø¼ö (.hex) Çü½ÄÀÇ ÇÁ·Î±×·¥ ÆÄÀÏÀ» USB µð½ºÅ©¿¡ º¹»ç ÇÑ ´ÙÀ½ ´ë»ó ½Ã½ºÅÛÀÇ ¸Þ¸ð¸®·Î ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ÀÎÅÍÆäÀ̽º Æß¿þ¾î¿¡ Ç÷¡½Ã ÇÁ·Î±×·¡¹Ö ¾Ë°í¸®ÁòÀ» ³»ÀåÇÏ¿© ¼öÇàµË´Ï´Ù. µû¶ó¼ µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹ÖÀ» À§Çؼ´Â »ç¿ëµÇ´Â DAPLink Æß¿þ¾î ¹öÀüÀÌ ´ë»ó ½Ã½ºÅÛ ¿ëÀ¸·Î Ưº°È÷ ±¸ÃàµÇ¾î¾ßÇÕ´Ï´Ù.
¡Ü ºÎÆ® ·Î´õÀÇ µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º·Î Æß¿þ¾î ¾÷±×·¹À̵å Áö¿ø
¡Ü Áö¿ø ¼ÒÇÁÆ®¿þ¾î Àç¼³Á¤, Æß¿þ¾î ´Ù¿î·Îµå¸¦ ¿Ï·áÇÏ¸é ´ë»ó º¸µå°¡ Àç¼³Á¤µË´Ï´Ù
µå¶óÀ̹ö ¼³Ä¡
Linux ¹× Mac OS¿¡´Â µå¶óÀ̹ö°¡ ÇÊ¿äÇÏÁö ¾ÊÁö¸¸ Windows 10 º¸´Ù ¿À·¡µÈ Windows ¹öÀü¿¡´Â Á÷·Ä Æ÷Æ® µå¶óÀ̹ö°¡ ÇÊ¿äÇÕ´Ï´Ù. https://github.com/wuxx/nanoDAP/tree/master/driver/windows7_serial_driver µå¶óÀ̹ö¸¦ ´Ù¿î·ÎµåÇϽʽÿÀ. CMSIS-DAP ¡°CMSIS_DAP.inf¡± ¶Ç´Â ¡°windows7_serial_driver¡± ¸¦ ¼³Ä¡ÇÏ°í DAPLink¿¡ ¡°mbedWinSerial_16466.exe¡± ¸¦ ¼³Ä¡ÇϽʽÿÀ.
ÇÁ·Î±×·¥ÇÏ´Â ¹æ¹ý
1. SWD ¶Ç´Â JTAG Ä¿³ØÅÍ·Î ´ë»ó º¸µå¿Í CMSIS-DAP/DAPLink µð¹ö±× ÇÁ·Îºê¸¦ ¿¬°áÇϽʽÿÀ
2. CMSIS-DAP/DAPLink µð¹ö±× ÇÁ·Îºê¸¦ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ¿¬°áÇÕ´Ï´Ù.
¸ðµç °ÍÀÌ ÀßµÇ¸é °¡»ó Á÷·Ä Æ÷Æ®¿Í USB-HID ÀåÄ¡°¡ ÄÄÇ»ÅÍÀÇ ÀåÄ¡ °ü¸®ÀÚ¿¡ ³ªÅ¸³³´Ï´Ù.
DAPLink µð¹ö±× ÇÁ·ÎºêÀÇ °æ¿ì "DAPLINK" ¶ó´Â À̸§ÀÇ USB µð½ºÅ©µµ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ³ªÅ¸³³´Ï´Ù.
3. µð¹ö±ë µµ±¸¸¦ ±¸¼ºÇÕ´Ï´Ù. Keil MDK¸¦ ¿¹·Î µé¾îº¸½Ê½Ã¿À (SWD ¿¬°á).
(1) KeilÀ» ¿°í "Target ¿É¼Ç"-> "µð¹ö±×" ¸¦ Ŭ¸¯ ÇÑ ´ÙÀ½ "CMSIS-DAP µð¹ö°Å" ¸¦ ¼±ÅÃÇϽʽÿÀ.
(2) "¼³Á¤" ¹öÆ°À» Ŭ¸¯ÇÏ°í ¾Æ·¡¿Í °°ÀÌ "µð¹ö±×" ÆäÀÌÁö¸¦ ±¸¼ºÇÕ´Ï´Ù.
(3) "Flash ´Ù¿î·Îµå" ÆäÀÌÁö ±¸¼º
4. "´Ù¿î·Îµå" ¹öÆ°À» Ŭ¸¯Çϰųª F8 À» ÀÔ·ÂÇÏ¿© Äڵ带 ´ë»ó º¸µå¿¡ ÇÁ·Î±×·¡¹ÖÇϽʽÿÀ.
Á÷·Ä Æ÷Æ®¸¦ »ç¿ëÇÏ´Â ¹æ¹ý
1. ¾Æ·¡ ±×¸²°ú °°ÀÌ CMSIS-DAP/DAPLink µð¹ö±× ÇÁ·Îºê¸¦ ´ë»ó º¸µå¿Í ¿¬°áÇϽʽÿÀ.
2. CMSIS-DAP/DAPLink µð¹ö±× ÇÁ·Îºê¸¦ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ¿¬°áÇϽʽÿÀ. ÀåÄ¡ °ü¸®ÀÚ¿¡¼ ÀÏ·Ã Æ÷Æ® ¹øÈ£ È®ÀÎ
3. ÆÛƼ, SSCOM°ú °°Àº È£½ºÆ® ÄÄÇ»ÅÍ¿¡¼ Á÷·Ä Æ÷Æ® µµ±¸¸¦ ¿±´Ï ´Ù. ´ë»ó º¸µå¿¡ ¿¬°áÇÒ ½Ã¸®¾ó Æ÷Æ® ¹øÈ£ ¹× Àü¼Û ¼Óµµ¸¦ ±¸¼ºÇÕ´Ï´Ù. ±×·± ´ÙÀ½ È£½ºÆ® ÄÄÇ»ÅÍ´Â ´ë»ó º¸µå¿Í Åë½Å ÇÒ ¼ö ÀÖ½À´Ï´Ù.
µå·¡±× ¾Ø µå·Ó ¹æ¹ý (DAPLink)
1. SWD ¶Ç´Â JTAG Ä¿³ØÅÍ·Î DAPLink µð¹ö±× ÇÁ·Îºê¸¦ ´ë»ó º¸µå¿Í ¿¬°áÇϽʽÿÀ
2. DAPLink¸¦ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ¿¬°áÇϽʽÿÀ. "DAPLINK" ¶ó´Â À̸§ÀÇ USB µð½ºÅ©°¡ PC¿¡ ³ªÅ¸³³´Ï´Ù. ÀÌÁø (.bin) ¹× 16 Áø¼ö (.hex) Çü½ÄÀÇ ÇÁ·Î±×·¥ ÆÄÀÏÀ» µå·¡±×ÇÏ¿© USB µð½ºÅ©¿¡ ³õ½À´Ï´Ù. ±×·± ´ÙÀ½ Æß¿þ¾î°¡ ´ë»ó ½Ã½ºÅÛÀÇ ¸Þ¸ð¸®¿¡ ÇÁ·Î±×·¡¹ÖµË´Ï´Ù.
Æß¿þ¾î¸¦ ¾÷µ¥ÀÌÆ®ÇÏ´Â ¹æ¹ý (DAPLink)
1. dupont ¶óÀÎÀ¸·Î nRST¿Í DAPLinkÀÇ GND¸¦ ¿¬°áÇϽʽÿÀ. ±×·± ´ÙÀ½ DAPLink¸¦ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ¿¬°áÇϽʽÿÀ. "MAINTENANCE" ¶ó´Â USB µð½ºÅ©°¡ PC¿¡ ³ªÅ¸³³´Ï´Ù.
2. GND ÇÉÀ¸·Î nRST¸¦ ºÐ¸®ÇϽʽÿÀ. »õ Æß¿þ¾î¸¦ µå·¡±×ÇÏ¿© USB µð½ºÅ©¿¡ ³õ½À´Ï´Ù. ±×·± ´ÙÀ½ »õ Æß¿þ¾î°¡ DAPLink µð¹ö±× ÇÁ·ÎºêÀÇ ¸Þ¸ð¸®¿¡ ÇÁ·Î±×·¡¹ÖµË´Ï´Ù.
OpenOCD·Î ÇÁ·Î±×·¡¹ÖÇÏ´Â ¹æ¹ý
´ë»ó MCU¸¦ OpenOCD·Î ÇÁ·Î±×·¡¹ÖÇÏ´Â ½ºÅ©¸³Æ® µµ±¸¸¦ Á¦°øÇÕ´Ï´Ù. https://github.com/wuxx/openocd-toolbox. ½ºÅ©¸³Æ® µµ±¸¸¦ ´Ù¿î·ÎµåÇϽʽÿÀ. ±×·± ´ÙÀ½ ¼³Ä¡ÇÏÁö ¾Ê°í ½ºÅ©¸³Æ®¸¦ µÎ ¹ø Ŭ¸¯ÇϽʽÿÀ.
¹®¼
¡Ü »ç¿ëÀÚ ¼³¸í¼: https://github.com/wuxx/nanoDAP/blob/master/doc/README.md
¡Ü Çϵå¿þ¾î ¹× ¼ÒÇÁÆ®¿þ¾î: https://github.com/wuxx/nanoDAP
¡Ü Win7 ¿ë Á÷·Ä Æ÷Æ® µå¶óÀ̹ö: https://github.com/wuxx/nanoDAP/tree/master/driver/windows7_serial_driver
¡Ü OpenOCD ¿ë ½ºÅ©¸³Æ® µµ±¸: https://github.com/wuxx/openocd-toolbox
FAQ
Q: ÄÄÇ»ÅÍ¿¡ Windows 7 ¿¡ Á÷·Ä Æ÷Æ® µå¶óÀ̹ö°¡ ¾ø´Ù´Â ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù.
A: Linux ¹× Mac OS¿¡´Â µå¶óÀ̹ö°¡ ÇÊ¿äÇÏÁö ¾ÊÁö¸¸ Windows 10 ÀÌÀü ¹öÀü¿¡´Â Á÷·Ä Æ÷Æ® µå¶óÀ̹ö°¡ ÇÊ¿äÇÕ´Ï´Ù. https://github.com/wuxx/nanoDAP/tree/master/driver/windows7_serial_driver µå¶óÀ̹ö¸¦ ´Ù¿î·ÎµåÇϽʽÿÀ.
Q: Keil MDK´Â "SWD/JTAG Åë½Å ½ÇÆÐ" ¸¦ ¹¯½À´Ï´Ù. ¾î¶»°Ô ÇØ°áÇմϱî?
A: ¸ÕÀú µð¹ö±× ÇÁ·Îºê¿Í ´ë»ó º¸µåÀÇ ÇÉÀÌ ¿Ã¹Ù¸£°Ô ¿¬°áµÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ. µÎ ¹ø° ´ë»ó º¸µåÀÇ Àü¾Ð ÃæºÐÇÑÁö È®ÀÎ ºÎŹµå¸³´Ï´Ù. µð¹ö±× ÇÁ·Îºê·Î ´ë»ó º¸µå¿¡ Àü¿øÀ» °ø±ÞÇÏ´Â °æ¿ì USBÀÇ ÃÖ´ë Ãâ·Â Àü·ù°¡ 500mA À̹ǷΠÀü¾ÐÀÌ ºÎÁ·ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Q: Keil MDK´Â "RDDI-DAP ¿À·ù" ¸¦ ¹¯½À´Ï´Ù. ¾î¶»°Ô ÇØ°áÇմϱî?
A: ¸ÕÀú µð¹ö±× ÇÁ·Îºê¿Í ´ë»ó º¸µåÀÇ ÇÉÀÌ ¿Ã¹Ù¸£°Ô ¿¬°áµÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ. µÑ°, µàÆù ȸ¼±ÀÌ ³Ê¹« ±æ¸é µàÆù ȸ¼± °£ÀÇ ½ÅÈ£°¡ ¼·Î °£¼·ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ´õ ªÀº µàÆù ȸ¼±À» »ç¿ëÇϽʽÿÀ. ÇÁ·Î±×·¡¹Ö ¼Óµµ¸¦ ÁÙÀÌ·Á°í ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î À§ÀÇ ¹æ¹ýÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù.
Q: DAPLink´Â µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹ÖÀ» Áö¿øÇϴ ĨÀº ¹«¾ùÀԴϱî?
A: DAPLink´Â ¿©·¯ ĨÀÇ µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹ÖÀ» Áö¿øÇÕ´Ï´Ù. https://github.com/ARMmbed/DAPLink/tree/master/source/family. ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù ¾ÕÀ¸·Î ARM Ä¿¹Â´ÏƼÀÇ °³¹ß·Î ´õ ¸¹Àº ĨÀÌ Áö¿ø µÉ °ÍÀÔ´Ï´Ù. ÀÚ½ÅÀÇ Ä¨À» µå·¡±× ¾Ø µå·Ó ÇÁ·Î±×·¡¹ÖÀ» Áö¿øÇؾßÇÏ´Â °æ¿ì ¼Ò½º Äڵ带 ÂüÁ¶ÇÏ¿© ÀϺΠÄڵ带 º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.
Q: Linux¿¡¼ µð¹ö±ë¿¡ CMSIS-DAP/DAPLink µð¹ö±× ÇÁ·Îºê¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï±î?
A: Linux¿¡¼´Â OpenOCD¿Í ÇÔ²² CMSIS-DAP/DAPLink¸¦ »ç¿ëÇÏ¿© ´ë»ó MCU¸¦ ÇÁ·Î±×·¡¹ÖÇÏ°í µð¹ö±ëÇÒ ¼ö ÀÖ½À´Ï´Ù. OpenOCD´Â ¿ÀÇ ¼Ò½ºÀÌ¸ç °·ÂÇÑ ±â´ÉÀ» °®Ãá Àü ¼¼°èÀûÀ¸·Î Àαâ ÀÖ´Â µð¹ö±ë µµ±¸ÀÔ´Ï´Ù. OpenOCD´Â Å©·Î½º Ç÷§ÆûÀ̹ǷΠOpenOCD¸¦ »ç¿ëÇÏ¿© ±¸¼º ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ¿© Windows¿¡¼ MCU¸¦ µð¹ö±ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¹è¼Û ¸ñ·Ï
¡Ü Å°Æ® 1: CMSIS-DAP µð¹ö±× ÇÁ·Îºê * 1 + 20cm µàÆþ ¶óÀÎ * 4
¡Ü Å°Æ® 2: DAPLink µð¹ö±× ÇÁ·Îºê * 1 + 20cm µàÆþ ¶óÀÎ * 4