wpppmlah 发表于 2023-11-10 14:41:16

Keil警告 搜索不到答案 求助大家

*** WARNING L27: INCOMPATIBLE INTERRUPT FRAME SIZE
    MODULE:.\Objects\KeyScan.obj (KeyScan)
    FRAME:   2 BYTES SAVED ON INTERRUPT
*** WARNING L27: INCOMPATIBLE INTERRUPT FRAME SIZE
    MODULE:.\Objects\STC32G_Timer_Isr.obj (STC32G_Timer_Isr)
    FRAME:   2 BYTES SAVED ON INTERRUPT
KeyScan.c 中中断函数片断,屏蔽中断函数后少此警告另一个警告同样。请问这个警告的原因?如何解决。
使用中断13,以汇编代码转中断时也一样有警告。不明白警告出现的原因。


void common_isr() interrupt 40
{
    unsigned char intf;

    intf = P3INTF;
    if (intf)
    {
      P3INTF = 0x00;
      if (intf & 0x01)
      {
//P3.0 口中断
      }
      if (intf & 0x02)
      {
            //P3.1 口中断
      }
      if (intf & 0x04)
      {
//P3.2 口中断

      }
      if (intf & 0x08)
      {
//P3.3 口中断
      }
      if (intf & 0x10)
      {
//P3.4 口中断
            BEEPON();
            P3INTE = 0X00;//P34 端口中断禁用
            switch(P4&0X1F)
            {
            case 0x1e:
                KeyNum=4;
                break;
            case 0x1d:
                KeyNum=8;
                break;
            case 0x1b:
                KeyNum=12;
                break;
            case 0x17:
                KeyNum=16;
                break;
            case 0x0f:
                KeyNum=20;
                break;
            default:
                KeyNum = NOKEY;

            }

            KeyTestFlag=1;


      }
      if (intf & 0x20)
      {
//P3.5 口中断
            BEEPON();
            P3INTE = 0X00;//P35 端口中断禁用
            switch(P4&0X1F)
            {
            case 0x1e:
                KeyNum=3;
                break;
            case 0x1d:
                KeyNum=7;
                break;
            case 0x1b:
                KeyNum=11;
                break;
            case 0x17:
                KeyNum=15;
                break;
            case 0x0f:
                KeyNum=19;
                break;
            default:
                KeyNum = NOKEY;

            }

            KeyTestFlag=1;


      }
      if (intf & 0x40)
      {
//P3.6 口中断
            BEEPON();
            P3INTE = 0X00;//P36 端口中断禁用
            switch(P4&0X1F)
            {
            case 0x1e:
                KeyNum=2;
                break;
            case 0x1d:
                KeyNum=6;
                break;
            case 0x1b:
                KeyNum=10;
                break;
            case 0x17:
                KeyNum=14;
                break;
            case 0x0f:
                KeyNum=18;
                break;
            default:
                KeyNum = NOKEY;

            }

            KeyTestFlag=1;
      }
      if (intf & 0x80)
      {
//P3.7 口中断
            BEEPON();
            P3INTE = 0X00;//P34 端口中断禁用
            switch(P4&0X1F)
            {
            case 0x1e:
                KeyNum=1;
                break;
            case 0x1d:
                KeyNum=5;
                break;
            case 0x1b:
                KeyNum=9;
                break;
            case 0x17:
                KeyNum=13;
                break;
            case 0x0f:
                KeyNum=17;
                break;
            default:
                KeyNum = NOKEY;

            }
            KeyTestFlag=1;
      }
      if(keybeeptime>0)//响铃变量清零,用于连续按键时声音的修正
      {
            keybeeptime=0;
      }
    }


}
void P0ISR(void) interrupt 37//P0中断
{
    unsigned char intf;

    intf = P0INTF;
    if (intf)
    {
      P0INTF = 0x00;
      if (intf & 0x01)
      {
//P0.0 口中断
      }
      if (intf & 0x02)
      {
      }
      if (intf & 0x04)
      {
//P0.2 口中断

         BEEPON();//



      }
      if (intf & 0x08)
      {
//P0.3 口中断
      }
      if (intf & 0x10)
      {
//P0.4 口中断
      }
      if (intf & 0x20)
      {
//P0.5 口中断
      }
      if (intf & 0x40)
      {
//P0.6 口中断
      }
      if (intf & 0x80)
      {
//P0.7 口中断
      }
    }
}

wpppmlah 发表于 2023-11-10 14:51:25

更新使用了20230630的CDC库以后出现的这个警告。换回前一个版本的CDC库,没有这个警告。{:4_165:}

乘风飞扬 发表于 2023-11-10 15:15:24

wpppmlah 发表于 2023-11-10 14:51
更新使用了20230630的CDC库以后出现的这个警告。换回前一个版本的CDC库,没有这个警告。 ...

修改这个选项试试



wpppmlah 发表于 2023-11-10 16:01:14

感谢,已解决{:4_165:}

WangChong 发表于 2023-11-12 00:54:11

rengran 发表于 2023-11-25 16:50:03

usb.h中我记得有个函数的参数以前的库和现在的库就不一样,所以usb.h也得使用最新的才行,估计是更新usb.h和库的原因
页: [1]
查看完整版本: Keil警告 搜索不到答案 求助大家