First AVR compile

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3681 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-06-07 23:37:59 +00:00
parent 252dabc2d8
commit 30f688d1a9
2 changed files with 60 additions and 1 deletions

View File

@ -46,7 +46,20 @@
* Pre-processor definitions
****************************************************************************/
#define STACKBASE (_ebss+CONFIG_IDLETHREAD_STACKSIZE-4)
/* Stack is allocated just after .bss and before the heap */
#define STACKBASE (_ebss+CONFIG_IDLETHREAD_STACKSIZE-1)
/* The RAMPZ register is only available for CPUs with more than 64Kb of FLASH.
* Only the AT90USB646, 647, 1286, and 1287 are supported by this file.
*
* - Support for the EPLMX instructions is assumed if RAMPZ is present
* - If RAMPZ is not present, support for LPMX is assumed
*/
#if defined(CONFIG_ARCH_CHIP_AT90USB1286) || defined(CONFIG_ARCH_CHIP_AT90USB1286)
# define HAVE_RAMPZ 1
#endif
/****************************************************************************
* External Symbols
@ -180,6 +193,7 @@ __start:
/* Copy initial global data values from FLASH into RAM */
#ifdef HAVE_RAMPZ
ldi r17, hi8(_edata)
ldi r26, lo8(_sdata)
ldi r27, hi8(_sdata)
@ -197,6 +211,22 @@ __start:
cpi r26, lo8(_edata)
cpc r27, r17
brne .Lcopyloop
#else
ldi r17, hi8(_edata)
ldi r26, lo8(_sdata)
ldi r27, hi8(_sdata)
ldi r30, lo8(_eronly)
ldi r31, hi8(_eronly)
rjmp .Lcopystart
.Lcopyloop:
lpm r0, Z+
st X+, r0
.Lcopystart:
cpi r26, lo8(_edata)
cpc r27, r17
brne .Lcopyloop
#endif
/* Clear uninitialized data */

View File

@ -46,8 +46,20 @@
* Pre-processor definitions
****************************************************************************/
/* Stack is allocated just after .bss and before the heap */
#define STACKBASE (_ebss+CONFIG_IDLETHREAD_STACKSIZE-4)
/* The RAMPZ register is only available for CPUs with more than 64Kb of FLASH.
* At present, only the ATMega128 is supported so RAMPZ should always be
* available.
*
* - Support for the EPLMX instructions is assumed if RAMPZ is present
* - If RAMPZ is not present, support for LPMX is assumed
*/
#define HAVE_RAMPZ 1
/****************************************************************************
* External Symbols
****************************************************************************/
@ -174,6 +186,7 @@ __start:
/* Copy initial global data values from FLASH into RAM */
#ifdef HAVE_RAMPZ
ldi r17, hi8(_edata)
ldi r26, lo8(_sdata)
ldi r27, hi8(_sdata)
@ -191,6 +204,22 @@ __start:
cpi r26, lo8(_edata)
cpc r27, r17
brne .Lcopyloop
#else
ldi r17, hi8(_edata)
ldi r26, lo8(_sdata)
ldi r27, hi8(_sdata)
ldi r30, lo8(_eronly)
ldi r31, hi8(_eronly)
rjmp .Lcopystart
.Lcopyloop:
lpm r0, Z+
st X+, r0
.Lcopystart:
cpi r26, lo8(_edata)
cpc r27, r17
brne .Lcopyloop
#endif
/* Clear uninitialized data */