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.

TMDXICE110: PRSDK RTOS - FLASHING PROCEDURE

Part Number: TMDXICE110
Other Parts Discussed in Thread: AMIC110, UNIFLASH

I have the AMIC110 ICE board and I want to flash the _ti.bin file of the UART_EXAMPLE project, but I could not see any output. But I could visualize it when running the .out file. These are the steps I followed, kindly guide me since I am new to this:

1) CONVERTING .OUT TO .BIN FILE:

 C:\ti\gcc-arm-none-eabi-7-2018-q2-update\arm-none-eabi\bin>objcopy -O binary C:\ti\UART_BasicExample_iceAMIC110_armExampleProject\Debug\UART_BasicExample_iceAMIC110_armExampleProject.out uart_example.bin

2) CONVERTING .BIN TO _TI.BIN FILE


C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\tools\ti_image>tiimage.exe 0x20000 NONE uart_example.bin uart_example_ti.bin

3)  INITIAL BOOTLOADER


C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\tools\flash_writer\spi_flash_writer_AM335X.out

Select option 1 and CHOOSE : C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\binary\bootloader\bin\amic110-ddrless\gcc\bootloader_boot_mcspi_noDDR_a8host_release_ti.bin

addr offset : 0

4) SBL


Rerun the flash writer tool , option 1 and choose:

C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\tools\ti_image\uart_example_ti.bin

addr offset : 20000

I got flash successful both times but I could not see anything in the serial terminal.

 

  • Hi Karthik,

    Did you set the baud rate to 115200 for the serial console? If you flashed the application correctly, when you power up the board, you should see the same message as you ran the application through CCS.

    Regards,

    Jianzhong

  • Hi Jianzhong, 

              I have checked the serial terminal settings, they are good. I checked  the same with the diagnostics application using the steps in prsdk developers guide. I was able to flash them using the am335x-evm bootloader but not with the amic110-ddrless bootloader. When doing the same for UART_basic example with am335x-evm bootloader I get this:

    StarterWare Boot Loader
    BOARDInit status [0x0]
    SoC : [AM335X]
    Core : [A8]
    Board Detected : [AMIC110]
    Base Board Revision : [UNKNOWN]
    Daughter Card Revision: [UNKNOWN]
    MCSPI Instance number: 0
    Channel/Chip Select number: 0
    The instance address is 48030000
    offset = 0x20000, size = 0x8, dst = 0x402f9d50

    Copying Header of the image
    Copying image from flash to DDR
    offset = 0x20008, size = 0x20008, dst = 0x4e20

    After this my application does not load. Any suggestions?

  • Hi Karthik,

    Sorry for my delayed response. The flash writer you're using, C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\tools\flash_writer\spi_flash_writer_AM335X.out, may not work with AMIC110.

    Can you try the Uniflash tool (https://www.ti.com/tool/download/UNIFLASH)? Download and install it and the flash writer for AMIC110 is:  uniflash_6.2.0\processors\FlashWriter\iceAMIC110\uart_iceAMIC110_flash_programmer.out.

    Thanks,

    Jianzhong

  • hello Jianzhong, 

    When running the out file from uniflash, the following message is displayed.

    "CortxA8: 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."

    Regards,

    Karthik

  • Hi Karthik,

    After some more investigation, I believe there were two problems in your original procedure:

    1. In step 2), you should use 0x80000000 in generating the application image:

    C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\tools\ti_image>tiimage.exe 0x80000000 NONE uart_example.bin uart_example_ti.bin

    2. In step 3), You should use AM335x EVM bootloader:

    Select option 1 and CHOOSE : C:\ti\pdk_am335x_1_0_17\packages\ti\starterware\binary\bootloader\bin\am335x-evm\gcc\bootloader_boot_mcspi_a8host_release_ti.bin 

    I verified the procedure by myself and it worked fine for me.

    By the way, when you build the CCS project, it will generate the application image for you. This is done in CCS post-build steps. The generated application image is: C:\ti\pdk_am335x_1_0_17\packages\MyExampleProjects\UART_BasicExample_iceAMIC110_armExampleProject\Debug\app. I used this one in my verification. You can try this one first and then try your step 2) with 0x80000000.

    Hope this can help you solve the problem.

    Regards,

    Jianzhong

  • Hi Jianzhong,

         When using the "app" instead of the _ti.bin file, nothing gets displayed on the serial terminal.

         Also, what is the offset address to given when prompted in step 4??

    Regards,

    Karthik

  • Hi Karthik,

    Use 0x20000 as offset address in your step 4.

    Regards,

    jianzhong

  • Please also make sure you have a UART connection through the TTL-232R-3V3 serial cable according to AMIC110 ICE EVM Hardware Setup Guide

    Regards,

    Jianzhong

  • Hi Jianzhong,

    while loading the spi flash writer - spi_flash_writer_AM335X.out file and resumed, "[CortxA8] AM335X part detected." is displayed in the console

    and the following prompts :

    Enter Operation [1 - Flash ] [2 - Erase] :

    Enter the offset [in Hex]:         

    are not displayed. 

    Help me in regarding this

    Regards,

    Karthik

  • Hi Karthik,

    Please try to power cycle the board and restart CCS.

    Regards,

    Jianzhong

  • hello Jianzhong,

    the issue still persist. 

    what would be the followed up step?

    Regards,

    Karthik

  • Hi Karthik,

    The flashing worked fine for you initially, right? What were the changes that caused it not working? Can you describe your system setup in detail?

    Thanks,

    Jianzhong

  • Hello Jianzhong,

    Yes, The flashing worked fine for the ARM example project only.  when trying with the same Target configuration for other example projects, the process was not successful.

    so did all the procedure from the start( creating new target configuration file-> hard reset-> connect to the core->  enable halt on reset -> System reset->run-> load the program)

    from that the issue arised

    CortxA8: Trouble Writing Memory Block at 0x80000000 on Page 0 of Length 0x7ff0: (Error -1065 @ 0x3D5A) 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.4.0.00006)
    CortxA8: File Loader: Verification failed: Target failed to write 0x80000000
    CortxA8: GEL: File: C:\ti\ccstest\UART_BasicExample_iceAMIC110_armExampleProject\Debug\UART_BasicExample_iceAMIC110_armExampleProject.out: Load failed.)

    &

    Does Restart the ccs means? : Window -> Preferences-> Code Composer Studio -> Products-> add(verifying the components)-> restart ccs(would be prompted)

    Thanks & Regards

    karthik

  • Hi Karthik,

    For those projects which didn't work, did you check and make sure they have same setting and configurations as the example project?

    By restarting CCS, I just meant you close it and restart it.

    Thanks,

    Jianzhong

  • Hi Jianzhong,

    I am currently checking for the example project provided by TI, there also same error occuring.

    Is there any way to erase the flash apart from loading the spi-flash_writer_AM335x.out file?

    Thanks 

    Karthik

  • Hi Karthik,

    Using spi-flash_writer_AM335x.out through CCS is the only way to erase the flash for this board. But you should still be able to load and run the example project without worrying about the flash.

    Thanks,

    Jianzhong