衡阳派盒市场营销有限公司

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

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

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

MPLAB XC8編譯器得到錯(cuò)誤function什么意思

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

問:我得到一個(gè)錯(cuò)誤:“function * appears in multiple call graphs: rooted at *”,這是什么意思?

答:它意味著有一個(gè)函數(shù)既在中斷里調(diào)用了又在主函數(shù)中調(diào)用了,而編譯器是不支持重入的。因?yàn)楹瘮?shù)是不能重入的,所以它基于在兩個(gè)地方同時(shí)調(diào)用的可能性而報(bào)這個(gè)錯(cuò)誤。有幾種辦法可以繞開這個(gè)問題:

1. 如果ROM空間允許的話,可以把這個(gè)函數(shù)復(fù)制一份并另取一個(gè)不一樣的名稱。一個(gè)給中斷調(diào)用,另一個(gè)給主函數(shù)調(diào)用。

2. 重寫這個(gè)函數(shù),讓它不帶參數(shù)并且沒有局部變量。如果函數(shù)沒有參數(shù)和局部變量,那么它將可以被中斷和主函數(shù)同時(shí)調(diào)用。

3. 如果你能夠保證這個(gè)函數(shù)一定不會(huì)同時(shí)被調(diào)用,那么你可以使用#pragma interrupt_level 偽指令。這個(gè)指令在使用說(shuō)明書里已經(jīng)詳細(xì)說(shuō)明了,這里簡(jiǎn)單介紹如下:

#pragma interrupt_level 1
void common_func(void)
{
/* local variable definitions */

/* code */
}

#pragma interrupt_level 1
void interrupt isr(void)
{
common_func();
/* more code */
}


