[ÅŻҹ©ºî]
ICDI ¥Ç¥Ð¥Ã¥¬¤¬¤Ä¤¤¤Æ¤¤¤ë Stellaris LaunchPad ¤Ç»È¤¦¾ì¹ç¤Ë¤Ï¡¢ÆÃ¤Ë DFU ¤ò»È¤ï¤Ê¤¯¤È¤â¤¤¤¤¤Î¤Ç¤¹¤¬¡¢Ã±ÉʤǻȤ¦¾ì¹ç¤ËÈ÷¤¨¤Æ¤Î¥á¥â¡£
¾¤Î¥·¥ê¡¼¥º¤Ç¤âƱÍͤȻפï¤ì¤Þ¤¹¡£
¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤ò¥¯¥ê¥¢¤¹¤ë¡£
¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤¬¶õ(*(unsigned int *)0x0000.0004 == 0xFFFFFFFF)¤Î¾ì¹ç¡¢¼«Æ°Åª¤Ë USB DFU(¥Ö¡¼¥È¥í¡¼¥À)¤¬µ¯Æ°¤·¤Þ¤¹¡£
Stellaris LaunchPad ¤Î¾ì¹ç¡¢ICDI ¦¤«¤é¥Õ¥é¥Ã¥·¥å¤ò¾Ãµî¤·¤¿¤Î¤Á¤Ë¡¢SW ¤ò DEVICE ¤Ë¤·¡¢USB ¤ò¥Ç¥Ð¥¤¥¹Â¦¤ËÀܳ¤·¡¢LM Flash Programmer ¤Î Configuration ¥¿¥Ö¤Ç USB DFU ¤òÁªÂò¤¹¤ë¤À¤±¤Ç¤¹¡£
DFU Íѥɥ饤¥Ð¤Ï [StellarisWare ¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Õ¥©¥ë¥À]\windows_drivers ¤Ë¤¢¤ê¤Þ¤¹¡£
ÉÔ´øÈ¯¤Î BOOTCFG ¥ì¥¸¥¹¥¿¤Ë¥Ý¡¼¥È¡¢¥Ô¥óÈÖ¡¢ÏÀÍý¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¥ê¥»¥Ã¥È»þ¤Ë»ØÄꤷ¤¿¾ò·ï¤¬¤½¤í¤¦¤È DFU ¤¬µ¯Æ°¤¹¤ë¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£
¥Ý¡¼¥È¤ÎÀßÄêÅù¤Î¾ðÊó¤Ï¥Ç¡¼¥¿¥·¡¼¥È¤Î
Register 38: Boot Configuration (BOOTCFG), offset 0x1D0
ÉÔ´øÈ¯¥ì¥¸¥¹¥¿¤ÎÁàºî¤Ë¤Ä¤¤¤Æ¤Ï
8.2.3.6 Non-Volatile Register Programming
¤Ë¤¢¤ê¤Þ¤¹¡£
ÉÔ´øÈ¯¥ì¥¸¥¹¥¿¤Î°ìÉô¤Ï LM Flash Programmer ¤Ç¤âÁàºî¤Ç¤¤ë¤Î¤Ç¤¹¤¬¡¢BOOTCFG ¤Ï¤¤¤¸¤ì¤Ê¤¤¤è¤¦¤Ç¤¹¡£
»ÅÍͤ¬¤Ê¤¤¤Î¤Ç²¼µ¤Î¥³¡¼¥É¤Ç»î¤·¤¿¤È¤³¤í¡¢½ñ¤´¹¤ï¤Ã¤Æ PortB5=H (Stellaris LaunchPad ¤Î¾ì¹ç¡¢3.3V ¤È PB5 ¤È½ñ¤¤¤Æ¤¢¤ëÎÙ¤ê¹ç¤¦¥Ô¥ó¤ò¥·¥ç¡¼¥È)¤Ë¤¹¤ë¤³¤È¤Ç DFU ¤¬µ¯Æ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£PortB5 °Ê³°¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï²¼µ¥³¡¼¥ÉÃæ¤Î³ºÅö²Õ½ê¤ò½ñ¤´¹¤¨¤ì¤Ðưºî¤·¤Þ¤¹¡£Â¿Ê¬¡£
#include "inc/hw_flash.h" #include "inc/hw_ints.h" #include "inc/hw_sysctl.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/flash.h" #include "driverlib/interrupt.h" // ¥Ö¡¼¥È¥Ô¥ó¤ÎÀßÄê¡£ // °ìÅټ¹Ԥ·¤Æ¤·¤Þ¤¦¤È CPU Unlock ¤¹¤ë¤Þ¤ÇÊѹ¹¤Ç¤¤Ê¤¤¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£ void setbootcfg(void) { int BOOTCFGV ; // ½Ð²Ù»þÃÍ BOOTCFGV = 0xFFFFFFFE ; // ¤³¤³¤Ç¥Ý¡¼¥È¡¢¿®¹æÈֹ桢ÏÀÍý¤Î¥Ó¥Ã¥È¤ò¥¯¥ê¥¢ BOOTCFGV &= (~(FLASH_BOOTCFG_PORT_M + FLASH_BOOTCFG_PIN_M + FLASH_BOOTCFG_EN + FLASH_BOOTCFG_POL)) ; // ¤³¤³¤Ç¥Ý¡¼¥È¡¢¿®¹æÈֹ桢ÏÀÍý¤ò»ØÄê BOOTCFGV |= (FLASH_BOOTCFG_PORT_B + FLASH_BOOTCFG_PIN_5 + FLASH_BOOTCFG_POL) ; // BOOTCFG ¤Ë½ñ¤¹þ¤ß HWREG(FLASH_FMD) = BOOTCFGV; HWREG(FLASH_FMA) = 0x75100000; HWREG(FLASH_FMC) = FLASH_FMC_WRKEY | FLASH_FMC_COMT; // ½ñ¤¹þ¤ß´°Î»ÂÔ¤Á while(HWREG(FLASH_FMC) & FLASH_FMC_COMT) ; }
ÉÔ´øÈ¯¥ì¥¸¥¹¥¿ BOOTCFG ¤Î¥Ó¥Ã¥È¤Ï 1->0 ¤Ë¤·¤«ÊѤ¨¤é¤ì¤Ê¤¤¤¿¤á¡¢¥Ô¥ó¤Î»ØÄê¤ò¥×¥í¥°¥é¥à¤«¤éÊѹ¹¡¢¥¯¥ê¥¢¤¹¤ëÊýË¡¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¥Ç¡¼¥¿¥·¡¼¥È¤Î
4.3.4.3 Recovering a "Locked" Microcontroller
¤ÎÁàºî¤Ë¤è¤Ã¤Æ¡¢LSI Á´ÂΤò½é´ü²½¤¹¤ë¤³¤È¤Ç BOOTCFG ¤ò½Ð²Ù»þÃͤËÌ᤻¤Þ¤¹¡£
¤³¤³¤Ë½ñ¤¤¤Æ¤¢¤ëÁàºî¤ÏÌÌÅݤʤΤǤ¹¤¬¡¢LM Flash Programmer ¤Î Other Utilities ¥¿¥Ö¤Ë¤¢¤ë¡¢Debug Port Unlock ¤ò¹Ô¤¦¤³¤È¤Ç¡¢Æ±¤¸¸ú²Ì¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£
CPU ¼ïÊ̤ÎÁªÂò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢Stellaris® Blizzard-class ¤È¤Îµ½Ò¤¬ DATA SHEET ¤Ë¤¢¤ë¤Î¤Ç¡¢£±ÈÖÌܤ¬Àµ²ò¡¢¤Ç¤¹¤Í¡£Â¿Ê¬... (2013/1/31 ÄûÀµ)
¤¿¤À¤·¡¢DFU ¤«¤é¤³¤ÎÁàºî¤Ï¹Ô¤¨¤Ê¤¤¤Î¤Ç¡¢ICDI ¤Ê¤¤¤·¤Ï JTAG ¥×¥í¥°¥é¥Þ·Ðͳ¤Ç¤ÎÀܳ¤¬É¬Íפˤʤê¤Þ¤¹¡£
Îà»÷¤Îµ»ö¡§
LM4F120 Stellaris LaunchPad ¤Î UART5 ¤¬Æ°¤«¤Ê¤¤
¡¡¥«¥Æ¥´¥ê¡¡¡§¡¡¤â¤¯¤·¤¤¡Ã¥²¡¼¥à¡Ã¥ì¥·¥Ô¡Ã¥³¥ó¥Ô¥å¡¼¥¿¡Ã»¨Ê¸¡ÃÀ¸³è¡ÃÅŻҹ©ºî¡Ã¤ª¤¤¤·¤¤Å¹¥Þ¥Ã¥×
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Top¥Ú¡¼¥¸¤Ø¡¡|¡¡¤â¤Æ¤Ê¤¤SNS¡Ö¤â¤¯¤·¤¤¡×