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.

EVMK2H: ARM core program and IPC

Part Number: EVMK2H

Hi all,

I am using EVMK2H module, and I have two questions as below:

1. I try ti create an ARM project with RTSC using compiler TI v18.12.4.LTS, but I cannot find the correct target as well as the platform. could you please provide advice how to configure them?

2. I want to implement the IPC for data transfer between DSP and ARM, both running RTOS. Could you please provide the example for this. I am searching it for some time but I only find the example of ARM linux. I also try the example ipc_3_50_04_07\examples\TCI6636_bios_elf\ex02_messageq but I cannot build the project using CCS.

Thanks in advance.

  • Hi, Chanh,

    Please refer to the RTOS IPC User’s Guide

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_Foundational_Components.html#ipc

     

    The example you found in TCI6636_bios_elf is the right one for K2H RTOS to RTOS. You may need to adjust the PATH after you import it in.

     

    Rex

     

  • Hi Rex,

    Thanks for your reply.

    Acutally I want to try the examle using CCS9, but the example does not contain the project file, so I just copy the source files (including the configuration files) to my project and encouter a few errors on the configuration file such as:

    var cfgArgs = Program.build.cfgArgs; is NULL

    SR0Mem.base is undefined although the file config.bld is there

    So I temporary remove or replace by a hard coded value and I can build it now. May I know if you encouter the same issue and is there anyway to fix those issue on the configuration files?

    Another issue is for the ARM core, when I create ARM Empty RTSC Project, which is the compiler and the target, platform should I use? I try the target:

    gnu.targets.arm.A15F_big_endian

    gnu.targets.arm.A15F

    with the compiler:

    TI v18.12.4.LS

    GNU v7.2.1

    but alway get the compilation error cannot find the target named gnu.targets.arm.A15F (or gnu.targets.arm.A15F_big_endian)?

    Thanks.

  • Chanh

    Chanh Nguyen64 said:
    1. I try ti create an ARM project with RTSC using compiler TI v18.12.4.LTS, but I cannot find the correct target as well as the platform. could you please provide advice how to configure them?

    We are currently supporting only ARM GCC compiler for Cortex A15 device with Processor SDK RTOS software. TI ARM compiler is issued primarily only for Cortex M, Cortex R and ARM9 (for OMAPL) devices. 

    Chanh Nguyen64 said:
    2. I want to implement the IPC for data transfer between DSP and ARM, both running RTOS. Could you please provide the example for this. I am searching it for some time but I only find the example of ARM linux. I also try the example ipc_3_50_04_07\examples\TCI6636_bios_elf\ex02_messageq but I cannot build the project using CCS.

    The build for IPC examples uses make files  currently and not CCS. HEre is an example collateral that indicates how IPC examples can be built and run.

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_how_to_guides.html#run-ipc-examples-on-am572x

    This applies to AM57xx devices but similar steps can be used to build 

    Regards,

    Rahul 

  • Hi Rahul,

    Rahul Prabhu said:
    We are currently supporting only ARM GCC compiler for Cortex A15 device with Processor SDK RTOS software.

    Thanks for your info. So how do I build ARM project with GCC compiler using CCS? Or I can only use make file to build it?

    Rahul Prabhu said:
    The build for IPC examples uses make files  currently and not CCS. HEre is an example collateral that indicates how IPC examples can be built and run.

    Thanks I will try to use make file instead of CCS.

  • Building these examples as CCS project is not the default out of box user experience for these examples. you can first build the example using make files and capture the log to see the compiler options and source files compiled.and if CCS projects are required then convert the example to CCS project if you would like. 

    Regards,

    Rahul

  • Chanh,

    Adding to Rahul's response,

    You can also build the IPC examples using the top-level makefile in the Processor SDK RTOS folder. For example, on Windows:

    cd C:\ti\k2hk-6.0\processor_sdk_rtos_k2hk_6_00_00_07
    setupenv.bat
    gmake ipc_examples

    And as Rahul mentioned, the IPC examples are only makefile based - CCS projects are not supported currently. That is not to say it cannot be done, but it may require some trial and error on your end. I recommend referring to the makefile of each core for details on compiler/linker/platform settings.

    For example, looking at C:\ti\k2hk-6.0\ipc_3_50_03_05\examples\TCI6636_bios_elf\ex02_messageq\core0\makefile, you can see some of the project settings that are used:

               -t ti.targets.elf.C66 \
                -c $(ti.targets.elf.C66) \
                -p ti.platforms.evmTCI6636K2H:core0 \
                -b ../shared/config.bld \
                -r $(PROFILE) \
                --cfgArgs "{ \
                    profile: \"$(PROFILE)\" \
                }" \
                Core0.cfg
    
    
    CFLAGS = -qq -pdsw225 -ppd=$@.dep -ppa $(CCPROFILE_$(PROFILE)) -@$(CONFIG)/compiler.opt -I.
    
    LDFLAGS = -w -q -c -m $(@D)/obj/$(@F).map
    LDLIBS = -l $(CGTOOLS)/lib/rts6600_elf.lib
    
    CCPROFILE_debug = -D_DEBUG_=1 --symdebug:dwarf
    CCPROFILE_release = -O2

    Regards,
    Sahin

  • Hi Rahul and Sahin,

    Follow your suggestion, I have built the binary files of example ex02_messageq for ARM and DSP. Then I follow the step on the processor SDK guide:

    1. Conntect target for 8 DSPs (DSP_Core0 to DSP_Core7) and ARM_Core0

    2. Load the binary accordingly

    3. Start the ARM core, then strat the DSP from core 0 to core 7

    4. Wait for sometime, then suspend all the core.

    5. Open ROV

    From the LoggerBuff I only see one line is printed (with the text "-> main:"). It looks like the program hang somewhere. Could you please advise how to debug this?

    Also in my previous post. I am looking for how to create a ARM RTOS project using CCS, for my future project, not only for running the example of IPC. Any suggestion on that?

    Thanks a lot.

  • Hello,

    The ex02_message example is for communicating between the ARM and only 1 DSP core. By default, it expects core 0. You should only connect and load to DSP core 0 and the ARM core. 

    If you want communication between all cores then the ex11_ping example would better suit you. 

    For creating the CCS project, you can start a new SYSBIOS project for TCI6636K2H by going to File > New > CCS Project. Make sure to add the required files (including the shared folder), the compiler and linker options from the makefile, and update the platform specified in the makefile, e.g. for core 0 it is "ti.platforms.evmTCI6636K2H:core0". You can update the platform in project properties > General > Products > Platform.

    Regards,
    Sahin

  • Hi Sahin,

    Even I run DSP Core 0 and ARM Core 0 only, I still have same issue as below:

  • Hi Sahin,

    It seems like when the ARM is running, it stucks at the source file C:\ti\bios_6_76_02_02\packages\ti\sysbios\family\arm\a15\smp\Core.c

    From what I understand is that since useSkernelCmd is set to false, we need to use GEL file to wake up secondary cores, but I am using C:\ti\ccs920\ccs\ccs_base\emulation\boards\xtcievmk2x\gel\xtcievmk2x_arm.gel and I cannot find what is the function to do so.

    Please advise how to solve this issue. Thanks.

  • Hello,

    As we discovered in your other thread, it was due to the example expecting to be run in SMP mode. 

    https://e2e.ti.com/support/processors/f/791/t/887358

    I will close this thread now.

    Regards,
    Sahin

  • Hi Sahin,

    Ok thanks a lot.