void main(void)
{
common_func(); /* 在中斷使能之前被調(diào)用 */
EI(); /* 使能中斷 */
/* more code */

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

    關(guān)注

    45

    文章

    3667

    瀏覽量

    135235
  • MPLAB
    +關(guān)注

    關(guān)注

    9

    文章

    217

    瀏覽量

    67019
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    XC8編譯器8位PIC MCU兼容嗎?

    我有幾個(gè)較老的項(xiàng)目與8位PIC MCU,這是編譯與舊的高科技C編譯器(V963)在MPLAB 8環(huán)境下?,F(xiàn)在我想遷移到
    發(fā)表于 03-15 13:07

    怎么在兼容模式下使用XC8編譯器

    你好,我想在兼容模式下使用XC8編譯器。但是我不知道我該怎么做。在微芯片C18到XC8遷移指南中,他們說(shuō)我必須這樣做:使用兼容性模式,你只需要遵循以下步驟:在MPLAB IDE1中打開
    發(fā)表于 05-09 11:20

    XC8編譯器中的eeprom_read/write宏出現(xiàn)問題

    我已經(jīng)用帶有MPLAB X IDE v3.15(和v3.25)的高科技v9.83編譯器編寫了一個(gè)程序,并且我想用MPLAB X IDE v3.25將它傳輸?shù)?b class='flag-5'>XC8
    發(fā)表于 09-30 08:57

    MPLAB XC8 C編譯器是否可以屏蔽/禁用有關(guān)pitch的咨詢報(bào)告?

    微芯片MPLAB XC8 C編譯器(標(biāo)準(zhǔn)模式)V1.41構(gòu)建日期:2017年1月24日部分支持版本:1.41版權(quán)(C)2017微芯片技術(shù)公司。許可類型:節(jié)點(diǎn)配置::警告:(1458)標(biāo)準(zhǔn)
    發(fā)表于 04-22 10:02

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

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

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

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

    MPLAB C18編譯器MPLAB XC8 C編譯器的移植過程詳細(xì)中文資料概述

    本文檔概述了從針對(duì)PIC18 MCU的MPLAB? C編譯器(以前的說(shuō)法,本文中稱為MPLAB C18)到MPLAB XC8 C
    發(fā)表于 06-29 11:25 ?47次下載

    MPLAB XC8 C編譯器的用戶指南詳細(xì)中文資料概述免費(fèi)下載

     MPLAB XC8 C 編譯器是一種獨(dú)立式的優(yōu)化 ISO C90 (通常稱為 ANSI C)編譯器。它支持所有 8 位 PIC? 單片機(jī):
    發(fā)表于 06-11 17:28 ?348次下載
    <b class='flag-5'>MPLAB</b> <b class='flag-5'>XC8</b> C<b class='flag-5'>編譯器</b>的用戶指南詳細(xì)中文資料概述免費(fèi)下載

    如何將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'>XC8</b>C<b class='flag-5'>編譯器</b>的詳細(xì)概述

    MPLAB XC8入門教程之啟動(dòng)指南資料免費(fèi)下載

    本文檔為剛開始使用MPLABXC8 C編譯器的程序員提供了一個(gè)起點(diǎn),特別是那些不熟悉嵌入式編程或微芯片設(shè)備的程序員。
    發(fā)表于 12-28 16:02 ?44次下載

    MPLAB C18到MPLAB XC8的移植概述

    本文檔概述了從針對(duì)PIC18 MCU的MPLAB? C編譯器 (以前的說(shuō)法,本文中稱為MPLAB C18)到MPLAB XC8 C
    發(fā)表于 05-12 17:12 ?26次下載

    PIC MCC配置與XC8編譯器問題

    2021年11月6日MCC版本過高,低版本的XC8編譯器會(huì)導(dǎo)致警告?。代碼能夠編譯通過,但是在實(shí)際執(zhí)行中會(huì)導(dǎo)致MCC配置的代碼出現(xiàn)問題,導(dǎo)致不能達(dá)到MCC配置預(yù)設(shè)的效果。例如:在用較高版本的MCC
    發(fā)表于 11-16 20:06 ?12次下載
    PIC MCC配置與<b class='flag-5'>XC8</b><b class='flag-5'>編譯器</b>問題

    MPLAB XC8 PIC匯編的簡(jiǎn)單介紹

    本指南介紹并說(shuō)明了可使用適用于中檔和PIC18 器件系列的 MPLAB XC8 PIC 匯編(PIC 匯編)編譯的示例匯編程序。本文檔中
    的頭像 發(fā)表于 04-02 16:09 ?5028次閱讀

    適用于AVR MCU的MPLAB XC8 C編譯器用戶指南

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

    適用于PIC MCU的MPLAB XC8 C編譯器用戶指南

    電子發(fā)燒友網(wǎng)站提供《適用于PIC MCU的MPLAB XC8 C編譯器用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-22 16:45 ?0次下載
    適用于PIC MCU的<b class='flag-5'>MPLAB</b> <b class='flag-5'>XC8</b> C<b class='flag-5'>編譯器</b>用戶指南
    3U百家乐娱乐城| 百家乐庄闲机率分析| 在线真人娱乐| 百家乐现场投注平台| 百家乐官网在线小游戏| 新梦想百家乐官网的玩法技巧和规则| 顶级赌场 官方直营网| 网上百家乐心得| 鄂温| 华侨人百家乐的玩法技巧和规则 | 金界百家乐的玩法技巧和规则| 百家乐官网稳赢投资法| 六合彩码报| 百家乐投注程式| 百家乐官网桌布小| 大发888官方df888gwyxpt| 百家乐体育博彩| 真人百家乐官网是啥游戏| 大发888娱乐亚洲| 百家乐大赢家客户端| 任我赢百家乐官网软件| 金宝博滚球| 大发888快速提现| 百家乐便利| 百家乐官网娱乐平台开户| 百家乐官网有几种玩法| 二八杠口诀| 大发888好么| 金木棉百家乐的玩法技巧和规则| 百家乐免费路单| 百家乐官网透明出千牌靴| 百家乐官网真钱游戏下载| 六合彩教程| 太阳城御园| 稳赢的百家乐投注方法| 百家乐官网羸钱法| 澳门百家乐官网怎么才能赢钱| 456棋牌官网| 南京百家乐的玩法技巧和规则 | 百家乐电投软件| 木星百家乐官网的玩法技巧和规则 |