This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Error while building Simple peer to peer on IAR ew430 eval

Other Parts Discussed in Thread: SIMPLICITI, CC2500

When I attempt to build the LinkListen on the IAR ew430 platform, I keep getting errors

Error[Pe147]: declaration is incompatible with "int __low_level_init(void)" (declared at line 97 of "C:\Program Files\IAR Systems\C:\Texas Instruments\SimpliciTI-IAR-1.1.0\Components\bsp\boards\EZ430RF\bsp_board.c 85

and

Error while running C/C++ compiler
main_LinkListen.c

that state header file 'intrinsics.h' should have been included. 

 

Would someone please enlighten me as to what I need to do to correct this situation?

 

  • I would guess that you are using IAR's new 4.21 compiler. SimpliciTI-1.1.0 was tested with 4.20 and this problem did not occur. Would it be possible for you to "fall back" to the 4.20 compiler until a fix for this new error is available?

  • Good suggestion,   It didn't work. I had even tried it on a different computer, same result.

    I made sure I downloaded the IAR linked in  SimpliciTI Application User's Guide pg 6.

    Does anyone have any recommendations on what could be causing this?

     

     

  • Hey,

    I had the same problem. I changed the "int16t" in the function delcaration to a "int" like it is specified in "intrinsics.h". Not sure if this causes any problems, but it compiled and linked fine. I am running IAR 4.21

  • I have IAR 4.21.1. Your suggestion helped me.  I can compile and link.  I get errors Downloading and debugging.

    The process gets a fatal error: Object File contains features not supported by the Driver.  Do you ge this error?

     

  • I am also getting exact same error with eval version on vista. Dont know what is going wrong here. Did you find any answers? Thanks 

  • hello, 
    I do not know if you already solved the problem of line 97, but this is my solution, to My result is ok :  copy this in the line 97---->   int BSP_EarlyInit(void) <----you delete the part that says: "16_t"---------run it with the tool connected and installed, it worked well ....... jhonyarvey@hotmail.com

  • The support eng. from IAR found the problem.  When you download the latest workspace. On the extra options for LINKER , need to disable  --ks_version .  Do not understand why it was there.
  • Tomas Grajales said:
    The support eng. from IAR found the problem.  When you download the latest workspace. On the extra options for LINKER , need to disable  --ks_version .  Do not understand why it was there.

    I just tried to compile a SimpliciTI project (eZ430-RF2500 sensor monitor) on the latest IAR Embedded Workbench 5.4 and i ran into the same issue. I removed the --ks_version command line option, but unfortunately, the problem persisted. 

    It looks like that in the IAR 5.4, IAR added a definition for __intrinsic int __low_level_init(void); in intrinsics.h (under \430\inc\intrinsics.h).  This conflicts with the definition in bsp_boards.c which is included in the SimpliciTI project.  I got the project to compile by simply commenting out the definition in intrinsics.h.

    The compiler still threw some warnings so it's not a proper fix, but it should be a functional workaround.

      /*
       * If the application provides this function, it is called by the
       * startup code before variables are initialized. If the function
       * returns 0 the data segments will not be initialized.
       */
     // __intrinsic int __low_level_init(void);

    Anyone using IAR kickstart will need to leave the --ks_version option enabled.  This enables certain projects to go beyond the 4KB code size limit.  Since the eZ430-RF2500 SimpliciTI project is >4KB, you'll get a "Too much object code product (more than 0x1000 bytes) for this package" error if you remove the option.

  • Thanks for that tip above, commenting out line 97 let the project build anyway. I don't know why someone would suggest making a change in the Linker options to fix a compiler error.

    Anyway, now I am able to compile the CC2500 Sensor Demo-Access Point project and download it. The trouble now is that it won't run anymore. The red LED comes on and the green one is blinking which I think means it's trying to link. The LEDs on the other (EP) board which I have not reprogrammed are just blinking togther (green and red) which I think means it is also waiting to link.

    I am scouring SLAU227E and SLAA378C for information.

    I did a "clean" on the project in IAR.

    Any ideas?

    Thanks.

    Mike

     

     

     

     

  • @Michael Unger:

    You probably need to switch the active build configuration (not just exclude the right files and rebuild the project). I had the same symptoms (LED's blinking but nothing happening), and while debugging i noticed that the end device was executing loops of code that it should do when it was an access point. Switching the active build configuration solved this for me.

    Hope this helps!

    Maarten

  • ""switch the active build configuration"" 

    How and What

  • @MartinPotts:

    Select the appropriate build configuration from the drop-down list.

  •  

    i was wrong. Demo build was good but Peer tp Peer got the same message.

     

    Error[Pe147]: declaration is incompatible with "__cc_version2 int __low_level_init(void)" (declared at line 97 of "C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0 Kickstart\430\inc\intrinsics.h") C:\Users\xps\Desktop\MPU prog_s\TI CCS4\Simplicity\SimpliciTI-IAR-1.1.0\Components\bsp\boards\EZ430RF\bsp_board.c 51

  • I never build the Peer to Peer sample, but if you made changes to intrinsics.h in order to get the code of the demo build compiling than you might have to change that back. Just make sure that the functions return the same variable type as is expected by the Peer to Peer code (int -> int, at this point it is probably int -> uint8_t).