0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在MPLAB XC16編譯器內(nèi)建函數(shù)

麥辣雞腿堡 ? 來(lái)源:Microchip微芯 ? 作者:Microchip微芯 ? 2023-01-22 17:37 ? 次閱讀

MPLAB XC16編譯器提供了一系列內(nèi)建函數(shù),使C語(yǔ)言編程人員可以訪問(wèn)目前只能通過(guò)行內(nèi)匯編訪問(wèn)的匯編運(yùn)算符或機(jī)器指令。內(nèi)建函數(shù)名都有一個(gè)前綴__builtin_,源代碼用C語(yǔ)言編寫,在句法上類似于函數(shù)調(diào)用,但它會(huì)被編譯成直接實(shí)現(xiàn)功能的匯編代碼,且不涉及函數(shù)調(diào)用或庫(kù)函數(shù)。

相比于使用行內(nèi)匯編,內(nèi)建函數(shù)具有以下優(yōu)勢(shì):

1.提供專用的內(nèi)建函數(shù)可以簡(jiǎn)化編碼。

2.使用行內(nèi)匯編時(shí)會(huì)禁止某些優(yōu)化功能,而使用內(nèi)建函數(shù)則不會(huì)。

3.對(duì)于使用專用寄存器的機(jī)器指令來(lái)說(shuō),編寫行內(nèi)匯編代碼時(shí)要特別注意避免寄存器分配錯(cuò)誤。

而內(nèi)建函數(shù)使這個(gè)過(guò)程更簡(jiǎn)單,無(wú)需考慮每個(gè)機(jī)器指令的特殊寄存器要求。內(nèi)建函數(shù)的編程接口和使用說(shuō)明請(qǐng)參考《MPLAB XC16編譯器用戶指南》。

pYYBAGO5PWWAA4EdAAEUB2TN8to519.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62604
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49129
  • MPLAB
    +關(guān)注

    關(guān)注

    9

    文章

    215

    瀏覽量

    66883
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GCC內(nèi)建函數(shù)問(wèn)題?。?!

    目前的代碼中使用了GCC的內(nèi)建函數(shù)__builtin_clz()和__builtin_popcount(),在CCS中編譯不能通過(guò),請(qǐng)問(wèn),CCS是否有庫(kù)支持這兩個(gè)函數(shù),多謝!
    發(fā)表于 06-21 18:30

    MPLAB X IDE和XC16編譯器適用的頭文件是什么

    XC16編譯器必須有新的適用的頭文件。有人有建議嗎?順便說(shuō)一下,我能夠成功地使用SPI總線進(jìn)行文本討論,從而成功地實(shí)現(xiàn)了SPI通信。 以上來(lái)自于百度翻譯 以下為原文 I'm using Explorer
    發(fā)表于 03-20 12:08

    MPLAB-X 3.55無(wú)法識(shí)別XC16編譯器

    一周前安裝它)。GC30編譯器是在C:\Studio\Microchip \ MPLABC30\v3.31中,為什么MPLAB-X找不到XC16????? 以上來(lái)自于百度翻譯 以下為原文 I am
    發(fā)表于 04-01 14:39

    xc16編譯器編譯延遲向量

    大家好。和平在每個(gè)人身上。要編譯長(zhǎng)代碼的所有部分,而我的編譯器XC16 V 1.31處于優(yōu)化級(jí)別。S是代碼的一部分。當(dāng)在S模式下編譯時(shí),它不編譯
    發(fā)表于 04-17 08:48

    XC16編譯器編譯失敗

    這段代碼用XC16編譯器編譯失?。焊郊俏业腗PLABX項(xiàng)目。誰(shuí)能告訴我如何使用_u prog_storage類和ANSI編譯選項(xiàng)?
    發(fā)表于 04-03 07:13

    內(nèi)置函數(shù)真的內(nèi)置到XC16編譯器嗎?

    內(nèi)置函數(shù)是否在“庫(kù)”中,或者它們真的“內(nèi)置”到XC16編譯器嗎?不可能從編譯器中分離出任何未使用的內(nèi)置代碼,就像圖書館那樣嗎?我在PIC33E中使用以下內(nèi)容:u
    發(fā)表于 05-07 11:26

    MPLAB XC編譯器免費(fèi)下載

    MPLAB XC編譯器免費(fèi)下載
    發(fā)表于 11-23 16:07 ?58次下載

    MPLAB IDE X v2.00軟件免費(fèi)下載

    MPLAB X IDE v2.00按照單片機(jī)的位數(shù),有XC8、XC16、XC32,三款編譯器,可以有選擇的安裝也可以都安裝上去。
    發(fā)表于 04-17 17:26 ?233次下載
    <b class='flag-5'>MPLAB</b> IDE X v2.00軟件免費(fèi)下載

    MPLAB X v2.10軟件下載

    MPLAB X IDE v2.00按照單片機(jī)的位數(shù),有XC8、XC16XC32,三款編譯器,可以有選擇的安裝也可以都安裝上去。
    發(fā)表于 04-17 18:24 ?220次下載
    <b class='flag-5'>MPLAB</b> X v2.10軟件下載

    MPLAB? XC8 C編譯器的架構(gòu)特性

    本視頻介紹了MPLAB? XC8 C編譯器的架構(gòu)特性。該編譯器編譯過(guò)程不同于傳統(tǒng)的編譯器,采用
    的頭像 發(fā)表于 05-23 12:47 ?6046次閱讀
    <b class='flag-5'>MPLAB</b>? <b class='flag-5'>XC</b>8 C<b class='flag-5'>編譯器</b>的架構(gòu)特性

    如何將C源代碼從MPLAB C18編譯器移植到MPLAB XC8C編譯器的詳細(xì)概述

    本文檔介紹了針對(duì)PIC18 MCU的MPLAB? C編譯器(以前的說(shuō)法,本文檔稱為MPLAB C18)與MPLAB XC8 C
    發(fā)表于 06-07 09:28 ?30次下載
    如何將C源代碼從<b class='flag-5'>MPLAB</b> C18<b class='flag-5'>編譯器</b>移植到<b class='flag-5'>MPLAB</b> <b class='flag-5'>XC</b>8C<b class='flag-5'>編譯器</b>的詳細(xì)概述

    MPLAB? XC16的詳細(xì)用戶指南

    本文主要介紹了MPLAB? XC16的詳細(xì)用戶指南
    發(fā)表于 06-05 17:29 ?58次下載

    安裝MPLAB XC C編譯器并獲取許可證

    安裝MPLAB XC C編譯器并獲取許可證說(shuō)明。
    發(fā)表于 04-29 09:42 ?16次下載

    面向嵌入式工程師的MPLAB XC16用戶指南

    本文檔介紹了5個(gè)適用于16位器件和MPLAB? XC16 C編譯器的代碼示例,這些代碼示例使用通用C 接口(Common C Interface,CCI)。關(guān)于CCI 的更多信息,請(qǐng)參
    發(fā)表于 04-29 10:26 ?25次下載

    MPLAB XC16 C編譯器用戶指南

    電子發(fā)燒友網(wǎng)站提供《MPLAB XC16 C編譯器用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 09:27 ?1次下載
    <b class='flag-5'>MPLAB</b> <b class='flag-5'>XC16</b> C<b class='flag-5'>編譯器</b>用戶指南