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.

CCS/TMS320C6678: hello world: error on flash: "Trouble Writing Memory Block"

Part Number: TMS320C6678

Tool/software: Code Composer Studio

Hello,

I just got a TMDSEVM6678L development kit. I am using Ubuntu 16.04. I was able to successfully run the OOB demos.

I am running CCS 9. I was able to successfully verify the connection to the XDS100V1 USB Debug Probe. I have set my target device type to TMS320C6678.

I have set the EVM configuration settings switches on the board to "no boot" as per instructions I had found, prior to flashing.

When I try to run "debug" and flash the device, I get this error every time, have tried multiple times:

C66xx_0: Trouble Writing Memory Block at 0x8000 on Page 0 of Length 0x6bc0: (Error -1190 @ 0x8000) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 8.3.0.00003)
C66xx_0: File Loader: Verification failed: Target failed to write 0x00008000
C66xx_0: GEL: File: /home/intec/workspace_v9/first_hello_world/Debug/first_hello_world.out: Load failed.

As an additional note, I also tried with CCS7 on my ubuntu 14.04 laptop with my board and get the same error.

I have tried restarting board / computer, to no effect, and searched the documentation.

Anyone have an idea why I would get this error? Thanks!

  • Hi,

    Regarding the memory for writing to memory, do you successfully load the GEL file, when you connect to TMS320C6678 DSP Core?

    As for flashing the TMDSEVM6678, you can check the following link:
      

    Best Regards,
    Yordan

  • Hi, thanks for the reply and sorry for any confusion.

    I am trying to run just the CCS hello world example on the dev board. When trying to start "debug" from the hello world project in CCS with my board connected and on, it tries to load the gel file but fails with the error in my original post every time.

    I am just wondering if there is another step I am missing or anything else to try. Thanks!

  • HI,

    Okay, so can you try with this target configuration:
      https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/81/NewTargetConfiguration_5F00_C6678.ccxml

    I use this to connect to my TMDSEVM6678L.

    Best Regards,
    Yordan

  • Hi,

    Thanks for the file. I do not have a XDS560- capable board, just an XDS100v1, so I modified that part of your file and otherwise kept it the same and tried debug again. I am still getting the error, with some additional detail printed now. Pasted the logs pasted below.

    As an additional note: I've also now tried on my very old windows PC with CCSv5, and I am getting the same error there as well, so it doesn't appear to be a linux-specific issue.

    C66xx_0: GEL Output: Setup_Memory_Map...
    C66xx_0: GEL Output: Setup_Memory_Map... Done.
    C66xx_0: GEL Output:
    Connecting Target...
    C66xx_0: GEL Output: DSP core #0
    C66xx_0: GEL Output: C6678L GEL file Ver is 2.00500011
    C66xx_0: GEL Output: Global Default Setup...
    C66xx_0: GEL Output: Setup Cache...
    C66xx_0: GEL Output: L1P = 32K   
    C66xx_0: GEL Output: L1D = 32K   
    C66xx_0: GEL Output: L2 = ALL SRAM   
    C66xx_0: GEL Output: Setup Cache... Done.
    C66xx_0: GEL Output: Main PLL (PLL1) Setup ...
    C66xx_0: GEL Output: PLL in Bypass ...
    C66xx_0: GEL Output: PLL1 Setup for DSP @ 1000.0 MHz.
    C66xx_0: GEL Output:            SYSCLK2 = 333.333344 MHz, SYSCLK5 = 200.0 MHz.
    C66xx_0: GEL Output:            SYSCLK8 = 15.625 MHz.
    C66xx_0: GEL Output: PLL1 Setup... Done.
    C66xx_0: GEL Output: Power on all PSC modules and DSP domains...
    C66xx_0: GEL Output: Security Accelerator disabled!
    C66xx_0: GEL Output: Power on all PSC modules and DSP domains... Done.
    C66xx_0: GEL Output: PA PLL (PLL3) Setup ...
    C66xx_0: GEL Output: PA PLL Setup... Done.
    C66xx_0: GEL Output: DDR3 PLL (PLL2) Setup ...
    C66xx_0: GEL Output: DDR3 PLL Setup... Done.
    C66xx_0: GEL Output: DDR begin (1333 auto)
    C66xx_0: GEL Output: XMC Setup ... Done
    C66xx_0: GEL Output:
    DDR3 initialization is complete.
    C66xx_0: GEL Output: DDR done
    C66xx_0: GEL Output: DDR3 memory test... Started
    C66xx_0: GEL Output: DDR3 memory test... Passed
    C66xx_0: GEL Output: PLL and DDR Initialization completed(0) ...
    C66xx_0: GEL Output: configSGMIISerdes Setup... Begin
    C66xx_0: GEL Output:
    SGMII SERDES has been configured.
    C66xx_0: GEL Output: Enabling EDC ...
    C66xx_0: GEL Output: L1P error detection logic is enabled.
    C66xx_0: GEL Output: L2 error detection/correction logic is enabled.
    C66xx_0: GEL Output: MSMC error detection/correction logic is enabled.
    C66xx_0: GEL Output: Enabling EDC ...Done
    C66xx_0: GEL Output: Configuring CPSW ...
    C66xx_0: GEL Output: Configuring CPSW ...Done
    C66xx_0: GEL Output: Global Default Setup... Done.
    C66xx_0: GEL Output: Invalidate All Cache...
    C66xx_0: GEL Output: Invalidate All Cache... Done.
    C66xx_0: GEL Output: GEL Reset...
    C66xx_0: GEL Output: GEL Reset... Done.
    C66xx_0: Loader: One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.
    C66xx_0: Trouble Writing Register PC: (Error -1176 @ 0xEA40) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 7.0.100.0)
    C66xx_0: GEL Output: Disable all EDMA3 interrupts and events.
    C66xx_1: Trouble Writing Memory Block at 0x8000 on Page 0 of Length 0x7040: (Error -1190 @ 0x8000) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 7.0.100.0)
    C66xx_1: File Loader: Verification failed: Target failed to write 0x00008000
    C66xx_1: GEL: File: /home/csaba/workspace_v7/asdasds/Debug/asdasds.out: Load failed.

  • For reference, here's the ccxml file I am using based on the one you sent, but with xds100:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
        <configuration XML_version="1.2" id="configuration_0">
            <instance XML_version="1.2" desc="Texas Instruments XDS100v1 USB Debug Probe" href="connections/TIXDS100usb_Connection.xml" id="Texas Instruments XDS100v1 USB Debug Probe" xml="TIXDS100usb_Connection.xml" xmlpath="connections"/>
            <connection XML_version="1.2" id="Texas Instruments XDS100v1 USB Debug Probe">
                <instance XML_version="1.2" href="drivers/tixds100icepick_d.xml" id="drivers" xml="tixds100icepick_d.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100c66xx.xml" id="drivers" xml="tixds100c66xx.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100cs_dap.xml" id="drivers" xml="tixds100cs_dap.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100csstm.xml" id="drivers" xml="tixds100csstm.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100etbcs.xml" id="drivers" xml="tixds100etbcs.xml" xmlpath="drivers"/>
                <platform XML_version="1.2" id="platform_0">
                    <instance XML_version="1.2" desc="TMS320C6678_0" href="devices/C6678.xml" id="TMS320C6678_0" xml="C6678.xml" xmlpath="devices"/>
                <device HW_revision="1" XML_version="1.2" description="C66x core" id="TMS320C6678_0" partnum="TMS320C6678" simulation="no">
                        <router HW_revision="1.0" XML_version="1.2" description="ICEPick_D Router" id="IcePick_D_0" isa="ICEPICK_D">
                            <property Type="filepathfield" Value="" id="GEL File"/>
                        <subpath id="subpath_0">
                                <cpu HW_revision="1.0" XML_version="1.2" description="C66xx CPU" id="C66xx_0" isa="TMS320c66xx">
                                    <property Type="filepathfield" Value="../../emulation/boards/evmc6678l/gel/evmc6678l.gel" id="GEL File"/>
                                </cpu>
                            </subpath>
                        </router>
                    </device>
                </platform>
            </connection>
        </configuration>
    </configurations>

  • Okay, I've found and solved the problem.

    For reference:

    When making my project, I had missed the option under "Tool-chain" to provide a "Linker command file". I saw that there was not one in the list for "C6678.cmd", so I found and downloaded that file from here: http:// processors.wiki.ti.com/index.php/Linker_CMD_Files_for_CCS#C6000. I then put it in the same folder as all the other .cmd files (ccs_base/c6000/include) and specified it when creating the project. The example now runs correctly.

    Thanks for the help!