Mixing c++ and c code (IAR as an IDE) in the main.cpp module while working with aducm3029

Dear all,

I'm trying to integrate a File System module developed in C++ (which wil be called by in the main module) so i changed the main.c to main.cpp and I added  the

extern "C" {
#include "main.h"
#include "tests_con_pre_out.h"
}

/* unique Id from mcu address */
char *address_unique_id = (void *)0x000040778;
char MCU_ID[16];

however when compiing iar stops and the build debugger shows

Building configuration: Epilert_firm_V3 - Debug
Updating build tree...
main.cpp  
Error[Pe018]: expected a ")" C:\Users\aminated\AppData\Local\IAR Embedded Workbench\PackRepo\ARM\CMSIS\5.3.0\CMSIS\Include\mpu_armv7.h 173
Error[Pe020]: identifier "len" is undefined C:\Users\aminated\AppData\Local\IAR Embedded Workbench\PackRepo\ARM\CMSIS\5.3.0\CMSIS\Include\mpu_armv7.h 176
Error[Pe020]: identifier "src" is undefined C:\Users\aminated\AppData\Local\IAR Embedded Workbench\PackRepo\ARM\CMSIS\5.3.0\CMSIS\Include\mpu_armv7.h 178
Error[Pe140]: too many arguments in function call C:\Users\aminated\AppData\Local\IAR Embedded Workbench\PackRepo\ARM\CMSIS\5.3.0\CMSIS\Include\mpu_armv7.h 190
Error[Pe140]: too many arguments in function call C:\Users\aminated\AppData\Local\IAR Embedded Workbench\PackRepo\ARM\CMSIS\5.3.0\CMSIS\Include\mpu_armv7.h 194
Error[Pe144]: a value of type "void *" cannot be used to initialize an entity of type "char *" C:\Users\aminated\Desktop\4SLEAM\Stages\Innovation\Developement\Epilert_firm_v4\source\main.cpp 8
Warning[Pe2464]: conversion from a string literal to "char *" is deprecated C:\Users\aminated\Desktop\4SLEAM\Stages\Innovation\Developement\Epilert_firm_v4\source\main.cpp 50
Error while running C/C++ Compiler
 
Total number of errors: 6
Total number of warnings: 1

could you guide me through this.