- Äɲ䵤줿¹Ô¤Ï¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï
¤³¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
{{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 ¤¬Æ°¤«¤Ê¤¤]]