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.

Can't write data to OMAP-L138 Development Kit

Other Parts Discussed in Thread: OMAP-L138, CODECOMPOSER

I've tried several times to load a simple program to the OMAP-L138 Development Kit with CodeComposer Studio, using an XDS100v2 USB JTAG Emulator. I have included here the error message that CCS gives.


C674X_0: Trouble Writing Memory Block at 0x20 on Page 0 of Length 0x1c00: (Error -1190 @ 0x20) 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 5.0.520.0)

I'm using the linker.cmd file provided by LogicPD for my board. It's also attached for reference.

I really don't know what the correct numbers are in the linker file. Can someone confirm them, or suggest other possibilities as to what might be going wrong?

/*****************************************************************************
* linker command file for OMAP-L138 test code.
*
* © Copyright 2009, Logic Product Development Company. All Rights Reserved.
******************************************************************************/

-stack           0x00000800
-heap            0x00000800

MEMORY
{
   dsp_l2_ram:      ORIGIN = 0x11800000  LENGTH = 0x00040000
   shared_ram:      ORIGIN = 0x80000000  LENGTH = 0x00020000
   external_ram:    ORIGIN = 0xC0000000  LENGTH = 0x08000000
   arm_local_ram:   ORIGIN = 0xFFFF0000  LENGTH = 0x00002000
}

