Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

conflicting types for '_putchar'

Hello,

There's a problem compiling the standard ble_app_uart_pca10040_s132 in Segger Embedded Studio for ARM V3.40.  The UART example is straight out of nRF5_SDK_14.2.0_17b948a.

The exact same example can be compiled OK in SES V3.34.

The error message in V3.40 is 

conflicting types for '__putchar'

retarget.c

previous declaration of '__putchar' was here

That line points to stdio.h declaration of __puchar

Parents
  • Hi Winston,

     I have confirmed that this issue is for SDK v14.2 with the new SES v3.40. I do not know the reason for this as for now.

    I would recommend you to downgrade SES to v3.34 or change to SDK v15 (where this issue does not appear).

  • I have confirmed that this issue is for SDK v14.2 with the new SES v3.40

    And it is still a problem with SDK v15.0.0 !

  • Hi Andrew,

    You are correct.

     Unfortunately, this change came with the new version of SES v3.40, and the SDKv15 was released before that update. 

    From the SDK v15 release notes:

    You have two options:

    1. Use the recommended version of SES v3.34.
    2. Use the solution posted in this thread.

     

    Best Regards,

    Martin L.

  • I see.

    So Segger broke it, then?

  • Hi,

    I would not go as far as to say that Segger broke anything. SDK 15.0.0 was tested and verified using SES 3.34, and so that is the version supported. We do not (and for obvious reasons can not) guarantee forwards compatibility with development tools, and hence we always recommend the versions listed in the release notes for the particular version of the SDK.

    However, things tend to work with other toolchain versions, and that is great! In the rare occasions when we get toolchain compatibility issues we do our best to provide a workaround, as was done by in this thread. We do know that for some of you being able to run on a different version of the toolchain matters.

    Regards,
    Terje

  • we always recommend the versions listed in the release notes for the particular version of the SDK

    Actually, you don't - see: https://devzone.nordicsemi.com/b/blog/posts/segger-embedded-studio-a-cross-platform-ide?CommentId=e94a1633-e277-45b1-93c1-abfaba042028

  • Hi,

    Thanks for pointing that out.

    At the time we did not have official SES support in the SDK, and so there was no release note recommendation available. Now that we do have official SES support the recommendation is to use the version for which the SDK release was tested and verified.

    If there is no statement of supported version then using the latest version is usually the best bet, and if that does not work you may find a solution through DevZone.

    Regards,
    Terje

Reply
  • Hi,

    Thanks for pointing that out.

    At the time we did not have official SES support in the SDK, and so there was no release note recommendation available. Now that we do have official SES support the recommendation is to use the version for which the SDK release was tested and verified.

    If there is no statement of supported version then using the latest version is usually the best bet, and if that does not work you may find a solution through DevZone.

    Regards,
    Terje

Children
No Data