I am using SDK 14.2 and just upgraded to IAR EWARM 8.22.1. When compiling, it now gives me the following complain for virtually every .c file in my project:
Warning: The header file 'cmsis_iar.h' is obsolete and should not be used.
A sutiable version is automatically included from the CMSIS-core package.
This file will be removed in a future release.
I tracked down the include statement to this file: components\toolchain\CMSIS\Include\core_cmSimd.h
I'm not sure if this is something with my IAR installation or with the SDK.
It is probably an IAR issue. The CMSIS we use in SDK 14.2.0 is version 4.5.0 I believe, but IAR 8.22 seems to be using v5.3.0. I don't have access to IAR 8.22 so I can't check it out, but there is a report (and maybe a solution) here: https://www.amobbs.com/thread-5687902-1-1.html (some google translation might be required).
Ok, I contacted IAR in this matter and their answer was that they will contact you: IAR says: "The correct solution is to remove all occurrences of #include <cmsis_iar.h>." The IAR ticket number about this is CALL 621786s_IAR.
Ok, thanks a lot.
I removed the #include <cmsis_iar.h> from three files: core_cmFunc.h, core_cmInstr.h, and core_cmSimd.h. But that gives me a new set of errors stating function definitions are not found.
How did you removed the the #include <cmsis_iar.h>?
Here's an example of the error:
Error[Li005]: no definition for "__disable_irq" [referenced from ...
I know. I got the same problem when I tried removing the #includes just as you did. I am still waiting for a final solution from either IAR or Nordic on this.
Try replacing that pragma-message block in the cmsis_iar.h file with this...
#if defined(__CM_CMSIS_VERSION) && (__CM_CMSIS_VERSION >= 0x50001)
#pragma message("\nWarning: The header file 'cmsis_iar.h' is obsolete and should not be used.")
#pragma message(" A suitable version is automatically included from the CMSIS-core package.")
As part of a recent patch from IAR, this is the only thing that changed in the file.
Thanks for the info. I thought I was doing something wrong.