This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS MSP430如何燒錄兩個code在不同區域?

Other Parts Discussed in Thread: MSP430FR2433

想請問CCS MSP430如何燒錄兩個code在不同區域?

型號:MSP430FR2433

bootloader燒入在0xC400 (length:0x1400)

app燒在0xD800 (length:0x2780)

是藉由lnk_msp430fr2433.cmd去更改嗎?

但如果燒完bootloader再燒錄app,app會不會把bootloader區塊清除掉?

  • 方法一:把bootloader和app编译生成的txt文件合并成一个,然后烧录
    方法二:先烧写bootloader,然后通过bootloader的方式把app烧写进去
  • 1.所以CCS沒辦法自訂位置去燒錄?
    之前使用Keil可以編寫.sct去實現

    2.那另請問一下,像這樣兩個程式(bootloader & app)
    lnk_msp430fr2433.cmd除了更改
    FRAM : origin = 0xC400, length = 0x3B80
    有其他地方需要修改嗎?
    目前只知道如果bootloader需要使用中斷的話,需要把中斷向量複製到RAM去。(這邊我應該沒理解錯誤吧?)

  • 使用 #pragma 语句可以定义一段程序编译的起始地址
  • 方法二:先烧写bootloader,然后通过bootloader的方式把app烧写进去

    我現在先燒錄bootloader code想利用write FRAM把app直接從0xD800開始填寫
    但我發現我的app產生出來的bin file是15KB,這邊要怎麼修改才可以產生出我所規劃的10K size?

    bootloader origin = 0xC400, length = 0x1400 (5KB)
    APP origin = 0xD800, length = 0x2780 (10KB)
  • 1.但是我想要整個app code放在0xD800 (大小10kB)
    這樣要怎麼設置?

    2.利用bootloader從0xD800開始燒錄的話,那我app的project在編譯成BIN有需要特別設定嗎?
  • 方法二:先烧写bootloader,然后通过bootloader的方式把app烧写进去
    目前使用上面的方法,link.cmd做以下修正
    (Bootloader)
    FRAM : origin = 0xC400, length = 0x1400

    (APP)
    FRAM : origin = 0xD800, length = 0x2780
    編譯後產生出10kB的bin檔
    ==========================================
    利用bootloader燒入APP(從0xD800)開始

    0xFFFE~0xFFFF不覆蓋保留原本的(reset vector)

    最後利用asm(" mov &0xD800,PC;");跳到APP
    程式就不知道飛去哪了...轉跳到APP不是把PC指向APP起始位址嗎?