今日は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 件のコメント:
コメントを投稿