This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

link fail on a sample code compile on SES on Mac.

I try to build and test my first time SES setup on Mac for further development on an existing nRF51 project and future nRF52 project.

I use SES for Nordic V4.14 and SDK 12.3.0

I try to compile the the following sample, and got the following error:

Building ?ble_app_eddystone_pca10028_s130? from solution ?ble_app_eddystone_pca10028_s130? in configuration ?nrf51422_xxac?
1> Linking ble_app_eddystone_pca10028_s130.elf
1> nordicSDK/nRF5_SDK_12.3.0_d7731ad/examples/ble_peripheral/ble_app_eddystone/pca10028/s130/arm5_no_packs/Output/ble_app_eddystone_pca10028_s130 nrf51422_xxac/Obj/ble_app_eddystone_pca10028_s130.ld:233: undefined symbol `__STACKSIZE_IRQ__' referenced in expression
Build failed

Any one know where can I define this symbol "__STACKSIZE_IRQ__" ?
Parents
  • It seems that it should be defined in the linker file: ble_app_eddystone_pca10028_s130.ld. Did you take a look at the documentation for importing a Keil project into Segger Embedded Studio? Don't worry that it says the documentation is outdated. ;) If not, I would take a look at that documentation to see that you have done the steps correctly.

  • Okay, I followed all the steps again, and down to step #7.  where I can't find a way to fill-in the section memory file and macro.  Thus the linking error as shown in the image.

  • Please take a look at Jan Tore Guggedal's comment from over 2 years ago in this devzone blog post

    "I have now tried SEGGER Embedded Studio (3.10f) on macOS, and I experience the same issue as @syntroniks when I import an example project from the SDK (12.1.0). It seems SES for some reason is not able to find the nRF52832_xxAA as target processor and because of that wrong files and settings are added to the project. There's an underlying problem with project imports on macOs in there somewhere causing this, so if someone has figured out what it is and how to fix it, please comment.

    Here is what I did to get the examples working after the unsuccessful import, in addition to what is described in this tutorial:

    • Install the nRF CPU Support Package (along with the already installed CMSIS-CORE support package) Tools -> Package manager -> Install nRF CPU Support Package

    • Import the project. Remove crt0.s and ARM_Startup.s from Internal files folder in project explorer.

    • Add <your SES folder>/source/thumb_crt0.s to Internal files.

    • Go to Project -> Edit options... -> (General tab) Build -> Property Groups File and add the path $(PackagesDir)/nRF/XML/property_groups.xml

    • Click Ok for the previous step to take effect

    • Go to Project -> Edit options... -> (General tab) Build -> Target Processor and select nRF52832_xxAA as target

    • Go to Project -> Edit options... -> (Linker tab) Linker -> Section Placement File and add $(StudioDir)/targets/Cortex_M/flash_placement.xml

    The project should now build. To flash it to the DevKit, confirm the following:

    • Project -> Edit options... -> (Debugging tab) J-Link -> Target Interface Type should be set to SWD"
Reply
  • Please take a look at Jan Tore Guggedal's comment from over 2 years ago in this devzone blog post

    "I have now tried SEGGER Embedded Studio (3.10f) on macOS, and I experience the same issue as @syntroniks when I import an example project from the SDK (12.1.0). It seems SES for some reason is not able to find the nRF52832_xxAA as target processor and because of that wrong files and settings are added to the project. There's an underlying problem with project imports on macOs in there somewhere causing this, so if someone has figured out what it is and how to fix it, please comment.

    Here is what I did to get the examples working after the unsuccessful import, in addition to what is described in this tutorial:

    • Install the nRF CPU Support Package (along with the already installed CMSIS-CORE support package) Tools -> Package manager -> Install nRF CPU Support Package

    • Import the project. Remove crt0.s and ARM_Startup.s from Internal files folder in project explorer.

    • Add <your SES folder>/source/thumb_crt0.s to Internal files.

    • Go to Project -> Edit options... -> (General tab) Build -> Property Groups File and add the path $(PackagesDir)/nRF/XML/property_groups.xml

    • Click Ok for the previous step to take effect

    • Go to Project -> Edit options... -> (General tab) Build -> Target Processor and select nRF52832_xxAA as target

    • Go to Project -> Edit options... -> (Linker tab) Linker -> Section Placement File and add $(StudioDir)/targets/Cortex_M/flash_placement.xml

    The project should now build. To flash it to the DevKit, confirm the following:

    • Project -> Edit options... -> (Debugging tab) J-Link -> Target Interface Type should be set to SWD"
Children
No Data
Related