簡體   English   中英

TI的Red Hat mspgcc-430編譯錯誤

[英]TI's Red Hat mspgcc-430 compilation error

因此,我正在嘗試為Linux SO中的msp430fx編寫用C編寫的代碼。 我最近重新編譯了新版本的mspgcc,因為以前使用的是4.3,並且與擴展模式(20位-mlarge)不兼容/不穩定。

我關注了這個網站

安裝后,我運行一個簡單的(主要是,調用一些隨機函數)並且編譯良好,但是現在,編譯這個大項目時,我最終遇到了以下錯誤:

msp430-gcc -o build / MoteISTv5_mspgcc / projects / common / 03oos_macpong_prog -mmcu = msp430f5438a -Wall -Wno-main -mlarge -O0 -g -ggdb build / MoteISTv5_mspgcc / projects / common / voos_macpong / Moot_pgpong / 03oos_IST bsp / boards -Lbuild / MoteISTv5_mspgcc / kernel / openos -Lbuild / MoteISTv5_mspgcc / drivers -Lbuild / MoteISTv5_mspgcc / openstack -Lbuild / MoteISTv5_mspgcc / openapps -lopenstack -lopenapps -lkernel -ldrivers -lbsp / opt / m / lib430 msp430-none-elf / 4.9.1 /../../../../ msp430-none-elf / bin / ld:無法打開鏈接描述文件msp430f5438a.ld:無此類文件或目錄collect2:錯誤: ld返回了1個退出狀態scons:*** [build / MoteISTv5_mspgcc / projects / common / 03oos_macpong_prog]錯誤1 scons:由於錯誤而終止了建築物。

由於我對編譯器了解不多,因此需要一些幫助來解決此問題。 有人可以幫忙嗎?

提前感謝,

迪奧戈·瓜拉(Diogo Guerra)

編輯:在此新版本的msp430-elf-gcc中,此函數名為_read_SR()而不是__read_status_register()。

============================================= ==================

好吧,顯然我不得不使用-L強制將.ld文件的目錄放入編譯器標志。

但是現在有了新的msp430-gcc v4.9.1,他無法識別__read_status_register函數,而在mspgcc-legacy(4.6.3)中,他編譯時沒有任何問題...

我做了一些瀏覽,顯然bin庫不支持大多數__“特殊處理器功能”。 他們說我們必須使用內聯匯編來訪問特殊寄存器,這很尷尬。 “他們為什么要取消這種支持?

如果您需要使用內聯匯編,請參見__read_status_register()的示例

static inline __attribute__((always_inline))
unsigned int __read_status_register( void){
    unsigned int xReturn;
    asm volatile( "MOV  R2, %0"
                : "=r"  (xReturn)); // output parameters
    return xReturn;
}

要了解更多,您可以使用這個網站 ,我發現要真正有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM