在Keil C51函數(shù)中加入ASM代碼
預(yù)處理指令 #pragma asm 開始ASM代碼
預(yù)處理指令 #pragma endasm 結(jié)束ASM代碼
如果就這樣直接編譯的話,會出現(xiàn)以下錯(cuò)誤:
error C272: asm/endasm requires src-control to be active
解決方法:在 Files Toolbar 中選中當(dāng)前C51文件,點(diǎn)右鍵查看文件選項(xiàng),將 Generate Assembler SRC File 與 Assemble SRC File 的勾選由灰色變?yōu)楹谏?,即使這兩項(xiàng)有效!
這時(shí)進(jìn)行編譯沒有問題,但是Link時(shí)產(chǎn)生了兩個(gè)警告:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
解決方法是需要在 Source Group 中添加一個(gè) LIB 文件,根據(jù)專案的內(nèi)容不同有所區(qū)別:
C51S.LIB - 沒有浮點(diǎn)運(yùn)算的 Small model
C51C.LIB - 沒有浮點(diǎn)運(yùn)算的 Compact model
C51L.LIB - 沒有浮點(diǎn)運(yùn)算的 Large model
C51FPS.LIB - 帶浮點(diǎn)運(yùn)算的 Small model
C51FPC.LIB - 帶浮點(diǎn)運(yùn)算的 Compact model
C51FPL.LIB - 帶浮點(diǎn)運(yùn)算的 Large model
LIB 方件在 Keil 安裝目錄下的 C51LIB 目錄中。
評論