¥È¥Ã¥× °ìÍ÷ ¸¡º÷ ¥Ø¥ë¥× RSS ¥í¥°¥¤¥ó

LM4F120 ¤Î DFU ¤ò»È¤¦¤ÎÊѹ¹ÅÀ

  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
{{category ÅŻҹ©ºî}}
!!!LF4F120 : Stellaris ¤Î DFU ¤ò»ÈÍѤ¹¤ë (2013/1)
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 ÄûÀµ)
CPU ¼ïÊ̤ÎÁªÂò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢Stellaris® Blizzard-class ¤È¤Îµ­½Ò¤¬ DATA SHEET ¤Ë¤¢¤ë¤Î¤Ç¡¢£±ÈÖÌܤ¬Àµ²ò¡¢¤Ç¤¹¤Í¡£Â¿Ê¬... (2013/1/31 ÄûÀµ)

¤¿¤À¤·¡¢DFU ¤«¤é¤³¤ÎÁàºî¤Ï¹Ô¤¨¤Ê¤¤¤Î¤Ç¡¢ICDI ¤Ê¤¤¤·¤Ï JTAG ¥×¥í¥°¥é¥Þ·Ðͳ¤Ç¤ÎÀܳ¤¬É¬Íפˤʤê¤Þ¤¹¡£

----
Îà»÷¤Îµ­»ö¡§
[[LM4F120 Stellaris LaunchPad ¤Î UART5 ¤¬Æ°¤«¤Ê¤¤]]