2009年5月16日土曜日

DFUの初体験

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

コメントを投稿