新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 在Keil C51函數(shù)中加入ASM代碼

在Keil C51函數(shù)中加入ASM代碼

作者: 時間:2016-11-11 來源:網絡 收藏
使用C51進行單片機編程是事半功倍的事,但是很多算法上以及編譯上的問題,往往使用ASM代碼更為方便又高效。但不知什么原因,Keil在實現(xiàn)C51夾雜ASM代碼比SDCC麻煩很多,方法如下:

預處理指令 #pragma asm 開始ASM代碼
預處理指令 #pragma endasm 結束ASM代碼

本文引用地址:http://2s4d.com/article/201611/316728.htm

如果就這樣直接編譯的話,會出現(xiàn)以下錯誤:
error C272: asm/endasm requires src-control to be active

解決方法:在 Files Toolbar 中選中當前C51文件,點右鍵查看文件選項,將 Generate Assembler SRC File 與 Assemble SRC File 的勾選由灰色變?yōu)楹谏?,即使這兩項有效!

這時進行編譯沒有問題,但是Link時產生了兩個警告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL

解決方法是需要在 Source Group 中添加一個 LIB 文件,根據(jù)專案的內容不同有所區(qū)別:
C51S.LIB - 沒有浮點運算的 Small model
C51C.LIB - 沒有浮點運算的 Compact model
C51L.LIB - 沒有浮點運算的 Large model
C51FPS.LIB - 帶浮點運算的 Small model
C51FPC.LIB - 帶浮點運算的 Compact model
C51FPL.LIB - 帶浮點運算的 Large model

LIB 方件在 Keil 安裝目錄下的 C51LIB 目錄中。



評論


技術專區(qū)

關閉