-
Notifications
You must be signed in to change notification settings - Fork 132
Open
Description
Hi,
Using IAR 'Required prototype' option set in the IDE, my project compilation fails on the call to the following APIs:
- Error[Pa045]: function "__CLREX" has no prototype
- Error[Pa045]: function "__enable_fault_irq" has no prototype
- Error[Pa045]: function "__disable_fault_irq" has no prototype
Looking at the new introduced code in CMSIS v6.2.0
__IAR_FT void __CLREX() {
__ASM volatile("CLREX" ::: "memory");
}
#if (defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB >= 2)
// This is not really fault_irq on Cortex-not-M. However
// there seems to be code that assumes this.
__IAR_FT void __disable_fault_irq()
{
__ASM volatile ("CPSID F" ::: "memory");
}
__IAR_FT void __enable_fault_irq()
{
__ASM volatile ("CPSIE F" ::: "memory");
}
#endif
I note that the void type is missing in the functions declaration. It must be declared as such:
__IAR_FT void __CLREX(void) {
__ASM volatile("CLREX" ::: "memory");
}
#if (defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB >= 2)
// This is not really fault_irq on Cortex-not-M. However
// there seems to be code that assumes this.
__IAR_FT void __disable_fault_irq(void)
{
__ASM volatile ("CPSID F" ::: "memory");
}
__IAR_FT void __enable_fault_irq(void)
{
__ASM volatile ("CPSIE F" ::: "memory");
}
#endif
regards
Patrice
JonatanAntoni
Metadata
Metadata
Assignees
Labels
No labels