问答

汇集网友智慧,解决技术难题

21ic问答首页 - IAR使用CMSIS组件报错

MUC 技术交流 嵌入式 国产芯片 单片机 DSP

IAR使用CMSIS组件报错

dd220862023-09-05
本帖最后由 tyw 于 2023-9-5 11:49 编辑

IAR启用CMSIS的时候,有两个文件出现重复定义的函数,cmsis_iccarm和cmsis_iar,IAR版本9.30,M4核下面部分的代码重定义了。
__IAR_FT uint8_t __LDRBT(volatile uint8_t *addr)
  {
    uint32_t res;
    __ASM("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory");
    return ((uint8_t)res);
  }

  __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr)
  {
    uint32_t res;
    __ASM("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory");
    return ((uint16_t)res);
  }

  __IAR_FT uint32_t __LDRT(volatile uint32_t *addr)
  {
    uint32_t res;
    __ASM("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory");
    return res;
  }

  __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr)
  {
    __ASM("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory");
  }

  __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr)
  {
    __ASM("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory");
  }

  __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr)
  {
    __ASM("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory");
  }




回答 +关注 14
1583人浏览 0人回答问题 分享 举报
0 个回答

您需要登录后才可以回复 登录 | 注册