0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MPLAB XC8编译器得到错误function什么意思

麦辣鸡腿堡 来源:Microchip微芯 作者:Microchip微芯 2023-01-22 14:49 次阅读

问:我得到一个错误:“function * appears in multiple call graphs: rooted at *”,这是什么意思?

答:它意味着有一个函数既在中断里调用了又在主函数中调用了,而编译器是不支持重入的。因为函数是不能重入的,所以它基于在两个地方同时调用的可能性而报这个错误。有几种办法可以绕开这个问题:

1. 如果ROM空间允许的话,可以把这个函数复制一份并另取一个不一样的名称。一个给中断调用,另一个给主函数调用。

2. 重写这个函数,让它不带参数并且没有局部变量。如果函数没有参数和局部变量,那么它将可以被中断和主函数同时调用。

3. 如果你能够保证这个函数一定不会同时被调用,那么你可以使用#pragma interrupt_level 伪指令。这个指令在使用说明书里已经详细说明了,这里简单介绍如下:

#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(); /* 在中断使能之前被调用 */
EI(); /* 使能中断 */
/* more code */

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3360

    浏览量

    131540
  • MPLAB
    +关注

    关注

    8

    文章

    213

    浏览量

    66348
收藏 人收藏

    评论

    相关推荐

    使用XC8编译器浮点到字符串转换得到错误

    我需要将浮点变量转换成XC8编译器中的字符串,但它看起来不喜欢我这样做。Seavtf(DePaseString,“%.2f”,权重);//其中权重是浮点,这是我得到错误……0:
    发表于 09-19 15:34

    XC8编译错误

    你好,我想在PIC18F4620上启用USAT RX中断。每当我提到PrI1BITS.RCIF时,就会得到以下错误:如果我注释了这行,它就成功编译了。这是代码:编译器
    发表于 11-29 16:58

    XC8编译器8位PIC MCU兼容吗?

    我有几个较老的项目与8位PIC MCU,这是编译与旧的高科技C编译器(V963)在MPLAB 8环境下。现在我想迁移到
    发表于 03-15 13:07

    怎么在兼容模式下使用XC8编译器

    你好,我想在兼容模式下使用XC8编译器。但是我不知道我该怎么做。在微芯片C18到XC8迁移指南中,他们说我必须这样做:使用兼容性模式,你只需要遵循以下步骤:在MPLAB IDE1中打开
    发表于 05-09 11:20

    使用XC8编译器MPLAB.X上为LoRaMote RC3源代码构建错误

    ,LoRaMote.X项目在MPLLAB.X v3.26中打开,并尝试用XC8 v1.35编译器构建,下面显示了以下错误。我试图从Bootloader Folder的源代码中打开MPLAB
    发表于 08-29 14:46

    XC8编译器中的eeprom_read/write宏出现问题

    我已经用带有MPLAB X IDE v3.15(和v3.25)的高科技v9.83编译器编写了一个程序,并且我想用MPLAB X IDE v3.25将它传输到XC8
    发表于 09-30 08:57

    XC8不可预测的编译器错误

    当用XC8 1.44编译一个大型PIC16F1819项目时,我会得到编译器错误,这是我无法解释的。例如,当我试图在C中插入一个简单的行时,这
    发表于 03-13 06:29

    MPLAB XC8 C编译器是否可以屏蔽/禁用有关pitch的咨询报告?

    微芯片MPLAB XC8 C编译器(标准模式)V1.41构建日期:2017年1月24日部分支持版本:1.41版权(C)2017微芯片技术公司。许可类型:节点配置::警告:(1458)标准
    发表于 04-22 10:02

    MPLAB XC编译器免费下载

    MPLAB XC编译器免费下载
    发表于 11-23 16:07 56次下载

    MPLAB® XC8 C编译器的架构特性

    本视频介绍了MPLAB® XC8 C编译器的架构特性。该编译器编译过程不同于传统的编译器,采用
    的头像 发表于 05-23 12:47 5438次阅读
    <b class='flag-5'>MPLAB</b>® <b class='flag-5'>XC8</b> C<b class='flag-5'>编译器</b>的架构特性

    MPLAB C18编译器MPLAB XC8 C编译器的移植过程详细中文资料概述

    本文档概述了从针对PIC18 MCU的MPLAB® C编译器(以前的说法,本文中称为MPLAB C18)到MPLAB XC8 C
    发表于 06-29 11:25 47次下载

    如何将C源代码从MPLAB C18编译器移植到MPLAB XC8C编译器的详细概述

    本文档介绍了针对PIC18 MCU的MPLAB® C编译器(以前的说法,本文档称为MPLAB C18)与MPLAB XC8 C
    发表于 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>的详细概述

    MPLAB C18到MPLAB XC8的移植概述

    本文档概述了从针对PIC18 MCU的MPLAB® C编译器 (以前的说法,本文中称为MPLAB C18)到MPLAB XC8 C
    发表于 05-12 17:12 25次下载

    PIC MCC配置与XC8编译器问题

    2021年11月6日MCC版本过高,低版本的XC8编译器会导致警告⚠。代码能够编译通过,但是在实际执行中会导致MCC配置的代码出现问题,导致不能达到MCC配置预设的效果。例如:在用较高版本的MCC
    发表于 11-16 20:06 12次下载
    PIC MCC配置与<b class='flag-5'>XC8</b><b class='flag-5'>编译器</b>问题

    适用于AVR MCU的MPLAB XC8 C编译器用户指南

    电子发烧友网站提供《适用于AVR MCU的MPLAB XC8 C编译器用户指南.pdf》资料免费下载
    发表于 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>用户指南