keil5使用教程stm32 keil中怎么用asm函數(shù)?
keil中怎么用asm函數(shù)?用C51進(jìn)行單片機(jī)編程是事半功倍的結(jié)果,但是很多算法和編譯問(wèn)題,經(jīng)常使用ASM代碼更方便、高效。但由于某些原因,Keil在用ASM代碼實(shí)現(xiàn)C51時(shí)比Sdcc更麻煩。方法如下
keil中怎么用asm函數(shù)?
用C51進(jìn)行單片機(jī)編程是事半功倍的結(jié)果,但是很多算法和編譯問(wèn)題,經(jīng)常使用ASM代碼更方便、高效。但由于某些原因,Keil在用ASM代碼實(shí)現(xiàn)C51時(shí)比Sdcc更麻煩。方法如下:預(yù)處理指令pragmaasm啟動(dòng)ASM代碼預(yù)處理指令pragmaendasm結(jié)束ASM代碼。如果用這種方式直接編譯ASM代碼,會(huì)出現(xiàn)如下錯(cuò)誤:errorc272:“ASM/endasm”要求SRC控件處于活動(dòng)狀態(tài)解決方案:在“文件”工具欄中選擇當(dāng)前C51文件,單擊鼠標(biāo)右鍵查看文件選項(xiàng),將“生成匯編程序srcfile”和“匯編rcfile”的復(fù)選框從灰色改為黑色,即使它們是有效的!此時(shí),編譯沒(méi)有問(wèn)題,但是在鏈接過(guò)程中生成了兩個(gè)警告:**warningl1:unsolvedexternalsymbol**warningl2:reference data source code external。解決方案是在sourcegroup中添加一個(gè)lib文件,根據(jù)項(xiàng)目的內(nèi)容不同:c51s.lib-smallmodelc51c,不帶浮點(diǎn)操作。Lib-compactmodelc51l.Lib不帶浮點(diǎn)運(yùn)算-不帶浮點(diǎn)運(yùn)算的大型型號(hào)C51FPS.LIB文件-帶浮點(diǎn)運(yùn)算的Smallmodelc51FPC.LIB文件-帶浮點(diǎn)運(yùn)算的緊湊型C51FPL.LIB文件-帶有浮點(diǎn)運(yùn)算的大型模型庫(kù)位于Keil安裝目錄的/C51/lib/目錄中。