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.

SYS/BIOS 6.32 and AM1808 eXperimenter kit: object placement errors

Other Parts Discussed in Thread: AM1808, SYSBIOS

Hi all.

I have the following trouble building my SYS/BIOS 6.32 helloworld example for my AM1808 eXperimenter kit:

1) I'm creating the sample SYS/BIOS project with the CCS 5.1 wizard with arm9 generic platform.

2) I create a platform for my processor: i'm importing the OMAP L138 EXP platform and deleting the DDR part. Then i set it as my run platform.

3) In the target configuration i use the XDS100v2 JTAG emulator, AM1808 target device and AM1808.gel init script, provided with my kit.

The build fails with the following error log:

**** Build of configuration Debug for project TestBios ****

/opt/ti/ccsv5/utils/bin/gmake -k all
Building file: ../hello.cfg
Invoking: XDCtools
"/opt/ti/xdctools_3_23_01_43/xs" --xdcpath="/opt/ti/bios_6_32_05_54/packages;/opt/ti/ipc_1_23_05_40/packages;/home/felix/myRepository/packages;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.Arm9 -p AM1808_L138based -r release -c "/opt/ti/ccsv5/tools/compiler/tms470" --compileOptions "-g --optimize_with_debug" "../hello.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring hello.xe9 from package/cfg/hello_pe9.cfg ...
cle9 package/cfg/hello_pe9.c ...
Finished building: ../hello.cfg

Building file: ../hello.c
Invoking: ARM Compiler
"/opt/ti/ccsv5/tools/compiler/tms470/bin/cl470" -mv5e --code_state=32 --abi=eabi -me -g --include_path="/opt/ti/ccsv5/tools/compiler/tms470/include" --diag_warning=225 --display_error_number --preproc_with_compile --preproc_dependency="hello.pp" --cmd_file="./configPkg/compiler.opt" "../hello.c"
Finished building: ../hello.c

Building target: TestBios.out
Invoking: ARM Linker
"/opt/ti/ccsv5/tools/compiler/tms470/bin/cl470" -mv5e --code_state=32 --abi=eabi -me -g --diag_warning=225 --display_error_number -z -m"TestBios.map" -i"/opt/ti/ccsv5/tools/compiler/tms470/lib" -i"/opt/ti/ccsv5/tools/compiler/tms470/include" --reread_libs --warn_sections --rom_model -o "TestBios.out" -l"./configPkg/linker.cmd" "./hello.obj" -l"libc.a"
<Linking>
"./configPkg/linker.cmd", line 131: error #10099-D: placement fails for object
".text", size 0x8624 (page 0). Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
"./configPkg/linker.cmd", line 151: error #10099-D: run placement fails for
object "ti.sysbios.family.arm.arm9.mmuTableSection", size 0x7fff (page 0).
Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
"./configPkg/linker.cmd", line 133: error #10099-D: run placement fails for
object "GROUP_1", size 0x3774 (page 0). Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
"./configPkg/linker.cmd", line 141: error #10099-D: placement fails for object
".const", size 0x1b49 (page 0). Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
"./configPkg/linker.cmd", line 132: error #10099-D: run placement fails for
object ".stack", size 0x1000 (page 0). Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
"./configPkg/linker.cmd", line 142: error #10099-D: run placement fails for
object ".data", size 0x79f (page 0). Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
"./configPkg/linker.cmd", line 139: error #10099-D: placement fails for object
".cinit", size 0x299 (page 0). Available ranges:
IRAM size: 0x2000 unused: 0x0 max hole: 0x0
error #10010: errors encountered during linking; "TestBios.out" not built

