This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Locating

Hi all,

I am new with L166 linker on ST10 target and I just would like to :
Set a code section containing all the code of several files (file1.obj, file2.obj and file3.obj for example) and to locate them at a specific address.

I would like to set this linker/locator in a linker file _without_ including pragma directives in my source code (which is not very portable)

So, a section of code at 0x10000 for example, containing code of
file1.obj
file2.obj
file3.obj
...etc...

I can't find which directive tells that code of file1.obj, file2.obj, file3.obj,... has to be stored in MY_CODE_SECTION and MY_CODE_SECTION start address has to be 0x100000 for example...

Thank you for your precious help,

Best Regards,

Pierre

Parents
  • Thank you for your answer !

    I finally understood how to deal with code locating... but I face a new problem :

    My file names are too long ! Therefore my SECTIONS directive in my linker command file is not correct, following error code is returned :
    *** FATAL ERROR L202: INVALID COMMAND LINE, TOKEN TOO LONG

    Here is a part of my linker/locator command file :

    SECTIONS (?PR?FILE1_TOO_LONG_NAME%FCODE (0x90000), &
              ?PR?FILE2_TOO_LONG_NAME%FCODE, &
              ?PR?FILE3_TOO_LONG_NAME%FCODE)
    

    Since I can't rename all file names to make them shorter, I have decide to RENAMACLASS from C compiler. But here again I've got a problem : I wouldn't like to pollute my C source code with #pragmas to keep it portable. So I would like to embed my #pragma directive in an other preprocessor macro such as :

    #define CODE_SECTION_NAME(X) #pragma RENAMECLASS (FCODE=X)
    


    ... but it does not work since preprocessor only preprocesses C source code once....

    So here I am.... no more idea to locate my long named files and to keep my code portable...

    Any help would be very appreciated !

    Thanks a lot !

    Pierre

Reply
  • Thank you for your answer !

    I finally understood how to deal with code locating... but I face a new problem :

    My file names are too long ! Therefore my SECTIONS directive in my linker command file is not correct, following error code is returned :
    *** FATAL ERROR L202: INVALID COMMAND LINE, TOKEN TOO LONG

    Here is a part of my linker/locator command file :

    SECTIONS (?PR?FILE1_TOO_LONG_NAME%FCODE (0x90000), &
              ?PR?FILE2_TOO_LONG_NAME%FCODE, &
              ?PR?FILE3_TOO_LONG_NAME%FCODE)
    

    Since I can't rename all file names to make them shorter, I have decide to RENAMACLASS from C compiler. But here again I've got a problem : I wouldn't like to pollute my C source code with #pragmas to keep it portable. So I would like to embed my #pragma directive in an other preprocessor macro such as :

    #define CODE_SECTION_NAME(X) #pragma RENAMECLASS (FCODE=X)
    


    ... but it does not work since preprocessor only preprocesses C source code once....

    So here I am.... no more idea to locate my long named files and to keep my code portable...

    Any help would be very appreciated !

    Thanks a lot !

    Pierre

Children