打印
[技术问题解答]

illegal use of 'pragma CODE_SEG/DATA_SEG/CONST_SEG. Two segments with differe...

[复制链接]
518|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
code, ST, se, AN, CAN
illegal use of 'pragma CODE_SEG/DATA_SEG/CONST_SEG. Two segments with different types have the same name

出错的位置:
#pragma CODE_SEG __NEAR_SEG NON_BANKED
__interrupt void CAN1_InterruptError(void);
#pragma CODE_SEG CAN1_CODE


#pragma CODE_SEG __NEAR_SEG NON_BANKED
ISR(CAN1_InterruptError)
{
  byte Status = CAN0R**;              /* Read the status register */

  if((Status & CAN_STATUS_BOFF_MASK) == CAN_STATUS_BOFF_MASK) { /* Bus-Off state */
    ErrFlag |= CAN_STATUS_BOFF_EXT_MASK;
    ErrFlag |= (Status & 0x83U);       /* Add error flags */
  }
  else {
    ErrFlag |= (Status & 0xBFU);       /* Add error flags */
  }
  CAN0R** = 0xFEU;                    /* Reset error flags */
  if ((Status & CAN_STATUS_BOFF_MASK) == CAN_STATUS_BOFF_MASK) { /* Is busoff error detected? */
    CAN1_OnBusOff();                   /* If yes then invoke user event */
  } else {
  }
}

#pragma CODE_SEG CAN1_CODE


上面中中断函数的声明和定义都对应的同一个段,为什么还会报错!
而且上面这些都是PE自动生成的!为啥还会报错!


1.png (45.73 KB )

问题

问题

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

25

帖子

0

粉丝