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.

How to run "Image Processing" demo on EVMC6678L

 

How to run "Image Processing" demo on EVMC6678L,I found that the result was not always correct.

Environment & configuration is:

    CCS        5.0.3

    SYS/BIOS   2.00.02.14

    using DHCP(note:user switch is on)

    bootmode is no boot/EMIF16 boot

    little-endian

Problem & step is:

    1. connect target and load gel.

    2. Load "demos\image_processing\ipc\evmc6678l\master\debug\image_processing_evmc6678l_master.out"(or release) to core0

    3. Load "demos\image_processing\ipc\evmc6678l\master\debug\image_processing_evmc6678l_slave.out"(or release) to all other core

    4. run core0, run core1, run core2 ...... run core7

    5. I found that the result was not always correct.

        When load and run Release version, only success one time

            When failed , there's no print message output

            Sometimes DHCP can’t find IP address and showed " [C66xx_0] Service Status: DHCPC : Enabled  : Fault    : 002 "

            Sometimes only showed " [C66xx_0] MCSDK IMAGE PROCESSING DEMONSTRATION "

        When load and run Debug version, always failed, never success, and no print message at all.

Questions

    Whey always fail? What cause the failure?

    Is there any order/sequence when running these eight cores?  There’s no button in CCS5 to run all the cores automatically.

    In the practice, it always fail when I run core0 first. So I run core7 to core1, and then run core0 at the end.

