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.

Uploading Data, either via CCS or ethernet, to be used with an OpenMP Program

Hi

I am trying have matrix data in the form of text files, that I want to be processed by a program running openMP. I have tried two ways to get this to work, but both are meeting dead ends and need help to get past at least one:

The first is to upload via CCS. I have the evaluation module in 'No Boot' mode, and what have been doing is compiling via CCSv5, uploading the OpenMP program via the Jtag emulator, and successfully running. I would like it to import data and process it. I would like two text files to be read and processed, but I do not know/understand howto upload the data, and indicate to the program where the data is and in what format. What is the recommended format and method for uploading this data, as well as telling the program where it is and how to parse the data? Is there a quick start/definitive guide on how to do this?

The other method is to cross compile the program, and upload the program and the data via ethernet, while the board has booted into linux. I have been compiling using CodeSourcery Lite, combined with the ITK. However, there does not appear to be openMP support in the CodeSourcery lite. Is there another compiling option that will give me openMP support? Is there a way to take the OpenMP program compiled in CCS and allow it to run on the board while it has booted in linux.

Thanks,

Elaina

  • Hi Elaina

    You can leverage TFTP to receive the file on 6678 via ethernet. If you look at NDK_INSTALL_DIR/packages/ti/ndk/inc/nettools/inc/tftpif.h, you will see a function called NtTftpRecv, which would be useful for this. The 6678 will serve as the TFTP client and you will need to run a TFTP server on your PC/other-device, where the input file is stored. The function call looks like this: NtTftpRecv( IPAddr, File, buffer, &Size, &ErrorCode ); 

    "buffer" is where the file content will be stored on 6678 once it is received. You can place buffer wherever you choose in the memory space on 6678, by using the method outlined below. Let's say if you want it in MSMC, you'd do the following:

    Add the following in your .cfg file:
    Program.sectMap[".inputbuff"]  = "MSMCRAM";

    In your C file you can place the buffer in this region as follows:
    #pragma DATA_SECTION(buffer, ".inputbuff");
    #pragma DATA_ALIGN(buffer, 128);
    char buffer[bufsize]; 

    Please look at the file NDK_INSTALL_DIR/packages/ti/ndk/tools/console/contftp.c for an example of TFTP usage.

  • Hi Elaina,

    I think you can read the text files in your pc through the JTAG, take a look at this thread:

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/200828/715202.aspx

    Regards

  • Hi Uday,

    I'm working on the data transfer between the board C6678l and host. This might be my solution because my data is too large, 3D array with size 500x500x200.

    Are suggesting I can use your proposed method by:

    1) installing the latest CGT 7.4.1,

    2) installing MCSDK 2.1.0.2 Beta (OpenMP supported),

    3) including the <netmain.h>, <_stack.h> and "console.h",

    4) setting up local TFTP server (for example, by using WinAgents TFTP Server Manager),

    5) using your suggested method above (setting up the buffer, using NtTftpRecv etc.)

    If yes, can we do the other way around, uploading our data to the TFTP server?

    I'm looking a way to download my large data at higher speed (than the JTAG, because JTAG is painfully slow for my case), do the processing, and record the data back (upload) to the PC.

    Hopefully you or any other person could show this method in details.

    Kind regards,

    Rizuan