I think I have found the problem but I don't
understand it very well. It seem that msp430-jtag
restart the mcu and it have time to erase the section
@ 0x6000 (did in the very first line of code) before I
read it. Is there someone who know how msp430-jtag
work? Is it a possible explanation?

--- Frederic Beaulieu <fr...@yahoo.com> wrote:

> Hello all,
> I have a little problem with the msp430-jtag
> application.   I work on a F169 mcu and I want to
> write data in flash @ address 0x6000 (see my
> ldscript
> in attachment). I see the data written with gdb but
> not with:
> > msp430-jtag -u0x6000 -s0x100
> 
> If I write it @0x8800, there is no problem with the
> two methods. I cannot understand why data are not
> seen
> by msp430-jtag @ 0x6000.
> 
> Is there someone who understand this behaviour?
> Thanks a lot in advance!
> 
> ----------------------------------------------
>
OUTPUT_FORMAT("elf32-msp430","elf32-msp430","elf32-msp430")
> OUTPUT_ARCH(msp:16)
> MEMORY
> { 
>   logrssi                             (rw)    : ORIGIN = 0x8c00,  LENGTH =
> 0x73e0
>   logerror                    (rw)    : ORIGIN = 0x8800,  LENGTH =
> 0x0400
>   logevent                    (rw)    : ORIGIN = 0x6000,  LENGTH =
> 0x2800
>   text                                        (rx)    : ORIGIN = 0x1100,  
> LENGTH = 0x4f00
>   data                                        (rwx)   : ORIGIN = 0x0200,      
> LENGTH = 0x07ff
>   vectors                             (rw)    : ORIGIN = 0xffe0,  LENGTH = 
> 0x20
>   bootloader          (rx)    : ORIGIN = 0x0c00,      LENGTH = 1K
>   infomem                             (rx)    : ORIGIN = 0x1000,      LENGTH 
> = 256
>   infomemnobits       (rx)    : ORIGIN = 0x1000,  LENGTH =
> 256
> }
> SECTIONS
> {
>   /* Read-only sections, merged into text segment. 
> */
>   .hash          : { *(.hash)             }
>   .dynsym        : { *(.dynsym)           }
>   .dynstr        : { *(.dynstr)           }
>   .gnu.version   : { *(.gnu.version)      }
>   .gnu.version_d   : { *(.gnu.version_d)  }
>   .gnu.version_r   : { *(.gnu.version_r)  }
>   .rel.init      : { *(.rel.init) }
>   .rela.init     : { *(.rela.init) }
>   .rel.text      :
>     {
>       *(.rel.text)
>       *(.rel.text.*)
>       *(.rel.gnu.linkonce.t*)
>     }
>   .rela.text     :
>     {
>       *(.rela.text)
>       *(.rela.text.*)
>       *(.rela.gnu.linkonce.t*)
>     }
>   .rel.fini      : { *(.rel.fini) }
>   .rela.fini     : { *(.rela.fini) }
>   .rel.rodata    :
>     {
>       *(.rel.rodata)
>       *(.rel.rodata.*)
>       *(.rel.gnu.linkonce.r*)
>     }
>   .rela.rodata   :
>     {
>       *(.rela.rodata)
>       *(.rela.rodata.*)
>       *(.rela.gnu.linkonce.r*)
>     }
>   .rel.data      :
>     {
>       *(.rel.data)
>       *(.rel.data.*)
>       *(.rel.gnu.linkonce.d*)
>     }
>   .rela.data     :
>     {
>       *(.rela.data)
>       *(.rela.data.*)
>       *(.rela.gnu.linkonce.d*)
>     }
>   .rel.ctors     : { *(.rel.ctors)        }
>   .rela.ctors    : { *(.rela.ctors)       }
>   .rel.dtors     : { *(.rel.dtors)        }
>   .rela.dtors    : { *(.rela.dtors)       }
>   .rel.got       : { *(.rel.got)          }
>   .rela.got      : { *(.rela.got)         }
>   .rel.bss       : { *(.rel.bss)          }
>   .rela.bss      : { *(.rela.bss)         }
>   .rel.plt       : { *(.rel.plt)          }
>   .rela.plt      : { *(.rela.plt)         }
>   /* Internal text space.  */
>   .logrssi : { *(.logrssi) }
>   .logerror : { *(.logerror) }
>   .logevent : { *(.logevent) }
>   .text :
>   {
>     . = ALIGN(2);
>     *(.init)
>     *(.init0)  /* Start here after reset.  */
>     *(.init1)
>     *(.init2)  /* Copy data loop  */
>     *(.init3)
>     *(.init4)  /* Clear bss  */
>     *(.init5)
>     *(.init6)  /* C++ constructors.  */
>     *(.init7)
>     *(.init8)
>     *(.init9)  /* Call main().  */
>      __ctors_start = . ;
>      *(.ctors)
>      __ctors_end = . ;
>      __dtors_start = . ;
>      *(.dtors)
>      __dtors_end = . ;
>     . = ALIGN(2);
>     *(.text)
>     . = ALIGN(2);
>     *(.text.*)
>     . = ALIGN(2);
>     *(.fini9)  /*   */
>     *(.fini8)
>     *(.fini7)
>     *(.fini6)  /* C++ destructors.  */
>     *(.fini5)
>     *(.fini4)
>     *(.fini3)
>     *(.fini2)
>     *(.fini1)
>     *(.fini0)  /* Infinite loop after program
> termination.  */
>     *(.fini)
>     _etext = .;
>   }  > text
>   .data   : AT (ADDR (.text) + SIZEOF (.text))
>   {
>      PROVIDE (__data_start = .) ;
>     . = ALIGN(2);
>     *(.data)
>     . = ALIGN(2);
>     *(.gnu.linkonce.d*)
>     . = ALIGN(2);
>      _edata = . ;
>   }  > data
>   /* Bootloader.  */
>   .bootloader   :
>   {
>      PROVIDE (__boot_start = .) ;
>     *(.bootloader)
>     . = ALIGN(2);
>     *(.bootloader.*)
>   }  > bootloader
>   /* Information memory.  */
>   .infomem   :
>   {
>     *(.infomem)
>     . = ALIGN(2);
>     *(.infomem.*)
>   }  > infomem
>   /* Information memory (not loaded into MPU).  */
>   .infomemnobits   :
>   {
>     *(.infomemnobits)
>     . = ALIGN(2);
>     *(.infomemnobits.*)
>   }  > infomemnobits
>   .bss  SIZEOF(.data) + ADDR(.data) :
>   {
>      PROVIDE (__bss_start = .) ;
>     *(.bss)
>     *(COMMON)
>      PROVIDE (__bss_end = .) ;
>      _end = . ;
>   }  > data
>   .noinit  SIZEOF(.bss) + ADDR(.bss) :
>   {
>      PROVIDE (__noinit_start = .) ;
>     *(.noinit)
>     *(COMMON)
>      PROVIDE (__noinit_end = .) ;
>      _end = . ;
>   }  > data
>   .vectors  :
>   {
>      PROVIDE (__vectors_start = .) ;
>     *(.vectors*)
>      _vectors_end = . ;
>   }  > vectors
>   /* Stabs debugging sections.  */
>   .stab 0 : { *(.stab) }
>   .stabstr 0 : { *(.stabstr) }
>   .stab.excl 0 : { *(.stab.excl) }
>   .stab.exclstr 0 : { *(.stab.exclstr) }
>   .stab.index 0 : { *(.stab.index) }
>   .stab.indexstr 0 : { *(.stab.indexstr) }
>   .comment 0 : { *(.comment) }
>   /* DWARF debug sections.
>      Symbols in the DWARF debugging sections are
> relative to the beginning
>      of the section so we begin them at 0.  */
>   /* DWARF 1 */
>   .debug          0 : { *(.debug) }
>   .line           0 : { *(.line) }
>   /* GNU DWARF 1 extensions */
>   .debug_srcinfo  0 : { *(.debug_srcinfo) }
>   .debug_sfnames  0 : { *(.debug_sfnames) }
>   /* DWARF 1.1 and DWARF 2 */
>   .debug_aranges  0 : { *(.debug_aranges) }
>   .debug_pubnames 0 : { *(.debug_pubnames) }
>   /* DWARF 2 */
>   .debug_info     0 : { *(.debug_info)
> *(.gnu.linkonce.wi.*) }
>   .debug_abbrev   0 : { *(.debug_abbrev) }
>   .debug_line     0 : { *(.debug_line) }
>   .debug_frame    0 : { *(.debug_frame) }
>   .debug_str      0 : { *(.debug_str) }
>   .debug_loc      0 : { *(.debug_loc) }
>   .debug_macinfo  0 : { *(.debug_macinfo) }
>   PROVIDE (__stack = 0xa00) ;
>   PROVIDE (__data_start_rom = _etext) ;
>   PROVIDE (__data_end_rom   = _etext + SIZEOF
> (.data))
> ;
>   PROVIDE (__noinit_start_rom = _etext + SIZEOF
> (.data)) ;
>   PROVIDE (__noinit_end_rom = _etext + SIZEOF
> (.data)
> + SIZEOF (.noinit)) ;
>   PROVIDE (__subdevice_has_heap = 0) ;
> }
> 
> 
> 
>               
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail Address AutoComplete - You start. We
> finish.
> http://promotions.yahoo.com/new_mail 
> 
> 
>
-------------------------------------------------------
> This SF.net email is sponsored by: IT Product Guide
> on ITManagersJournal
> Use IT products in your business? Tell us what you
> think of them. Give us
> Your Opinions, Get Free ThinkGeek Gift Certificates!
> Click to find out more
>
http://productguide.itmanagersjournal.com/guidepromo.tmpl
> _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
>
https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> 



                
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com

Reply via email to