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.

[ProcessorSDK ,PDK] How to build qmss transport ?

Other Parts Discussed in Thread: TMS320C6670, SYSBIOS

Hi,

I'm trying to build ipc qmss transport with ProcessorSDK/PDK environment. 
I want to debug the transport with debug configuration in order to debug my own ipc program with ProcessorSDK/PDK, but the following recipe is not sufficient to build the transport. In config.bld, there are many environment variables for the tool chain, for example, Cortex-A15, etc.., but I'm just focusing on C66 only.

Can you share the set of recipe for building the transport for C66 under ProcessorSDK/PDK environment ?

Also, I'm now so confused by 'resource manager' newly introduced to IPC MessageQ... Do you have any technical documents for that ?

Best Regards,
Naoki

  • Hi Naoki,

    Naoki says said:
    'm trying to build ipc qmss transport with ProcessorSDK/PDK environment. 
    I want to debug the transport with debug configuration in order to debug my own ipc program with ProcessorSDK/PDK, but the following recipe is not sufficient to build the transport. In config.bld, there are many environment variables for the tool chain, for example, Cortex-A15, etc.., but I'm just focusing on C66 only.

    The CCS project build and CCS debugging is available for transport qmss. Dont focus on config.bld. It is very simple.

    The following are the steps for transportqmss project for processor SDK / PDK.

    1. First generate the PDK example for transport qmss.

    In command prompt

    >cd C:\ti\pdk_c667x_2_0_0\packages

    C:\ti\pdk_c667x_2_0_0\packages>pdkProjectCreate.bat C6678 all little qmss dsp

    2. Once generated, import the project into CCS and build the project. You will find the project at "~:\ti\pdk_c667x_2_0_0\packages\MyExampleProjects\transportQmssBenchmarkC6678C66ExampleProject"

  • Hi Shankari,

    No, I'm not asking example code generation for transportQmssBenchmark under ProcessorSDK/PDK environment.
    With ProcessorSDK/PDK, I have already succeeded example code generation and confirmed transportQmssBenchmark worked successfully on my C6678 EVM.

    I'm now trying to debug my own program (not transportQmssBenchmark ) under ProcessorSDK/PDK environment, which it was working on MCSDK environment. My program looks like the following:
    - Core0 : NDK protocol stack working, and Core0 communicates with slave cores1-7 via IPC Notify/MessageQ (using QMSS transport)
    - Core1-7 : IPC Notify/MessageQ (using QMSS transport) service provider for core0
    Please note separate executable is running on each core.

    What I'm asking is building ti.transport.ipc.c66.qmss.c6678.ae66 static library with debug configurations, which it is existing on C:\ti\pdk_c667x_2_0_0\packages\ti\transport\ipc\c66\qmss\lib\c6678\c66.

    Even though I issued the above recipe on command prompt, it does not update ti.transport.ipc.c66.qmss.c6678.ae66 -- The last updated date indicates 2016/01/09.

    Best Regards,
    Naoki
  • Hi,

    I got some progress for this issue.
    I issued the following commands to build qmss transport library and ti.transport.ipc.c66.qmss.c6678.ae66 got generated, but minor problem is existing.

    ■PDK qmss transport build

    cd C:/ti/pdk_c667x_2_0_0/packages
    set C6X_GEN_INSTALL_PATH="C:/ti/ti-cgt-c6000_8.1.0"
    set EDMA3LLD_BIOS6_INSTALLDIR=C:/ti/edma3_lld_02_12_01_22
    set CG_XML_BIN_INSTALL_PATH=C:/ti/cg_xml/bin
    set PATH=%PATH%;C:/ti/cg_xml/bin
    pdksetupenv.bat
    cd C:/ti/pdk_c667x_2_0_0/packages/ti/transport/ipc/c66/qmss
    xdc clean -PR .
    xdc -PR .

    Then, I saw the following error on console. It looks failing to generate ti.transport.ipc.c66.qmss.ae66_size.txt.

    C:/Users/139432/AppData/Local/Temp/make878540-1.sh: sectti: not found
    gmake[1]: *** [lib/c66/ti.transport.ipc.c66.qmss.ae66_size.txt] Error 127
    gmake[1]: *** Deleting file `lib/c66/ti.transport.ipc.c66.qmss.ae66_size.txt'
    xdctools_3_31_02_38_core\gmake.exe: *** [.,.libraries] Error 2

    It seems the makefile could not find sectti,  but as you see in the above commands, I've set 'CG_XML_BIN_INSTALL_PATH'. I'm not sure this is required, but I also added  'set PATH=%PATH%;C:/ti/cg_xml/bin', but still I saw this error.
    Any suggestion ?

    Also, I could not specify --opt_level=off as a compile option in config file because of the following error:

    error: argument to option -op (0-3) is out of range (must be a number from 0 to 3

    -o0/1/2/3 is okay for building ti.transport.ipc.c66.qmss.c6678.ae66, but -opt_level=off is not allowed. I want to use -opt_level=off for my debugging. 

    Best Regards,
    Naoki

  • Hi Naoki,

    C:/Users/139432/AppData/Local/Temp/make878540-1.sh: sectti: not found
    gmake[1]: *** [lib/c66/ti.transport.ipc.c66.qmss.ae66_size.txt] Error 127
    gmake[1]: *** Deleting file `lib/c66/ti.transport.ipc.c66.qmss.ae66_size.txt'
    xdctools_3_31_02_38_core\gmake.exe: *** [.,.libraries] Error 2

    I've also faced the same problem and able to solve by building the QMSS in PDK home location.

    cd C:/ti/pdk_c667x_2_0_0/packages
    set C6X_GEN_INSTALL_PATH=C:\ti\ccsv6\tools\compiler\ti-cgt-c6000_8.1.0
    set EDMA3LLD_BIOS6_INSTALLDIR=C:\ti\edma3_lld_02_12_01_22
    set CG_XML_BIN_INSTALL_PATH=C:\ti\cg_xml\bin
    pdksetupenv.bat

    Append the following lines in "C:\ti\pdk_c667x_2_0_0\packages\makefile"

    qmss:
    $(MAKE) -C ./ti/drv/qmss all

    qmss_clean:
    $(MAKE) -C ./ti/drv/qmss clean

    qmss_ipc:
    $(MAKE) -C ./ti/transport/ipc/c66/qmss all

    qmss_ipc_clean:
    $(MAKE) -C ./ti/transport/ipc/c66/qmss clean
  • Shankari,

    In this case, the library itself looks getting updated, but gmake does not fetch new compile options correctly.

    For example, if you build qmss component with -o0, I think a modification is required in config.bld in C:\ti\pdk_c667x_2_0_0\packages\ti\drv\qmss:

    Default:
    C66LE.ccOpts.prefix  = "-mo -o3 -q -k -eo.o --mem_model:data=far";

    After modification:
    C66LE.ccOpts.prefix  = "-mo -o0 -q -k -eo.o --mem_model:data=far";

    But gmake is still using -o3, not -o0 during its build process.  
    I seem this is caused by not getting updated ti.drv.qmss.c6678.ae66.mk correctly in C:\ti\pdk_c667x_2_0_0\packages\ti\drv\qmss\build\c6678\c66. 

    Best Regards,
    Naoki

  • Hi Shankari,

    In order to build the components (like qmss, cppi, etc) with debug options, I changed the related *.mk files:
    ti.drv.<component>.c66.ae66.mk
    ti.drv.<component>.c6678.ae66.mk

    For example, if you want to change the compile option from -o3 to -o0 for qmss lib, edit ti.drv.qmss.c66/c6678.ae66.mk in C:\ti\pdk_c667x_2_0_0\packages\ti\drv\cppi\build\c66 and C:\ti\pdk_c667x_2_0_0\packages\ti\drv\cppi\build\c6678:

    CFLAGS_INTERNAL = -mo -o0 -q -k -eo.o --mem_model:data=far -mv6600 --abi=eabi

    This worked to me and I could start my debugging with rebuilt libraries.

    Please note this is just temporal fix. The top level makefile should fetch the build options correctly in config.bld.
    Please update me once the solution is validated.

    Best Regards,
    Naoki
  • Hi Naoki,

    Yes, you are right.


    Default:
    C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o --mem_model:data=far";

    After modification:
    C66LE.ccOpts.prefix = "-mo -o0 -q -k -eo.o --mem_model:data=far";

    But gmake is still using -o3, not -o0 during its build process.
    I seem this is caused by not getting updated ti.drv.qmss.c6678.ae66.mk correctly in C:\ti\pdk_c667x_2_0_0\packages\ti\drv\qmss\build\c6678\c66.

    I'm also getting the same behavior.

    Your fix is also worked for me. If we need to change the optimization then we have modify the *.mk files.
    C:\ti\pdk_c667x_2_0_0\packages\ti\transport\ipc\c66\qmss\build\c66
    C:\ti\pdk_c667x_2_0_0\packages\ti\transport\ipc\c66\qmss\build\c6678\c66

    Thanks for your solution, it would help for the community members.
  • Hi Shankari,

    Thank you for your confirmation. This is just my thoughts, but I believe the same issue would happen in MCSDK's PDK.

    Best Regards,
    Naoki
  • Hi,

    I'd like to use QMSS IPC transport  for my own program. I'm trying to build library, but I've got some errors.

    My configuration is:

    - TMS320C6670,

    - CCS 5.5,

    - xdctools_3_25_03_72,

    - ipc 1_25_03_15,

    - sysbios 6.35.4.50,

    - MCSDK PDK TMS320C6670 1.1.2.6,

    - c667x PDK 2.0.3.

    PDK qmss transport build with command:

    set C6X_GEN_INSTALL_PATH="C:\ti\ccsv5\tools\compiler\c6000_7.4.4"

    set XDC_INSTALL_PATH=C:\ti\xdctools_3_25_03_72

    set EDMA3LLD_BIOS6_INSTALLDIR=C:\ti\edma3_lld_2_12_01_25

    set CG_XML_BIN_INSTALL_PATH=C:\ti\cg_xml\bin

    set BIOS_INSTALL_PATH=C:\ti\bios_ccsv5\packages

    set IPC_INSTALL_PATH=C:\ti\ipc_1_25_03_15\packages

    pdksetupenv.bat

    I've got errors:

    How build this library for TMS320C6670?

    Thanks.

    Lukasz.

  • I 've corrected :

    set BIOS_INSTALL_PATH=C:\ti\bios_ccsv5\packages

    to

    set BIOS_INSTALL_PATH=C:\ti\C:\ti\bios_6_35_04_50\packages

    then I put command:

    pdksetupenv.bat

    and:

    pdkProjectCreate.bat C6670 all little qmss dsp

    I have no idea which soc choose for TMS320C6670.

  • I also tried to build transportQmssBenchmarkC6678C68ExampleProject, but I have problem with paths.

    Could anyone help me ?

    Thanks.

    Lukasz.

  • Lukasz,

    To build transport library, just invoke the following command sequence :

    cd C:\ti\pdk_C6670_1_1_2_6\packages\ti\drv
    set EDMA3_LLD_INSTALL_PATH=edma3_lld_02_11_05_02
    set C6X_GEN_INSTALL_PATH=C:\ti\ccsv5\tools\compiler\c6000_7.4.1
    set XDC_INSTALL_PATH=C:\ti\xdctools_3_23_04_60
    set CG_XML_BIN_INSTALL_PATH=C:\ti\cg_xml\bin
    pdksetupenv.bat
    set XDCPATH=%XDCPATH%;C:\ti\ipc_1_24_03_32\packages
    set XDCPATH=%XDCPATH%;C:\ti\bios_6_33_06_50\packages
    cd C:\ti\pdk_C6670_1_1_2_6\packages\ti\transport\ipc\qmss\transports
    xdc clean
    xdc all

    Good luck.
    Naoki
  • Naoki,
    Thanks for your help. You are great !
    I did it with following command sequence :

    cd C:\ti\pdk_C6670_1_1_2_6\packages\ti\drv
    set EDMA3_LLD_INSTALL_PATH=C:\ti\edma3_lld_02_11_05_02
    set C6X_GEN_INSTALL_PATH=C:\ti\ccsv5\tools\compiler\c6000_7.4.4
    set XDC_INSTALL_PATH=C:\ti\xdctools_3_25_03_72
    set CG_XML_BIN_INSTALL_PATH=C:\ti\cg_xml\bin
    pdksetupenv.bat
    set XDCPATH=%XDCPATH%;C:\ti\ipc_1_25_03_15\packages
    set XDCPATH=%XDCPATH%;C:\ti\bios_6_33_06_50\packages
    cd C:\ti\pdk_C6670_1_1_2_6\packages\ti\transport\ipc\qmss\transports
    xdc clean
    xdc all

    Now I'll try use this library.
    Thanks.
    Lukasz.