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 SYSBIOS applications from u-boot on OMAP-L138

Other Parts Discussed in Thread: OMAP-L138, SYSBIOS, OMAPL138

I have OMAP-L138 LCDK development board. I have u-boot wich starts after power-on. I have ARM and DSP projects like .out files. My ARm and DSP projects both work with SYSBIOS (I don't need Linux). And I wanna:

1) make .bin files from .out files

2) write .bin files into the microSD flash card

3) configure u-boot to load my .bin files from the flash card into the memory

4) run DSP project and ARM project

When I tried to do that steps I've got a failure: my ARM application doesn't work. I'm not sure that I made the right .bin file from the .out file - I used AISgen utility from TI to do that, but I don't know how it's compatible with u-boot.

This is a sample from my u-boot console:

U-Boot > fatload mmc 0 0xc1080000 test.bin
reading test.bin

3808 bytes read
U-Boot > go 0xc1080000
## Starting application at 0xC1080000 ...

My application must blink leds if it starts, but that doesn't happen.

Is it possible at all?

  • Hi Tankist,
    Please try to disable the GPIO support in u-boot completely.
    Also try to use *.out using u-boot's "bootelf" command.

    Keep your DSP code into DSP L2 RAM.
  • Sorry, my u-boot doesn't support "bootelf" command. What should I do?
  • You have to enable it in your board *.h file then rebuild your u-boot source.
    inlcude/configs/da850_evm.h

    Define the following line in u-boot .h file.
    #define CONFIG_CMD_ELF
  • Some corrections: the right path to config file is 'mcsdk_1_01_00_02\board-support\u-boot-2012.04.01-psp03.22.00.06.sdk\include\configs\omapl138_lcdk.h'

    Ok, I built my u-boot with the 'bootelf' support. I made '.ais' file and flash it into NAND flash memory. This is a log from my u-boot when I try to load my ARM progam:



    NAND: 512 MiB MMC: davinci: 0 Bad block table found at page 262080, version 0x01 Bad block table found at page 262016, version 0x01 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: DaVinci-EMAC Hit any key to stop autoboot: 0 U-Boot > mmc rescan 0 U-Boot > fatload mmc 0 0xc3000000 arm.out reading arm.out 2012348 bytes read U-Boot > bootelf 0xc3000000 ## Starting application at 0x00000000 ...


    My application has the following .map file:

    ******************************************************************************
                      TI ARM Linker PC v5.1.6                      
    ******************************************************************************
    >> Linked Mon Feb 15 14:24:12 2016
    
    OUTPUT FILE NAME:   <arm.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: c3089b90
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      L3_CBA_RAM            80000000   00020000  00000000  00020000  RW X
      DDR                   c3000000   01000000  0009169c  00f6e964  RWIX
      IRAM                  ffff0000   00002000  00000368  00001c98  RW X
    
    
    SEGMENT ALLOCATION MAP
    
    run origin  load origin   length   init length attrs members
    ----------  ----------- ---------- ----------- ----- -------
    c3000000    c3000000    00081e28   00000000    rw-
      c3000000    c3000000    00081e28   00000000    rw- .bss
    c3081e28    c3081e28    0000966c   0000966c    r-x
      c3081e28    c3081e28    0000966c   0000966c    r-x .text
    c308b494    c308b494    00000898   00000000    rw-
      c308b494    c308b494    00000898   00000000    rw- .data
    c308bd2c    c308bd2c    000002d4   000002d4    r--
      c308bd2c    c308bd2c    000002d4   000002d4    r-- .const.1
    c308c000    c308c000    00005000   00000000    rw-
      c308c000    c308c000    00004000   00000000    rw- ti.sysbios.family.arm.arm9.mmuTableSection
      c3090000    c3090000    00001000   00000000    rw- .stack
    c3091000    c3091000    000006a0   000006a0    r--
      c3091000    c3091000    000001ec   000001ec    r-- .const.2
      c30911f0    c30911f0    000004b0   000004b0    r-- .cinit
    ffff0000    ffff0000    00000368   00000368    r-x
      ffff0000    ffff0000    00000040   00000040    r-- .vecs
      ffff0040    ffff0040    00000328   00000328    r-x .vectorTable

    It seems the application doesn't run. What could be the problem?