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.

TMDSEVM6678: Booting OpenMP based Image Processing Demo (MCSDK) from NOR flash

Part Number: TMDSEVM6678

Hello,

I am facing problems while booting OpenMP based Image Processing Demo shipped as part of MCSDK for EVM6678 platform.

  1. Kindly note that everything works perfectly when I follow the steps mentioned in BiosMulticoreSDK_2.1_UserGuide (Page 137-138, Booting from NOR). In this example, the bin file (c:\ti\mcsdk_2_01_01_04\demos\image_processing\utils\mad\evmc6678l\images\mcip-plbp-c6678-le.bin) that is pre-generated and shipped as part of the MCSDK is written to NOR flash and finally, DSK is booted from NOR flash. This example works like a charm for me. However, note that the above-mentioned bin file was generated from IPC based Image Processing Demo
  2. Within the same folder (C:\ti\mcsdk_2_01_01_04\demos\image_processing), there is an "openmp" folder, which provides an implementation of the same demo based on OpenMP. OUT file of this demo is shipped as part of the MCSDK distribution. I simply use the batch script located at (C:\ti\mcsdk_2_01_01_04\demos\image_processing\utils\mad\evmc6678l\build_mad_image_prelink_bypass_omp.bat)  to generate bin file. The bin file is generated in the "images" folder in the same directory.
  3. Next, I start CCS 7.3, launch debug configuration, connect to Core 0, initialize global defaults from Scripts menu of CCS and finally load the BIN file at address 0x9E000000. When the bin file is successfully loaded to DDR, I set the PC to 0x9E001040 and run core 0. I successfully see the desired output of the program at hyper-terminal. This implies everything seems fine as long as the bin file is concerned.
  4. Next, I burn this bin file to NOR flash using the same steps I followed in (1). When NOR flash is successfully written, I reboot the DSK. Before rebooting the DSK, I make sure the switches are in the correct configuration as required for booting from NOR. The hyper-terminal shows that IBL loaded successfully, and 'Booting from NOR', but nothing happens next. 
  5. When I connect Core 0 through CCS, I see PC (program counter) is stuck at 0x9E008384. This happens every time no matter which version of MCSDK I use. I tried mcsdk_2_01_01_04mcsdk_2_01_02_05 and mcsdk_2_01_02_06 with same results. 
  6. I also compared the contents of DDR (after I connect with Core0) and the bin file I generated in step 2 above and there are significant differences. 

I will really appreciate if you guys could point me to some relevant help. BTW, there is only one relevant thread that I could find on e2e. Incidentally, this gentleman was facing an almost same problem and his Core0 was also stuck at the same address 0x9E008384. Unfortunately, the details of his dealing with this problem are not clear in the thread. I downloaded and tried the zip file (7230.mad-debug.zip) that apparently solved the problem for this gentleman. However, for me, the problem persisted! i.e. Core0 still halts at 0x9E008384

