TI中文支持网
TI专业的中文技术问题搜集分享网站

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

想請問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烧写进去

Tsai Toby:

回复 灰小子:

1.所以CCS沒辦法自訂位置去燒錄? 之前使用Keil可以編寫.sct去實現 2.那另請問一下,像這樣兩個程式(bootloader & app) lnk_msp430fr2433.cmd除了更改 FRAM : origin = 0xC400, length = 0x3B80 有其他地方需要修改嗎? 目前只知道如果bootloader需要使用中斷的話,需要把中斷向量複製到RAM去。(這邊我應該沒理解錯誤吧?)

Xiaodong LI:

回复 Tsai Toby:

使用 #pragma 语句可以定义一段程序编译的起始地址

Tsai Toby:

回复 灰小子:

方法二:先烧写bootloader,然后通过bootloader的方式把app烧写进去

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

bootloader origin = 0xC400, length = 0x1400 (5KB)
APPorigin = 0xD800, length = 0x2780 (10KB)

Tsai Toby:

回复 Xiaodong LI:

1.但是我想要整個app code放在0xD800 (大小10kB)
這樣要怎麼設置?

2.利用bootloader從0xD800開始燒錄的話,那我app的project在編譯成BIN有需要特別設定嗎?

Tsai Toby:

方法二:先烧写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起始位址嗎?

赞(0)
未经允许不得转载:TI中文支持网 » CCS MSP430如何燒錄兩個code在不同區域?
分享到: 更多 (0)