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.

spi flash Application not executing

Other Parts Discussed in Thread: OMAP-L138

Hi,

 

          I am the user of Logicpd l138 Development kit. Currently I am focusing on Nor flash available in SOM

         I have flashed the UBL  and Applilication for LED blinking in to a flash, while restart the Application is not executing .

         Please guide me(while executing the LED code using JTAG it's working fine(0x80000000)

             UBL Message

             OMAP-L138 initialization passed!

             Booting TI User Boot Loader

             UBL Version: 1.65

            UBL Flashtype: SPI

            Starting SPI Memory Copy...

            Valid magicnum, 0x55424CBB, found at offset 0x00010000.

             DONE

             Jumping to entry point at 0xC1080000.

  • Hi Please note the Application file is downloaded from TI website. The code is working fine with JTAG mode, but when I flashed UBL+Application file, there is no problem with downloading, but application is not executing.

    Please guide my application have any memory map issues.

    Linker file for LED-Blinking Program

    stack           0x00000800      /* Stack Size */

    -heap            0x00000800      /* Heap Size */

     

     

    MEMORY

    {

        ARMRAM:      o = 0xFFFF0000  l = 0x00002000

        DSPRAM:      o = 0x11800000  l = 0x00040000

        SHAREDRAM:   o = 0x80000000  l = 0x00020000

        SDRAM:       o = 0xC0000000  l = 0x20000000

    }

     

    SECTIONS

    {

        .bss        >   SHAREDRAM

        .cinit      >   SHAREDRAM

        .cio        >   SHAREDRAM

        .const      >   SHAREDRAM

        .stack      >   SHAREDRAM

        .sysmem     >   SHAREDRAM

        .text       >   SHAREDRAM

        .switch     >   SHAREDRAM

        .far        >   SHAREDRAM

    .test_buf > SDRAM

     

     

    }

     

    Linker file for UBL

    -e boot

     

    IRAMStart  = 0x80000000;

    IRAMSize   = 0x00008000;

    DRAMStart  = 0x80000000;

    DRAMSize   = 0x00008000;

     

    ASYNC_MEM_START    = 0x62000000;

     

    INTERNAL_RAM_START = 0x80000000;

    INTERNAL_RAM_SIZE  = 0x00008000;

     

    STACK_START = INTERNAL_RAM_START + INTERNAL_RAM_SIZE;

     

    MEMORY

    {

      ARM_I_IVT       (RX)  : origin = 0xFFFFD000   length = 0x00000020

     

      UBL_TEXT        (RWX) : origin = 0x80000000   length = 0x00006800

      UBL_DATA        (RWX) : origin = 0x80006800   length = 0x00000800

     

      UBL_BSS         (RW)  : origin = 0x80007000   length = 0x00000800

      UBL_STACK       (RW)  : origin = 0x80007800   length = 0x00000800

      UBL_DRAM        (RWX) : origin = 0xC0000000   length = 0x10000000

    }

     

    SECTIONS

    {

     

      .text :

      {

        *(.boot) 

        . = align(4);

        *(.text)

        . = align(4);

      } > UBL_TEXT

     

      .data :

      {

        *(.const)

      } > UBL_DATA

     

      .bss :

      {

        *(.bss)

        . = align(4);

      } > UBL_BSS

     

      .ddr_mem :

      {

        . += 0x10000000;

      } run = UBL_DRAM, type=DSECT, RUN_START(EXTERNAL_RAM_START), RUN_END(EXTERNAL_RAM_END), SIZE(EXTERNAL_RAM_SIZE)

     

      .stack :

      {

        .+=0x0400;

      } run = UBL_STACK, type=DSECT, SIZE(STACK_SIZE)

     

    }

     

     

  • It looks like both the LED app and the UBL program are trying to run from the start of the L3 shared RAM region.  They can't both be executing from the same memory, because then the UBL will overwrite itself as it tries to load the LED blinking application.

    Please try linking them to load and run from different memory regions.

    Regards, Daniel