Best Wishes, 

  

  • The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • Hi Adnan,

    MCSDK is no longer maintained and we have moved to Processor SDK (www.ti.com/.../PROCESSOR-SDK-C667x).

    Any reason you have to use the OpenMP based image processing demo? There is an IPC based image processing demo in Processor SDK currently, and you might want to migrate the OpenMP based demo to processor SDK.

    Regards,
    Garrett
  • Thanks Garrett,
    I am working on an Image Processing based project. Moreover, compared to IPC, openMP is very easy to implement because of use of simple compiler directives etc. Thats why I am very interested in this project as I believe it will serve as a template for my project.

    In principal, I think there should be no problem in using either as long as the compiler supports OpenMP. Isn't it? And TI compiler does support OpenMP!

    Best,
  • Hi Adnan,

    Yes, TI compiler for C66x does support OpenMP and the image processing demo can use the feature as well.
    There are some OpenMP examples in the openmp_dsp_c667x_2_06_02_01\packages\examples directory that you can refer to at this point. I will check internally to see if we have plan to add the OpenMP based image processing demo into later releases of Processor SDK.

    Regards,
    Garrett
  • Adnan,

    We have decided to limit migrating functionalities from MCSDK to Processor SDK for the image processing demo. If you have any issue while migrating the OpenMP based demo to Processor SDK, we can help resolve it.

    Regards,
    Garrett
  • Dear Garrett,

    Many thanks for your response.

    I have successfully installed Processor SDK (processor_sdk_rtos_c667x_2_00_02_11). I can see that processor_sdk_rtos also has a "demos/image_processing" folder. However, OpenMP demo has not been included/migrated from MCSDK to Processor SDK. 

    Before migrating OpenMP based demo, I tried to run the IPC version of the code (located in C:\ti\processor_sdk_rtos_c667x_2_00_02_11\demos\image_processing) and see if it is working fine as far as the CCS environment and PATHs are concerned. The project compiled just fine.

    Next, I tried to create an empty RTSC project. Added the 'inc' and 'src' directories from "image_processing_openmp_evmc6678l" demo of MCSDK to Processor SDK but could not successfully compile the ccs project. Toolchain versions were exactly the same as used in IPC demo. OpenMP Bios Runtime library version was 1.1.2.06.

    I tried to read the MCSDK Migration guide available at http://processors.wiki.ti.com/index.php/MCSDK_to_Processor_SDK_Migration#Introduction with no help in resolving the issue. I will really appreciate if I can get any step-by-step guide on how to migrate from MCSDK to Processor SDK. 

    Following is the compilation output: 

    **** Build of configuration Debug for project ompIPDemo ****
    "C:\\ti\\ccsv7\\utils\\bin\\gmake" -k -j 8 all -O 
    'Building file: ../src/mcip_core.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/mcip_core.d_raw" --obj_directory="src"  "../src/mcip_core.c"
    >> Compilation failure
    src/subdir_rules.mk:16: recipe for target 'src/mcip_core.obj' failed
    "../src/mcip_core.c", line 38: fatal error #1965: cannot open source file "ti/sysbios/BIOS.h"
    1 catastrophic error detected in the compilation of "../src/mcip_core.c".
    Compilation terminated.
    gmake: *** [src/mcip_core.obj] Error 1
    'Building file: ../src/mcip_master_main.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/mcip_master_main.d_raw" --obj_directory="src"  "../src/mcip_master_main.c"
    >> Compilation failure
    src/subdir_rules.mk:23: recipe for target 'src/mcip_master_main.obj' failed
    "../src/mcip_master_main.c", line 40: fatal error #1965: cannot open source file "ti/ndk/inc/netmain.h"
    1 catastrophic error detected in the compilation of "../src/mcip_master_main.c".
    Compilation terminated.
    gmake: *** [src/mcip_master_main.obj] Error 1
    "../src/mcip_process.c", line 38: fatal error #1965: cannot open source file "ti/omp/omp.h"
    1 catastrophic error detected in the compilation of "../src/mcip_process.c".
    Compilation terminated.
    gmake: *** [src/mcip_process.obj] Error 1
    'Building file: ../src/mcip_process.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/mcip_process.d_raw" --obj_directory="src"  "../src/mcip_process.c"
    >> Compilation failure
    src/subdir_rules.mk:30: recipe for target 'src/mcip_process.obj' failed
    'Building file: ../src/mcip_webpage.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/mcip_webpage.d_raw" --obj_directory="src"  "../src/mcip_webpage.c"
    >> Compilation failure
    src/subdir_rules.mk:37: recipe for target 'src/mcip_webpage.obj' failed
    "../src/mcip_webpage.c", line 39: fatal error #1965: cannot open source file "ti/ndk/inc/netmain.h"
    1 catastrophic error detected in the compilation of "../src/mcip_webpage.c".
    Compilation terminated.
    gmake: *** [src/mcip_webpage.obj] Error 1
    'Building file: ../src/mcip_webpage_utils.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/mcip_webpage_utils.d_raw" --obj_directory="src"  "../src/mcip_webpage_utils.c"
    >> Compilation failure
    src/subdir_rules.mk:44: recipe for target 'src/mcip_webpage_utils.obj' failed
    "../src/mcip_webpage_utils.c", line 49: fatal error #1965: cannot open source file "ti/ndk/inc/netmain.h"
    1 catastrophic error detected in the compilation of "../src/mcip_webpage_utils.c".
    Compilation terminated.
    gmake: *** [src/mcip_webpage_utils.obj] Error 1
    'Building file: ../src/system/platform_osal.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/system/platform_osal.d_raw" --obj_directory="src/system"  "../src/system/platform_osal.c"
    >> Compilation failure
    src/system/subdir_rules.mk:9: recipe for target 'src/system/platform_osal.obj' failed
    "../src/system/platform_osal.c", line 47: fatal error #1965: cannot open source file "ti/platform/platform.h"
    1 catastrophic error detected in the compilation of "../src/system/platform_osal.c".
    Compilation terminated.
    gmake: *** [src/system/platform_osal.obj] Error 1
    'Building file: ../src/system/resourcemgr.c'
    'Invoking: C6000 Compiler'
    "C:/ti/ti-cgt-c6000_8.1.0/bin/cl6x" -mv6600 --include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --preproc_with_compile --preproc_dependency="src/system/resourcemgr.d_raw" --obj_directory="src/system"  "../src/system/resourcemgr.c"
    >> Compilation failure
    src/system/subdir_rules.mk:16: recipe for target 'src/system/resourcemgr.obj' failed
    "../src/system/resourcemgr.c", line 47: fatal error #1965: cannot open source file "ti/platform/resource_mgr.h"
    1 catastrophic error detected in the compilation of "../src/system/resourcemgr.c".
    Compilation terminated.
    gmake: *** [src/system/resourcemgr.obj] Error 1
    gmake: Target 'all' not remade because of errors.
    **** Build Finished ****

    Really appreciate your help,

    Best Wishes,

  • Adnan,

    From the error message and build log, it appears you don't have the required header file directories included in your project. The following listed in your build log doesn't include any NDK and OpenMP directories. You may refer to an existing OpenMP and NDK projects in Processor SDK to add their include directories.
    >>-include_path="C:/Users/adizz/workspace_v7/ompIPDemo" --include_path="C:/ti/ti-cgt-c6000_8.1.0/include"

    I tried to build an OpenMP project in CCS and here is the build log:
    -mv6600 --include_path="C:/ti/openmp_dsp_c667x_2_06_02_00/packages/ti/runtime/openmp" --include_path="C:/Users/workspace_v72/openmp_ccs" --include_path="C:/ti/ti-cgt-c6000_8.1.3/include" -g --diag_wrap=off --display_error_number --diag_warning=225 --openmp

    Also, from NIMU_emacExample_EVMC6678C66BiosExampleProject:
    -mv64+ --include_path="C:/ti/pdk_c667x_2_0_7/packages/MyExampleProjects/NIMU_emacExample_EVMC6678C66BiosExampleProject" --include_path="C:/ti/pdk_c667x_2_0_7/packages/ti/transport/ndk/nimu" --include_path="C:/ti/pdk_c667x_2_0_7/packages" --include_path="{NDK_INSTALL_DIR}/packages" --include_path="C:/ti/ti-cgt-c6000_8.1.3/include" -g --define=SOC_C6678 --define=DEVICE_C6678 --define=USE_BIOS

    Unfortunately, we don't have the detailed step-by-step migration guide on how to migrate from MCSDK to the latest Processor SDK at this point, especially for the image processing OpenMP use case.

    Regards,
    Garrett