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.

Is SYSLINK the same as IPC that comes with CCS v5.1?

Other Parts Discussed in Thread: SYSBIOS, CCSTUDIO

Hi,

My ezsdk for dm816x EVM has SYSLINK 2_00_02_80 and IPC_1_23_03_31 in it.  My CCS v5.1 has IPC _1_22_03_23. All of them talked about MessageQ module. What's the difference between SYSLINK and IPC? What should i use if i need to communicate between ARM and DSP on the dm816x processor?

Thanks,

Zhao

  • Zhao,

    Typically, you will always be running IPC on the DSP.  On the ARM side, it depends on what OS you are planning to run.  Typically, SYSLINK is used when you are running Linux on the ARM and you want to communicate with the DSP (This will be running IPC).  SYSLINK is available only on the ARM when running Linux.  IPC is available on the ARM and DSP if running SYSBIOS.  SYSLINK is heavier but provides more functionality.  IPC is light and provides basic messaging and notifications.

    Judah

     

  • Hi Judah,

    I am trying to run the IPC message multi-core example on DM6446. The program compiles after I moved the shared memory region from 0x87f00000 to 0x87e00000 in message_common.cfg.xs. I can step to IPC_start() but after that it did not come back. Perhaps i need to take care of the ARM side messageQ? How does the program suppose to run without the code for the ARM core? Any ideas?

    BTW, the single core MessageQ example runs OK.

    Thanks,

    Zhao

  • Zhao,

    I think you are talking about the Multicore messageQ app for DM6446.  As the name suggests, this is a multi-core app so you need to run the program on the ARM and DSP.  You need to build the example for both ARM and DSP.  SYSBIOS supports both ARM and DSP.

    Judah

  • Judah,

    Yes. I was able to compile the program for DSP. How do i compile it for ARM? How do I load it on ARM and run? Is CCS v5.1 able to do this? Please give me detailed instructions (or links, docs) on how to run this multicore example on a custom DM6446 platform.

    Thanks a lot,

    Zhao

  • Zhao,

    This is supported in CCS v5.1.  Create a new Project and choose ARM as the architecure.

    Judah

  • Hi Judah,

    I have not done building an executible for ARM with CCSv5.1 before, so please bear with me. The following is the screen shot of the initial step.

    The build is not completed due to errors. Please see below.

    **** Build of configuration Debug for project ARM_Multicore_messageQ_example ****

     

    C:\CCStudio_v5.1\ccsv5\utils\gmake\gmake -k all

    'Building file: ../message_arm.cfg'

    'Invoking: XDCtools'

    "C:/CCStudio_v5.1/ccsv5/xdctools_3_20_08_88/xs" --xdcpath="C:/CCStudio_v5.1/ccsv5/ipc_1_22_03_23/packages;C:/CCStudio_v5.1/ccsv5/bios_6_31_04_27/packages;" xdc.tools.configuro -o configPkg -t ti.targets.arm.Arm9_big_endian -p ti.sdo.ipc.examples.platforms.evmDM6446.arm -r whole_program -c "C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470" "../message_arm.cfg"

    making package.mak (because of package.bld) ...

    js: "./config.bld", line 3: xdc.services.global.XDCException: xdc.MODULE_NOT_FOUND: xdc.module: no module named 'Arm9_big_endian' in the package ti.targets.arm

    making package.mak (because of package.bld) ...

    js: "./config.bld", line 3: xdc.services.global.XDCException: xdc.MODULE_NOT_FOUND: xdc.module: no module named 'Arm9_big_endian' in the package ti.targets.arm

    gmake.exe: *** No rule to make target `.configuro'. Stop.

    js: "C:/CCStudio_v5.1/ccsv5/xdctools_3_20_08_88/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    gmake: *** [configPkg/compiler.opt] Error 1

    gmake: Target `all' not remade because of errors.

     

    **** Build Finished ****

     

    What do you suggest me to do?

    Thanks,

    Zhao

  • Can you post the next screen after the one you posted above?  It looks like the target you selecting does not exists.

    Judah

  • Hi Judah,

    Here is the next screen. Do you also have tutorials on how to use CCS v5 for ARM program building, loading and debugging? What format is the executible file and how do I load and run the program?

    Thank you,

    Zhao

  • Zhao,

    Change Target to "ti.targets.arm.Arm9".

    I don't have tutorial on ARM but its similar to DSP.  CCS has full support for ARM meaning it should have the codegen tools, emulator so you can talk to the ARM through JTAG, etc...

    Judah

  • Judah,

    Thanks. I got a different error msg from the compiler after changing to "ti.targets.arm.Arm9". Please see below. If i follow the suggestions of the compiler output and change the target to "ti.targets.arm.elf.Arm9", then the linker complains. See the message marked by "LINKER OUTPUT" below. It looks like this DM6446 ARM9 is not fully supported yet.

    Zhao

    **** Build of configuration Debug for project ARM_Multicore_MessageQ_example ****

     

    C:\CCStudio_v5.1\ccsv5\utils\gmake\gmake -k all

    'Building file: ../message_arm.cfg'

    'Invoking: XDCtools'

    "C:/CCStudio_v5.1/ccsv5/xdctools_3_20_08_88/xs" --xdcpath="C:/CCStudio_v5.1/ccsv5/ipc_1_22_03_23/packages;C:/CCStudio_v5.1/ccsv5/bios_6_31_04_27/packages;" xdc.tools.configuro -o configPkg -t ti.targets.arm.Arm9 -p ti.sdo.ipc.examples.platforms.evmDM6446.arm -r whole_program -c "C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470" "../message_arm.cfg"

    making package.mak (because of package.bld) ...

    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

    configuring message_arm.p9 from package/cfg/message_arm_p9.cfg ...

    js: "C:/CCStudio_v5.1/ccsv5/bios_6_31_04_27/packages/ti/sysbios/family/Settings.xs", line 93: Error: Target not supported: ti.targets.arm.Arm9

    Please choose one of the following targets supported by BIOS:

    ti.targets.C28_float

    ti.targets.C28_large

    ti.targets.C64P

    ti.targets.C64P_big_endian

    ti.targets.C674

    ti.targets.arm.elf.A8F

    ti.targets.arm.elf.Arm9

    ti.targets.arm.elf.M3

    ti.targets.arm.elf.R4Ft

    ti.targets.arm.elf.R4Ft_big_endian

    ti.targets.arm.elf.R4t_big_endian

    ti.targets.elf.C64P

    ti.targets.elf.C64P_big_endian

    ti.targets.elf.C64T

    ti.targets.elf.C66

    ti.targets.elf.C66_big_endian

    ti.targets.elf.C674

    ti.targets.elf.C67P

    ti.targets.elf.T16

    ti.targets.msp430.MSP430

    ti.targets.msp430.MSP430X

    ti.targets.msp430.MSP430X_small

    microsoft.targets.Win32

    "C:/tmp/ARM_Multicore_MessageQ_example/message_arm.cfg", line 32

    "./package/cfg/message_arm_p9.cfg", line 747

    "./package/cfg/message_arm_p9.cfg", line 802

    "./package/cfg/message_arm_p9.cfg", line 734

    gmake.exe: *** [package/cfg/message_arm_p9.xdl] Error 1

    js: "C:/CCStudio_v5.1/ccsv5/xdctools_3_20_08_88/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    gmake: *** [configPkg/compiler.opt] Error 1

    gmake: Target `all' not remade because of errors.

     

    **** Build Finished ****

     

    LINKER OUTPUT:

     

    **** Build of configuration Debug for project ARM_Multicore_MessageQ_example ****

     

    C:\CCStudio_v5.1\ccsv5\utils\gmake\gmake -k all

    'Building target: ARM_Multicore_MessageQ_example.out'

    'Invoking: TMS470 Linker'

    "C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/bin/cl470" -g --diag_warning=225 --abi=ti_arm9_abi --code_state=32 -z -m"ARM_Multicore_MessageQ_example.map" --warn_sections -i"C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/lib" -i"C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/include" --reread_libs --rom_model -o "ARM_Multicore_MessageQ_example.out" -l"./configPkg/linker.cmd" "./message_multicore.obj" -l"libc.a"

    <Linking>

    error: --abi=ti_arm9_abi not supported when producing ELF output files

    fatal error: cannot continue with specified options; aborting

     

    >> Compilation failure

    gmake: *** [ARM_Multicore_MessageQ_example.out] Error 1

    gmake: Target `all' not remade because of errors.

     

    **** Build Finished ****

  • Zhao,

    Sorry, I forgot that Arm supports elf only.  Try "ti.targets.arm.elf.Arm9".

    Judah

  • Hi Judah,

    I changed to "ti.targets.asm.elf.Arm9" as you suggested. Then I did a "clean project" and "build project", the output is listed below. It complains that "error: --abi=ti_arm9_abi not supported when producing ELF output files". See if you have any idea why this is happening.

    Thanks,

    Zhao

    **** Build of configuration Debug for project ARM_Multicore_MessageQ_example ****

     

    C:\CCStudio_v5.1\ccsv5\utils\gmake\gmake -k all

    'Building file: ../message_arm.cfg'

    'Invoking: XDCtools'

    "C:/CCStudio_v5.1/ccsv5/xdctools_3_20_08_88/xs" --xdcpath="C:/CCStudio_v5.1/ccsv5/ipc_1_22_03_23/packages;C:/CCStudio_v5.1/ccsv5/bios_6_31_04_27/packages;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.Arm9 -p ti.sdo.ipc.examples.platforms.evmDM6446.arm -r whole_program -c "C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470" "../message_arm.cfg"

    making package.mak (because of package.bld) ...

    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

    configuring message_arm.pe9 from package/cfg/message_arm_pe9.cfg ...

    cle9 package/cfg/message_arm_pe9.c ...

    lnke9 message_arm.pe9 ...

    'Finished building: ../message_arm.cfg'

    ' '

    'Building file: ../message_multicore.c'

    'Invoking: TMS470 Compiler'

    "C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/bin/cl470" -g --include_path="C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/include" --diag_warning=225 --abi=ti_arm9_abi --code_state=32 --preproc_with_compile --preproc_dependency="message_multicore.pp" --cmd_file="./configPkg/compiler.opt" "../message_multicore.c"

    'Finished building: ../message_multicore.c'

    ' '

    'Building target: ARM_Multicore_MessageQ_example.out'

    'Invoking: TMS470 Linker'

    "C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/bin/cl470" -g --diag_warning=225 --abi=ti_arm9_abi --code_state=32 -z -m"ARM_Multicore_MessageQ_example.map" --warn_sections -i"C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/lib" -i"C:/CCStudio_v5.1/ccsv5/tools/compiler/tms470/include" --reread_libs --rom_model -o "ARM_Multicore_MessageQ_example.out" -l"./configPkg/linker.cmd" "./message_multicore.obj" -l"libc.a"

    <Linking>

    error: --abi=ti_arm9_abi not supported when producing ELF output files

    fatal error: cannot continue with specified options; aborting

     

    >> Compilation failure

    gmake: *** [ARM_Multicore_MessageQ_example.out] Error 1

    gmake: Target `all' not remade because of errors.

     

    **** Build Finished ****