These questions are different from "http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/128857/462796.aspx#462796 " 

 

  • Hi,

    We don't see any such failure on the demo.

    You can group cores to load and run simultaneously. To group cores, select all 8 cores, right click, and choose group cores from the menu.

    But, even if you run all core at once or one-by-one, the demo should work fine.

    Can you please try to run NDK client single core demo example, we need to isolate any network related issue?

    The path to NDK client application is mcsdk_2_00_03_15\examples\ndk\client\evmc6678l.

    If this works fine, then we will come back to this the demo application.

    Regards

    Sajesh

  •  

    Hi Sajesh

            Thanks for your answer.

            I can load and run the "Image Processing" demo correctly.

            But I found we need to do some pre-process before get the correct result.

                    First, we must repower every time, since I didn’t found other method to run stably.

                    Second, when select all 8 cores, they just can be connected together, but can’t run together. And there always are errors when load program together, so I have to use it one-by-one.

                    And, I have to run core0 , after run core1~ core7.

           It is so complex

     

  • Good to know you can run the demo correctly. Now, we can work on the usability issues you are seeing

    - You don't have to re-power the board every-time to run. To reload and run, you reset all cores, then select core 0 and do a system reset. Then you can load and run the cores.

    - You also need not have to run the cores in phases. You should be able to connect, load and run the all cores together. Have you tried grouping all the 8 cores? Once you group, then you can re-load and run all cores simultaneously.

    Please let me know if you still see the issue.

    Regards

    Sajesh

  • Hi Sajesh,

    I had the same issues with having to do system reset before every run, the client example is working fine, but I have issues with the image processing, when I'm loading the file it doesn't go to main it start's running both Master & Slave, why is that?

    I'm using - 

    CCS - 5.1.0.07001

    CGT - 7.2.4

    IMGLIB - 3.0.1.0

    IPC 1.23.1.26

    MCSDK - 2.0.3.15

    MCSDK - 1.0.0.15

    Multicore System Analyzer - 1.0.1.17

    NDK - 2.20.4.26

    SYS/BIOS - 6.32.4.49

    XDCtools - 3.22.1.21

    Thanks,

    HR

     

  • You are seeing a different issue. The system reset is required to re-run NDK. I have not seen this issue.

    Does this happen every time you load the code after a successful run?

    Once you load the core, before going to main(), the code execute few init functions. Will it be possible for you to check where is the PC? You can halt CPU as soon as it is loaded to a core. You select a core then then click "Tools->Debugger Options->Generic Debugger Options". Then un-check "Run to symbol->On a program load or restart". Then the CPU will halt after program is loaded. Then you can single step in the init sequence.

    Are you running the code in the EVM without any modifications?

    Regards

    Sajesh

  • Hi Sajesh,

    Yes, I need to run system reset after every successful run,

    - I have changed the Generic Debugger Options starting from _c_int00

    When using F5 I'm getting after a few steps to - 

    "Can't find a source file at "/db/ztree/library/trees/xdctargets/xdctargets-e05x/src/ti/targets/rts6000/boot.c" 

    Locate the file or edit the source lookup path to include its location."

    When using Assembler step over I'm getting to - 

    "Memory map prevented reading of target memory at 0x00000000 [code=131072]"

    I'm using the TMDXEVM6678L, Is there a special settings for the EVM sw3-6?

    Thanks,

    HR

  • HR,

    The boot.c is available in xdctools_#_##_##_##\packages\ti\targets\rts6000. You can load and step thru the code. It would provide more information to the issue.

    The system reset on core 0 is required after every successful run. The forum thread http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/128857/462796.aspx have more details on this.

    The details on the switch settings is provided in the link http://processors.wiki.ti.com/index.php/TMDXEVM6678L_EVM_Hardware_Setup.

    I would try to set the board in no-boot mode and load the GEL files comes with CCS to set up DDR before loading.

    Regards

    Sajesh

  • Hi Sajesh,

    - The boot is configured to no-boot,

    - I loaded the original master debug out file and it looks that the program is working correctly, I have recompiled the project and I'm getting the below error, what CGT version are you using?

    'Building target: image_processing_evmc6678l_master.out'

    'Invoking: C6000 Linker'

    "C:/TI_CCS5.1/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6600 -g --diag_warning=225 --mem_model:const=far --mem_model:data=far --abi=eabi -z -m"image_processing_evmc6678l_master.map" --heap_size=0x100000 --warn_sections -i"C:/TI_CCS5.1/ccsv5/tools/compiler/c6000/lib" -i"C:/TI_CCS5.1/ccsv5/tools/compiler/c6000/include" -i"C:/TI_CCS5.1/imglib_c66x_3_0_1_0/lib" --reread_libs --relocatable --rom_model -o "image_processing_evmc6678l_master.out" -l"./configPkg/linker.cmd"  "./common/src/mcip_core_task.obj" "./common/src/mcip_core.obj" "./master/src/mcip_webpage_utils.obj" "./master/src/mcip_webpage.obj" "./master/src/mcip_process.obj" "./master/src/mcip_master_main.obj" "./master/src/mcip_bmp_utils.obj" "./master/src/system/resourcemgr.obj" "./master/src/system/platform_osal.obj" -l"imglib.ae66" -l"libc.a" 

    <Linking>

    "./configPkg/linker.cmd", line 372: error: run placement fails for object

       ".far:NDK_PACKETMEM", size 0x52b7f (page 0).  Available ranges:

       MSMCSRAM_MASTER   size: 0x100000     unused: 0x39130      max hole: 0x38e00 

    Thanks,

    HR

  • HR,

    The CGT version is 7.2.4, the information is provided in the download page (http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html). Looks like you have upgraded the CCS and CGT to a later version.

    We are aware of this issue in demo with CGT version 7.3+. To get past this issue, do the following (but I would suggest to stick to the CGT version 7.2.4 as the code based is tested with this version):

    - Right click each of the project (master and slave) and click properties

    - Then in properties window, select C/C++ build->Settings

    - Then select C6000 Linker->Linker Output and uncheck "Produce a relocatable output module (--relocatable, -r)"

    Remember that the multicore booting won't work after this change.

    Regards

    Sajesh

  • Hi Sajesh,

    Moving to CGT 7.2.4 didn't help removing the -r together with CGT 7.2.4  helped and demo works great !

    Thank you very much for the help,

    HR

  • Hi HR,

    another option to get the demo going with CGT 7.2.4 is setting "Build->C6000 Linker->Dynamic Linking Support Options->Generate dynamic executable or a dynamic library (--dynamic)" to "exe".

    Actually with this change it's also possible to compile and run the demo with CGT 7.3.1.

    Kind regards, Mario