| 本帖最后由 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");
 }
 
 
 
 
 |