2015-01-07 46 views
0

我嘗試編譯半自助旅遊旅行社上的一個項目,但我有此錯誤:半自助旅遊旅行社OS:ROM分區

/usr/lib/gcc/msp430/4.5.3/../../../../msp430/bin/ld: dora_main.sky section `.data' will not fit in region `rom' 
/usr/lib/gcc/msp430/4.5.3/../../../../msp430/bin/ld: section .vectors loaded at [0000ffe0,0000ffff] overlaps section .data loaded at [0000ff0c,00010131] 
/usr/lib/gcc/msp430/4.5.3/../../../../msp430/bin/ld: region `rom' overflowed by 338 bytes 
collect2: ld returned 1 exit status 

有人告訴我,我不得不減少ROM分區。這是真的嗎?我怎麼能這樣做?

+0

您的Contiki項目很大嗎? – watou

回答

1

您的項目對於MSP430s存儲器來說很簡單。

您的選項基本上都是要麼修剪二進制或運氣好的話,你需要更新你的編譯器,如果你檢查使用的所有設備內存

1.修剪二進制

  • 的與-0s
  • 編譯通過除去半自助旅遊旅行社移除應用程序從二進制
  • 調試輸出等字符串,你可能不需要

2.使用MSP430X

如果你有一個MSP430超過32kByte(例如,閃光的MSP430F5335),你可以在你的makefile下列標誌更改內存模型:

CFLAGS += -mmemory-model=large \ 
    -ffunction-sections -fdata-sections \ 
    -mcode-region=far -mdata-region=far 
LDFLAGS += -mmemory-model=large \ 
    -Wl,-gc-sections \ 
    -mcode-region=far -mdata-region=far 

這將移動你的代碼和數據在過去的16位邊界使用所有的設備支持的內存。有關如何執行此操作的更多信息,請參閱Contiki Wiki的MSP430X部分。