>> Compilation failure 

 

  • Hi Alexey,

    What version of XDCtools are you using? Also, can you post the object placement errors that you are seeing?

  • Oh, excuse me, i didn't finish the previous post. (( 

    I added the error log that appears when i try to use L138-based platform.

    Also then i used modified 850evm platform package (with all IRAM memory), the build was also unsuccessful.

    Here is the log:

    **** Build of configuration Debug for project TestBios ****

    /opt/ti/ccsv5/utils/bin/gmake -k all
    Building target: TestBios.out
    Invoking: ARM Linker
    "/opt/ti/ccsv5/tools/compiler/tms470/bin/cl470" -mv5e --code_state=32 --abi=eabi -me -g --diag_warning=225 --display_error_number -z -m"TestBios.map" -i"/opt/ti/ccsv5/tools/compiler/tms470/lib" -i"/opt/ti/ccsv5/tools/compiler/tms470/include" --reread_libs --warn_sections --rom_model -o "TestBios.out" -l"./configPkg/linker.cmd" "./hello.obj" -l"libc.a"
    <Linking>
    "./configPkg/linker.cmd", line 131: error #10099-D: placement fails for object
    ".text", size 0x8624 (page 0). Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    "./configPkg/linker.cmd", line 151: error #10099-D: run placement fails for
    object "ti.sysbios.family.arm.arm9.mmuTableSection", size 0x7fff (page 0).
    Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    "./configPkg/linker.cmd", line 133: error #10099-D: run placement fails for
    object "GROUP_1", size 0x3774 (page 0). Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    "./configPkg/linker.cmd", line 141: error #10099-D: placement fails for object
    ".const", size 0x1b49 (page 0). Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    "./configPkg/linker.cmd", line 132: error #10099-D: run placement fails for
    object ".stack", size 0x1000 (page 0). Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    "./configPkg/linker.cmd", line 142: error #10099-D: run placement fails for
    object ".data", size 0x79f (page 0). Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    "./configPkg/linker.cmd", line 139: error #10099-D: placement fails for object
    ".cinit", size 0x299 (page 0). Available ranges:
    IRAM size: 0x2000 unused: 0x0 max hole: 0x0
    error #10010: errors encountered during linking; "TestBios.out" not built

    >> Compilation failure 

  • I use XDCTools 3.23.1.143.

    In some thread the topicstarter was adviced to import DA830evm package and modify it.

    I can create a project with ti.platforms.DA830evm, but in the "create platform" wizard i can import only evmDA850, evmOMAPL137 and evmOMAPL137 packages.

    When i tried to build my project with  ti.platforms.DA830evm, the build was successful, but it crashed in runtime:

    ARM9_0: Output: Memory Map Cleared.
    ARM9_0: Output: ---------------------------------------------
    ARM9_0: Output: Memory Map Setup Complete.
    ARM9_0: Output: ---------------------------------------------


    ARM9_0: Trouble Writing Memory Block at 0xc3000000 on Page 0 of Length 0x7ff0: (Error -2030 @ 0x67655220) Internal error: Access to unknown or invalid register was requested. Restart the application. If error persists, please report the error. (Emulation package 5.0.623.0)
    ARM9_0: Unable to terminate memory download: NULL buffer pointer at 0x320
    ARM9_0: GEL: File: /root/felix/workspace_v5_1/TestBios/Debug/TestBios.out: Load failed. 

    I used the startup GEL file for AM1808 provided with Zoom eXperimenter kit.

  • Hell yeah! I used the Windows version of CCS and have managed to modify the DA830 EVM package without creation of a new one.

    I used the Tools->RTSC Tools -> Platform --> Edit menu, then opened  the XCDTools repistiory and modified the platform.

    The DDR addresses are in the AM1808 datasheet. 

  • Hi Alexey,

    sorry for the late response. So, was it just a matter of getting the memory regions for the IRAM put into the platform?

  • Well, now i have problems with DDR, I think that last time i thought it worked there was just loaded the previous version of the platform.

    So far, the system works okay when i use only L3_CBA_RAM for code, stack and data.

    But when i try to use DDR_RAM for data, the program hangs up just after the GEL memory setup. It doesn't show any error message, but simply doesn't start.

    I use AM1808 experimenter kit from LogicPD with 64M of mDDR. Maybe you have already seen this problem.

    Here is my project:

    P.S.

    This is a normal launch with L3_CBA_RAM for all memory regions

    This is a hanging-up launch, when try DDR:

    This is my platform:

  • Hi Alexey,

    I'm not really familiar with this board/device/setup, but it really sounds like a problem with the gel file.

    Running your application from L3_CBA_RAM, can you test your DDR by just putting one block of data into the DDR section? From there you can try to perform a write, read, and verify operation on that block. My guess is that the DDR Memory controller needs to be configured.I don't know if that's done for you in the gel file or if you need to do that from your application.

    I just Google'd around and found this gel file:

    http://support.spectrumdigital.com/boards/evmam1810/revc/files/evmam1810.gel You probably need something like DDRConfig(unsigned int freq).

  • Oh. You know, it looks like my GEL provided with the board was OK.

    I have just forgotten to uncomment the DDR initialization calls.

    There is the memory map setup uncommented initially, but also i had to uncomment the DDR initialization.

    OnTargetConnect( )
    {
        Clear_Memory_Map();
        Setup_Memory_Map();
        /* You can choose to run this if you only have the experimenter kit        */
        /* It will not turn PSC on for the peripherals on the user interface board */
        /* But it does not hurt if you choose to run PSC_All_On_Full_EVM() even if */
        /* you only have the experimenter kit                                      */
        PSC_All_On_Experimenter(); //uncommented!

        /* PSC_All_On_Full_EVM(); */

        Core_300MHz_mDDR_132MHz();//uncommented!
    }

    If it is done, it gives the next GEL output:

    ARM9_0: Output:     Memory Map Cleared.
    ARM9_0: Output:     ---------------------------------------------
    ARM9_0: Output:     Memory Map Setup Complete.
    ARM9_0: Output:     ---------------------------------------------
    ARM9_0: Output:     Enabling Experimenter PSCs...
    ARM9_0: Output:     PSC Enable Complete.
    ARM9_0: Output:     ---------------------------------------------
    ARM9_0: Output:     PLL0 init done for Core:300MHz, EMIF:25MHz
    ARM9_0: Output:     mDDR initialization is in progress....
    ARM9_0: Output:     PLL1 init done for DDR:132MHz
    ARM9_0: Output:     mDDR init for 132 MHz is done
    ARM9_0: Output:     ---------------------------------------------

    ...

    [ARM9_0] hello world
    Allocated: @c0004020
    Hell yeah!

    It looks like the problem is solved.

    P.S. The evm1810 GEL you gave me doesn't work on my experimenter kit.

    It fails here:

    /*Set the GOSET bit in PLLCMD to 1 to initiate a new divider transition.*/
    //HERE IT WILL CRASH!
    GEL_TextOut( "[Get ready for the crash...]\n" );
    PLL0_PLLCMD |= 0x1;//IT FAILS!!


    My GEL with uncommented DDR initialization:

    4628.AM1808.rar