將使用66核的程式移植到64x+時,執行時顯示如下:
[e0800]原來在程式中有這樣一條語句instruction invalid for c6400+
mfence
1 assembly error, no assembly warnings
errors in source - assembler aborted
asm(" mfence ");查詢64x+是否有此彙編指令:在ccs介面,help->help contents,然後去在search框搜尋mfence,顯示如下:
intrinsic
c6200
c6400
c6400+
c6700
c6700/c6700+
c6740
_abs
yesyes
yesyes
yesyes
_mfence
yes
得知mfence只有在c6600中才有,c6400+無此指令。
最後將此指令注釋替換掉,即可編譯通過。
解決思路記錄:當時是結合靜態庫編譯程式,在包含asm(" mfence ")的函式一直報錯誤,說此函式未定義。當時確認了半天,函式明明已定義了,想不明白為什麼出錯。後來去看靜態庫時,才發現,在編譯靜態庫時,雖然在problem視窗下沒什麼errors、warning。當時就沒細看console視窗,但控制台console視窗顯示
compilation failuregmake: *** [test.obj] error 1
gmake: target `all' not remade because of errors.
[e0800]然後順藤摸瓜,解決問題。instruction invalid for c6400+
mfence
1 assembly error, no assembly warnings
errors in source - assembler aborted
將 Linux 應用程式移植到 64 位系統上 2
從 32 位系統移植到 64 位系統 本節介紹如何解決一些常見的問題 宣告要想讓您的 在 32 位和 64 位系統上都可以工作,請注意以下有關宣告的用法 表示式在 c c 中,表示式是基於結合律 操作符的優先順序和一組數學計算規則的。要想讓表示式在 32 位和 64 位系統上都可以正確工作,請注意以...
將FrameBuffer測試程式移植到板子上
目標板用的ti 的omap138,將之前交叉編譯好的directfb和freetype庫壓縮後,用u盤拷到目標板系統的目錄下 opt directfb opt freetype解壓。由於windows不支援符號鏈結,直接複製包會出些錯誤,只好先壓縮了再解壓,幸好板子上的核心上有解壓程式。再把字型檔案...
將 MFC 應用程式移植到 Linux
第一種方法 找乙個類似mfc框架的程式庫。您可能仍然在維護用微軟基礎類庫 microsoft foundation classes mfc 構建的舊的 windows 應用程式,而現在卻有客戶要求 linux 版本,該怎麼辦呢?在您的團隊中可能有技術熟練的 mfc 開發人員,但如何達到加速 linu...