SECTIONS
{
   .text       > shared_ram
   .const      > shared_ram
   .bss        > shared_ram
   .far        > shared_ram
   .switch     > shared_ram
   .stack      > shared_ram
   .data       > shared_ram
   .cinit      > shared_ram
   .sysmem     > shared_ram
   .cio        > shared_ram
}

  • Hello,

    Your linker command file looks fine. It is putting everything into shared ram. But the error you got was a write error at:

    Rudolph Raab said:
    C674X_0: Trouble Writing Memory Block at 0x20 on Page 0 of Length 0x1c00: (Error -1190 @ 0x20)

    Which is in non-accessible memory. Could you provide the generated memory map file? It should be in the same location at the *.out file, with a *.map extension.

    Thanks

    ki

  • I've attached the memory map file. Thank you for your attention.

    -Rudy Raab

    ******************************************************************************
                   TMS320C6x Linker PC v7.3.1                      
    ******************************************************************************
    >> Linked Mon Oct 01 08:39:44 2012
    
    OUTPUT FILE NAME:   <MyLEDTest.out>
    ENTRY POINT SYMBOL: "_c_int00"  address: 00001b20
    
    
    MEMORY CONFIGURATION
    
             name            origin    length      used     unused   attr    fill
    ----------------------  --------  ---------  --------  --------  ----  --------
      RAM                   00000001   fffffffe  0000206c  ffffdf92  RWIX
    
    
    SECTION ALLOCATION MAP
    
     output                                  attributes/
    section   page    origin      length       input sections
    --------  ----  ----------  ----------   ----------------
    .pinit     0    00000004    00000000     UNINITIALIZED
    
    .data      0    00000008    00000000     UNINITIALIZED
    
    .far       0    00000008    00000014     UNINITIALIZED
                      00000008    0000000c     rts6740.lib : exit.obj (.far)
                      00000014    00000008                 : _lock.obj (.far)
    
    .text      0    00000020    00001c00     
                      00000020    00000ae0     evmomapl138_bsl.lib : evmomapl138.obj (.text)
                      00000b00    000004e0                         : evmomapl138_i2c_gpio.obj (.text)
                      00000fe0    00000380                         : evmomapl138_i2c.obj (.text)
                      00001360    000001e0                         : evmomapl138_led.obj (.text)
                      00001540    000001e0                         : evmomapl138_timer.obj (.text)
                      00001720    00000100     rts6740.lib : autoinit.obj (.text:__auto_init)
                      00001820    000000e0                 : exit.obj (.text:_exit)
                      00001900    000000e0     main.obj (.text)
                      000019e0    000000a0     rts6740.lib : cpy_tbl.obj (.text:_copy_in)
                      00001a80    000000a0                 : memcpy64.obj (.text:_memcpy)
                      00001b20    00000080                 : boot.obj (.text:_c_int00)
                      00001ba0    00000040                 : args_main.obj (.text:__args_main)
                      00001be0    00000020                 : _lock.obj (.text:__nop)
                      00001c00    00000020                 : exit.obj (.text:_abort)
    
    .stack     0    00001c20    00000400     UNINITIALIZED
                      00001c20    00000008     rts6740.lib : boot.obj (.stack)
                      00001c28    000003f8     --HOLE--
    
    .cinit     0    00002020    00000054     
                      00002020    0000002c     rts6740.lib : exit.obj (.cinit)
                      0000204c    00000004     --HOLE-- [fill = 0]
                      00002050    0000001c                 : _lock.obj (.cinit)
                      0000206c    00000004     --HOLE-- [fill = 0]
                      00002070    00000004     (.pad.cinit) [fill = 0]
    
    .bss       0    00002078    00000004     UNINITIALIZED
                      00002078    00000004     evmomapl138_bsl.lib : evmomapl138_i2c.obj (.bss)
    
    
    GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
    
    address    name
    --------   ----
    00002078   $bss
    00002078   .bss
    00000008   .data
    00000020   .text
    00001c00   C$$EXIT
    00000208   _EVMOMAPL138_enableDsp
    00000020   _EVMOMAPL138_init
    0000004c   _EVMOMAPL138_initRAM
    000002d0   _EVMOMAPL138_lpscTransition
    00000234   _EVMOMAPL138_pinmuxConfig
    00000bd4   _I2CGPIO_getInput
    00000cf0   _I2CGPIO_getInputAll
    00000b00   _I2CGPIO_init
    00000e00   _I2CGPIO_setOutput
    00000f48   _I2CGPIO_setOutputAll
    00000fe0   _I2C_init
    000010cc   _I2C_read
    00001228   _I2C_write
    00001360   _LED_init
    000013ac   _LED_isOn
    000014ac   _LED_toggle
    00001464   _LED_turnOff
    00001414   _LED_turnOn
    00001938   _TEST_ledPB
    00001624   _USTIMER_delay
    000016e4   _USTIMER_get
    00001540   _USTIMER_init
    000016b4   _USTIMER_reset
    000016f8   _USTIMER_set
    00000ae4   _UTIL_isUIBoardAttached
    00000ac8   _UTIL_printMem
    00002020   __STACK_END
    00000400   __STACK_SIZE
    00000001   __TI_args_main
    00000010   ___TI_enable_exit_profile_output
    ffffffff   ___TI_pprof_out_hndl
    ffffffff   ___TI_prof_data_size
    ffffffff   ___TI_prof_data_start
    ffffffff   ___binit__
    00002078   ___bss__
    ffffffff   ___c_args__
    00002020   ___cinit__
    00000008   ___data__
    00000008   ___edata__
    0000207c   ___end__
    00001c20   ___etext__
    ffffffff   ___pinit__
    00000020   ___text__
    00001ba0   __args_main
    00001720   __auto_init
    00000008   __cleanup_ptr
    0000000c   __dtors_ptr
    00000014   __lock
    00001be0   __nop
    00001c20   __stack
    00000018   __unlock
    00001c00   _abort
    00001b20   _c_int00
    000006a8   _config_pll0
    000008e4   _config_pll1
    000019e0   _copy_in
    00001820   _exit
    00001900   _main
    00001a80   _memcpy
    ffffffff   binit
    00002020   cinit
    00000008   edata
    0000207c   end
    00001c20   etext
    ffffffff   pinit
    
    
    GLOBAL SYMBOLS: SORTED BY Symbol Address 
    
    address    name
    --------   ----
    00000001   __TI_args_main
    00000008   .data
    00000008   ___data__
    00000008   ___edata__
    00000008   __cleanup_ptr
    00000008   edata
    0000000c   __dtors_ptr
    00000010   ___TI_enable_exit_profile_output
    00000014   __lock
    00000018   __unlock
    00000020   .text
    00000020   _EVMOMAPL138_init
    00000020   ___text__
    0000004c   _EVMOMAPL138_initRAM
    00000208   _EVMOMAPL138_enableDsp
    00000234   _EVMOMAPL138_pinmuxConfig
    000002d0   _EVMOMAPL138_lpscTransition
    00000400   __STACK_SIZE
    000006a8   _config_pll0
    000008e4   _config_pll1
    00000ac8   _UTIL_printMem
    00000ae4   _UTIL_isUIBoardAttached
    00000b00   _I2CGPIO_init
    00000bd4   _I2CGPIO_getInput
    00000cf0   _I2CGPIO_getInputAll
    00000e00   _I2CGPIO_setOutput
    00000f48   _I2CGPIO_setOutputAll
    00000fe0   _I2C_init
    000010cc   _I2C_read
    00001228   _I2C_write
    00001360   _LED_init
    000013ac   _LED_isOn
    00001414   _LED_turnOn
    00001464   _LED_turnOff
    000014ac   _LED_toggle
    00001540   _USTIMER_init
    00001624   _USTIMER_delay
    000016b4   _USTIMER_reset
    000016e4   _USTIMER_get
    000016f8   _USTIMER_set
    00001720   __auto_init
    00001820   _exit
    00001900   _main
    00001938   _TEST_ledPB
    000019e0   _copy_in
    00001a80   _memcpy
    00001b20   _c_int00
    00001ba0   __args_main
    00001be0   __nop
    00001c00   C$$EXIT
    00001c00   _abort
    00001c20   ___etext__
    00001c20   __stack
    00001c20   etext
    00002020   __STACK_END
    00002020   ___cinit__
    00002020   cinit
    00002078   $bss
    00002078   .bss
    00002078   ___bss__
    0000207c   ___end__
    0000207c   end
    ffffffff   ___TI_pprof_out_hndl
    ffffffff   ___TI_prof_data_size
    ffffffff   ___TI_prof_data_start
    ffffffff   ___binit__
    ffffffff   ___c_args__
    ffffffff   ___pinit__
    ffffffff   binit
    ffffffff   pinit
    
    [70 symbols]
    

  • The contents in your linker command file does not line up with the content in your map file.

    command file:

    -----

    MEMORY
    {
       dsp_l2_ram:      ORIGIN = 0x11800000  LENGTH = 0x00040000
       shared_ram:      ORIGIN = 0x80000000  LENGTH = 0x00020000
       external_ram:    ORIGIN = 0xC0000000  LENGTH = 0x08000000
       arm_local_ram:   ORIGIN = 0xFFFF0000  LENGTH = 0x00002000
    }

    SECTIONS
    {
       .text       > shared_ram
       .const      > shared_ram
       .bss        > shared_ram
       .far        > shared_ram
       .switch     > shared_ram
       .stack      > shared_ram
       .data       > shared_ram
       .cinit      > shared_ram
       .sysmem     > shared_ram
       .cio        > shared_ram
    }

    ----

    As you can see above, your code (.text) is supposed to be placed in shared_ram starting at 0x80000000. But your map file says:

    -----

    .text      0    00000020    00001c00     
          

    -----------

    Your program is built for your code to be placed at 0x20.

    Somehow the linker command file was not used to build your project. Can you double check your project settings?

    Thanks

    ki

  • Thank you for your prompt reply. I will re-check the project properties when I get back into work tomorrow morning, around 8:00 AM (US Eastern Time). I'm glad the linker command file is correct; I'll find out why CCS isn't using it.

    -Rudy Raab

  • That solved it. When I initially created the project, I had selected the linker command file. However the project somehow forgot about that setting.

    Thank you for your assistance.