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

s110_softdevice.hex custom translator properties not set

Hi

I'm trying to make a new S110 BLE project for my nRF51 DK from "scratch" in Keil 5.14 (New uVision Project -> nRF51422_xxAC) , but every time i try to build the solution, i get this message:

Build target 'nrf51422_xxac_s110'
s110_softdevice.hex: error - custom translator properties not set
linking...
.\Objects\LDF1A_v.0.1: error: L6002U: Could not open file .\objects\main.o: No such file or directory
Finished: 0 information, 0 warning, 0 error and 1 fatal error messages.
".\Objects\LDF1A_v.0.1" - 1 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:01

I've added all the necessary software components (board support, CMSIS, nRF_BLE, nRF_Drivers, nRF_Libraries, nRF_SoftDevice) and included everything needed in main.c.

Any ideas?

Parents
  • ::Solved::

    I finally got it working! Big thanks to Aryan for all your help :)

    The first problem was that I'd forgotten to add the Startup files under Device in Manage Run-Time Environment.

    The second problem was that s110_softdevice.hex was included in target build, which it shouldn't be.

    image description

    image description


    ::original post::

    Here's the properties I'm using. They're basically a copy of the properties found in the template code from pack installer.

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    And here's the software components I've selected. Again, these are also the ones present in the template example code.

    image description

Reply
  • ::Solved::

    I finally got it working! Big thanks to Aryan for all your help :)

    The first problem was that I'd forgotten to add the Startup files under Device in Manage Run-Time Environment.

    The second problem was that s110_softdevice.hex was included in target build, which it shouldn't be.

    image description

    image description


    ::original post::

    Here's the properties I'm using. They're basically a copy of the properties found in the template code from pack installer.

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    image description

    And here's the software components I've selected. Again, these are also the ones present in the template example code.

    image description

Children
  • seems ok, my eye missed to see this before in the error message you posted " Could not open file .\objects\main.o: No such file or directory" why doesn't it find this object file in that directory ? if it has compiled it, then there should be a object file.

  • I don't think it ever comes around to compile anything. It seems to crash and burn immediately after hitting the custom translator error.

  • But interestingly enough, this is what greets me after manually "translating" each .c file:

    Build target 'nrf51422_xxac_s110'
    s110_softdevice.hex: error - custom translator properties not set
    linking...
    .\Objects\LDF1A_v.0.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
    Not enough information to list image symbols.
    Not enough information to list the image map.
    Finished: 2 information, 0 warning and 1 error messages.
    ".\Objects\LDF1A_v.0.1" - 1 Error(s), 0 Warning(s).
    Target not created.
    Build Time Elapsed:  00:00:00
    
  • did you add startup files? arm_startup_nrf51.s and system_nrf51.c. From the pack image it seems to be present, but I cannot see if the files are selected.

    Also ARM documentation about the error

    L6236E
    No section matches selector - no section to be FIRST/LAST.
    The scatter file specifies a section to be +FIRST or +LAST, but that section does not exist, or has been removed by the linker because it believes it to be unused. Use the linker option --info unused to reveal which objects are removed from your project. Example:
    ROM_LOAD 0x00000000 0x4000
    {
     ROM_EXEC 0x00000000
     {
       vectors.o (Vect, +First) << error here
       * (+RO)
     }
     RAM_EXEC 0x40000000
     {
       * (+RW, +ZI)
     }
    }
    Some possible solutions are:
    ensure vectors.o is specified on the linker command-line
    link with --keep vectors.o to force the linker not to remove this, or switch off this optimization entirely, with --noremove [not recommended]
    [Recommended] Add the ENTRY directive to vectors.s, to tell the linker that it is a possible entry point of your application such as, for example:
    AREA Vect, CODE
    ENTRY ; define this as an entry point
    Vector_table
    ...
    Then link with --entry Vector_table to define the real start of your code.
    See the following in Using the Linker:
    Placing sections with FIRST and LAST attributes.
    See the following in the Linker Reference:
    --entry=location
    --info=topic[,topic,...]
    --keep=section_id
    --remove, --no_remove
    Syntax of an input section description.
    
  • Ah ok, it seems i was missing the startup files. I've added them now, but I'm still getting the translation error:

    Rebuild target 'nrf51422_xxac_s110'
    s110_softdevice.hex: error - custom translator properties not set
    linking...
    Program Size: Code=8216 RO-data=276 RW-data=208 ZI-data=3072  
    FromELF: creating hex file...
    ".\Objects\LDF1A_v.0.1" - 0 Error(s), 0 Warning(s).
    Target not created.
    Build Time Elapsed:  00:00:00
    
Related