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 program without host machine on DM6437

Other Parts Discussed in Thread: CCSTUDIO

A program with video input, image recognition and video out can be run with CCS through the XDS510usb on DM6437.

However, when I burn the hex file into the flash according to the document [DM643x Flashing Instructions.pdf] ,

it can not be run automatically.

The DM643x Flashing Instructions.pdf can be found at the local installation folder C:\dvsdk_1_01_00_15\flashburn_files.

What else shall I do?

 

  • You need to configure the boot switches on the board. Currently I can't access the evm technical document but if you can, it is stated there. The boot mode you need to select is emif direct rom boot.

  • Elric said:

    You need to configure the boot switches on the board. Currently I can't access the evm technical document but if you can, it is stated there. The boot mode you need to select is emif direct rom boot.

    I set  the SW1 and SW2 switches as follows :
    SW2-1: Off
    SW2-2: Off
    SW2-3: On
    SW2-4: On
    SW1-1: Off
    SW1-2: Off
    SW1-3: On
    SW1-4: Off
    SW1-5: On
    SW1-6: Off
    SW1-7: Off
    SW1-8: Off

    In order to select emif direct rom boot,  I changed the

    SW1-5: On

    to

    SW1-5: Off

    however, it did not work either.

  • Your switch 1 configuration is seemed to be configured for Emif fast boot. It should be configured as emif direct rom boot. Also please be sure that your hex file is correct.

  • The hex file I created is by the following way

    cd <DM6437_install_dir>\FlashBurn_Files\hexAIS

    hexAIS.exe -coff2hex -o a.hex a.out 

    The a.out is created by CCS which could be run with the XDS510USB connecting to the host machine.

    Because the above method to create hex file is described at Section A-2 of the SPRUEV6 , I set SW1 as the Emif fast boot according the concering description too.

     

    After several trials,  maybe problem exist at my program.

    when building my main.c,

    >> warning: creating output section DDR2 without SECTIONS specification

    is expressed on my CCS.

    And when I changed the main.c to release build, (threre is not problem on debug build)

    Error happened as

    >> D:\\dm6437cfg.cmd, line 9:   error:
                   undefined symbol in expression
    >>   error: User-declared symbol, '_EVMDM6437_init', has not been defined

    >> Compilation failure

    I am forwarding for your hints.

  • Masaru said:
    >> warning: creating output section DDR2 without SECTIONS specification


    This occurs when a build section is not allocated into memory inside the linker command file. You can fix this by editing the linker command file to do something like this:

    SECTIONS{
    ... /* All your other section allocations */
    DDR2 > some_memory_range
    }

    Masaru said:
    And when I changed the main.c to release build, (threre is not problem on debug build)

    Error happened as

    >> D:\\dm6437cfg.cmd, line 9:   error:
                   undefined symbol in expression
    >>   error: User-declared symbol, '_EVMDM6437_init', has not been defined

    >> Compilation failure



    EVMDM6437_init() is defined in the Board Support Library (BSL) that comes with the DM6437 EVM. Make sure that your release build includes the evmdm6437bsl.lib found in the C:\CCStudio_v3.3\boards\evmdm6437_v2\lib folder by default.

    *edit* Some additional thoughts. When booting from Flash you may need to ensure that some peripherals are configured before your system runs. Specifically, make sure that your application code configures the PLL and DDR2 EMIF.

  • Because my program is created based on the TI demo program and the demo program can be written to the flash and booted, I check the difference between them.

    The main difference is that my program load all the code and data to the DDR2 which I corrected to load my big data before.

    Although I cannot   understand the reason in details yet, After I changed the load address as the demo program (DDR2 -> IRAM), the root without host machine succeeded.

     

    The DDR2 build warning I stated above is a bug of my program and the EVMDM6437_init problem is not probed yet because it has no bussiness with the boot.

     

     

     

  • The default status of the DDR2 EMIF registers will not allow the DSP to communicate with the DDR2 memory. At some point during the boot process these registers MUST be programmed before it attempts to write anything to that memory.

    With AIS booting this can be done via the Function Execute Command; however, when not using AIS feature of the ROM this must be taken care of inside the second-level bootloader code.

  • Hi,

    Where did you find this doc:

    "The DM643x Flashing Instructions.pdf can be found at the local installation folder C:\dvsdk_1_01_00_15\flashburn_files."

    Is it included in a cd when you buy the EVM (I haven't recieved my DM6437EVM yet) ? Is it avaiable at TI or at Spectrum site?

     

     

  • The document is included on a CD with the EVM, it is installed with the rest of the DVSDK . Since it is more of a 'how to' or readme.txt like sort of document it was never published on the TI site as a full fledged application note. There is not much to it, just a set of steps, and it is relatively small, so I have attached it to this post here.

    DM643x Flashing Instructions.pdf
  • Thanks Bernie,

    I actually would like to flash the NAND FLASH in the EVM module. Is there also any document talking about that?

     

  • In the case of NAND boot you probably want to take a look at the Using the TMS320DM643x Bootloader document. This document comes with a genAIS perl script that can be used to generate a NAND boot image as well as a NANDWriter CCS project that can handle actually writing to the NAND flash (note this may need to be modified for an arbitrary NAND on a custom board).

    Also note that you need to be certain your board is using the latest silicon revision, as the NAND boot mode was not supported until the latest silicon revision (rev 1.3),  you can identify what silicon revision you have based on the topside marking as shown in section 1.2 of the silicon errata.