Trouble using malloc on ARM (Yagarto)

OP #1173465
Rate this post
• ▲ useful
▼ not useful
Hi,

I am using Yagarto tools for ARM development (AT91SAM7S64). Everything
seems to be OK, except that when I use malloc the returned pointer
points to 0x00000008 regardless of the amount of bytes that I want to
allocate. I have
read the newsgroups, but nothign seems to help.


I need your advice with my .ld file, in order to know what could be
messed / missing and how to fix it. Other suggestions are welcome too.


/
*----------------------------------------------------------------------- 
---­-
*/
/*-         ATMEL Microcontroller Software Support  -  ROUSSET  -
*/
/
*----------------------------------------------------------------------- 
---­-
*/
/* The software is delivered "AS IS" without warranty or condition of
any
*/
/* kind, either express, implied or statutory. This includes
without      */
/* limitation any warranty or condition with respect to
merchantability or
*/
/* fitness for any particular purpose, or against the infringements
of
*/
/* intellectual property rights of others.         */
/
*----------------------------------------------------------------------- 
---­-
*/
/*- File source          : GCC_FLASH.ld
*/
/*- Object               : Linker Script File for Flash Workspace
*/
/*- Compilation flag     : None
*/
/*-
*/
/*- 1.0 20/Oct/04 JPP    : Creation
*/
/
*----------------------------------------------------------------------- 
---­-
*/


/* slightly modified for the WinARM example - M.Thomas (not Atmel) */


/*
//*** <<< Use Configuration Wizard in Context Menu >>> ***
*/


/*
// <h> Memory Configuration
//   <h> Code (Read Only)
//     <o>  Start <0x0-0xFFFFFFFF>
//     <o1> Size  <0x0-0xFFFFFFFF>
//   </h>
//   <h> Data (Read/Write)
//     <o2> Start <0x0-0xFFFFFFFF>
//     <o3> Size  <0x0-0xFFFFFFFF>
//   </h>
//   <h> Top of Stack (Read/Write)
//     <o4> STACK <0x0-0xFFFFFFFF>
//   </h>
// </h>
*/


/* Memory Definitions */


/* mt change code origin from 0x00000000 */
MEMORY
{
  CODE (rx) : ORIGIN = 0x00100000, LENGTH = 0x00010000
  DATA (rw) : ORIGIN = 0x00200000, LENGTH = 0x00002800
  STACK (rw) : ORIGIN = 0x00202800,LENGTH = 0x00001800



}


/* Section Definitions */

SECTIONS
{
  /* first section is .text which is used for code */
  . = 0x0000000;
  .text : { *cstartup.o (.text) }>CODE =0
  .text :
  {
    *(.text)                   /* remaining code */


    *(.glue_7t) *(.glue_7)


  } >CODE =0


  . = ALIGN(4);


  /* .rodata section which is used for read-only data (constants) */


  .rodata :
  {
    *(.rodata)
  } >CODE


  . = ALIGN(4);


  _etext = . ;
  PROVIDE (etext = .);


  /* .data section which is used for initialized data */


  .data : AT (_etext)
  {
    _data = . ;
    *(.data)
    SORT(CONSTRUCTORS)
  } >DATA
  . = ALIGN(4);


  _edata = . ;
   PROVIDE (edata = .);


  /* .bss section which is used for uninitialized data */


  .bss :
  {
    __bss_start = . ;
    _bss_start_ = . ;
    *(.bss)
    *(COMMON)
  }
  . = ALIGN(4);
  _bss_end_ = . ;
  _bss_end_ = . ;
  _end = .;
    . = ALIGN(4);
   .int_data :
   {
   *(.internal_ram_top)
   }> STACK


  PROVIDE (end = .);


  /* 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) }
  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 : { *(.debug_weaknames) }
  .debug_funcnames 0 : { *(.debug_funcnames) }
  .debug_typenames 0 : { *(.debug_typenames) }
  .debug_varnames  0 : { *(.debug_varnames) }



}


Regards.

Reply

Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.