今日はDFUを初体験しました。
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=964224&bbs_page_no=1&bbs_id=1032
を参照して、IAPのことをちょっとわかりました。
CQ-STARMで8000000から8002fffまではUSBのIAPです、ソースがSTMのUSBLIB中に含めっているみたい。
if (DFU_Button_Read() != 0x00)
{
/* Test if user code is programmed starting from address 0x8003000 */
if (((*(vu32*)0x8003000) & 0x2FFF0000 ) == 0x20000000)
{
/* Jump to user application */
JumpAddress = *(vu32*) (ApplicationAddress + 4);
Jump_To_Application = (pFunction) JumpAddress;
/* Initialize user application's Stack Pointer */
__MSR_MSP(*(vu32*) ApplicationAddress);
Jump_To_Application();
}
} /* Otherwise enters DFU mode to allow user to program his application */
これはPB9を判断して、0の場合が8003000にジャンプするのこと。
ということは、IAPの領域を潰せないように、自分のコードが8003000に入ればOK
blinkのサンプルを改造して、DFUよりCQ-STARMにダウンロードしてみたら、LEDがピカピカになった。 ^^b
次は、Freertosだ。。。
0 件のコメント:
コメントを投稿