Fixes for z8 compilation
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@669 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
ad2155cd0c
commit
0067b7a08c
@ -104,15 +104,17 @@ $(SDCCLIBDIR)/myz80.lib: $(SDCCLIBDIR)/$(SDCCLIB)
|
|||||||
# Create a header file that contains addressing information needed by the code
|
# Create a header file that contains addressing information needed by the code
|
||||||
|
|
||||||
up_mem.h:
|
up_mem.h:
|
||||||
@echo "#ifndef __ARCH_MEM_H" >up_mem.h
|
@echo "#ifndef __UP_MEM_H" >up_mem.h
|
||||||
@echo "#define __ARCH_MEM_H" >>up_mem.h
|
@echo "#define __UP_MEM_H" >>up_mem.h
|
||||||
@echo "" >>up_mem.h
|
@echo "" >>up_mem.h
|
||||||
@echo "#define UP_STACK_END $(CONFIG_DRAM_SIZE)" >> up_mem.h
|
@echo "#include <nuttx/config.h>
|
||||||
@echo "#define UP_STACK_BASE (UP_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> up_mem.h
|
|
||||||
@echo "#define UP_HEAP1_END UP_STACK_BASE" >> up_mem.h
|
|
||||||
@echo "#define UP_HEAP1_BASE $(HEAP_BASE)" >> up_mem.h
|
|
||||||
@echo "" >>up_mem.h
|
@echo "" >>up_mem.h
|
||||||
@echo "#endif /* __ARCH_MEM_H */" >>up_mem.h
|
@echo "#define CONFIG_STACK_END $(CONFIG_DRAM_SIZE)" >> up_mem.h
|
||||||
|
@echo "#define CONFIG_STACK_BASE (CONFIG_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> up_mem.h
|
||||||
|
@echo "#define CONFIG_HEAP1_END CONFIG_STACK_BASE" >> up_mem.h
|
||||||
|
@echo "#define CONFIG_HEAP1_BASE $(HEAP_BASE)" >> up_mem.h
|
||||||
|
@echo "" >>up_mem.h
|
||||||
|
@echo "#endif /* __UP_MEM_H */" >>up_mem.h
|
||||||
|
|
||||||
asm_mem.h:
|
asm_mem.h:
|
||||||
@echo " UP_COMPILER_OTHER == 0" > asm_mem.h
|
@echo " UP_COMPILER_OTHER == 0" > asm_mem.h
|
||||||
|
@ -77,12 +77,30 @@ $(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %$(ASMEXT)
|
|||||||
$(COBJS): %$(OBJEXT): %.c
|
$(COBJS): %$(OBJEXT): %.c
|
||||||
$(call COMPILE, `cygpath -w $<`, $@)
|
$(call COMPILE, `cygpath -w $<`, $@)
|
||||||
|
|
||||||
libarch$(LIBEXT): $(OBJS)
|
up_mem.h:
|
||||||
|
@echo "#ifndef __UP_MEM_H" >up_mem.h
|
||||||
|
@echo "#define __UP_MEM_H" >>up_mem.h
|
||||||
|
@echo "" >>up_mem.h
|
||||||
|
@echo "#include <nuttx/config.h>" >>up_mem.h
|
||||||
|
@echo "" >>up_mem.h
|
||||||
|
@echo "#ifndef CONFIG_HEAP1_BASE" >>up_mem.h
|
||||||
|
@echo " extern far unsigned long far_heapbot;" >>up_mem.h
|
||||||
|
@echo "# define CONFIG_HEAP1_BASE ((unsigned long)&far_heapbot)" >>up_mem.h
|
||||||
|
@echo "#endif" >>up_mem.h
|
||||||
|
@echo "" >>up_mem.h
|
||||||
|
@echo "#ifndef CONFIG_HEAP1_END" >>up_mem.h
|
||||||
|
@echo " extern far unsigned long far_heaptop;" >>up_mem.h
|
||||||
|
@echo "# define CONFIG_HEAP1_END ((unsigned long)&far_heaptop)" >>up_mem.h
|
||||||
|
@echo "#endif" >>up_mem.h
|
||||||
|
@echo "" >>up_mem.h
|
||||||
|
@echo "#endif /* __UP_MEM_H */" >>up_mem.h
|
||||||
|
|
||||||
|
libarch$(LIBEXT): up_mem.h $(OBJS)
|
||||||
@( for obj in $(OBJS) ; do \
|
@( for obj in $(OBJS) ; do \
|
||||||
$(call ARCHIVE, $@, $${obj}); \
|
$(call ARCHIVE, $@, $${obj}); \
|
||||||
done ; )
|
done ; )
|
||||||
|
|
||||||
board/libboard$(LIBEXT):
|
board/libboard$(LIBEXT): up_mem.h
|
||||||
@$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)
|
@$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)
|
||||||
|
|
||||||
nuttx.linkcmd: $(LINKCMDTEMPLATE)
|
nuttx.linkcmd: $(LINKCMDTEMPLATE)
|
||||||
@ -98,11 +116,11 @@ nuttx.linkcmd: $(LINKCMDTEMPLATE)
|
|||||||
@echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/csioLDD$(LIBEXT)}\", \\" >>nuttx.linkcmd
|
@echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/csioLDD$(LIBEXT)}\", \\" >>nuttx.linkcmd
|
||||||
@echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/zsldevinitdummy.lib$(LIBEXT)}\" \\" >>nuttx.linkcmd
|
@echo " \"${shell cygpath -w $(ZDSSTDLIBDIR)/zsldevinitdummy.lib$(LIBEXT)}\" \\" >>nuttx.linkcmd
|
||||||
|
|
||||||
nuttx$(EXEEXT): $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd
|
nuttx$(EXEEXT): up_mem.h $(HEAD_AOBJ) board/libboard$(LIBEXT) nuttx.linkcmd
|
||||||
@echo "LD: nuttx.hex"
|
@echo "LD: nuttx.hex"
|
||||||
@$(LD) $(LDFLAGS)
|
@$(LD) $(LDFLAGS)
|
||||||
|
|
||||||
.depend: Makefile chip/Make.defs $(DEPSRCS)
|
.depend: Makefile up_mem.h chip/Make.defs $(DEPSRCS)
|
||||||
@if [ -e board/Makefile ]; then \
|
@if [ -e board/Makefile ]; then \
|
||||||
$(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \
|
$(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \
|
||||||
fi
|
fi
|
||||||
@ -116,7 +134,7 @@ clean:
|
|||||||
$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
|
$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \
|
||||||
fi
|
fi
|
||||||
@rm -f libarch$(LIBEXT) *~ .*.swp
|
@rm -f libarch$(LIBEXT) *~ .*.swp
|
||||||
@rm -f nuttx.linkcmd *.asm *.tmp *.map
|
@rm -f nuttx.linkcmd up_mem.h *.asm *.tmp *.map
|
||||||
$(call CLEAN)
|
$(call CLEAN)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
|
@ -76,8 +76,8 @@
|
|||||||
|
|
||||||
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
|
void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
|
||||||
{
|
{
|
||||||
*heap_start = (FAR void*)UP_HEAP1_BASE;
|
*heap_start = (FAR void*)CONFIG_HEAP1_BASE;
|
||||||
*heap_size = UP_HEAP1_END - UP_HEAP1_BASE;
|
*heap_size = CONFIG_HEAP1_END - CONFIG_HEAP1_BASE;
|
||||||
up_ledon(LED_HEAPALLOCATE);
|
up_ledon(LED_HEAPALLOCATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,6 +93,6 @@ void up_allocate_heap(FAR void **heap_start, size_t *heap_size)
|
|||||||
#if CONFIG_MM_REGIONS > 1
|
#if CONFIG_MM_REGIONS > 1
|
||||||
void up_addregion(void)
|
void up_addregion(void)
|
||||||
{
|
{
|
||||||
mm_addregion((FAR void*)UP_HEAP2_BASE, UP_HEAP2_END - UP_HEAP2_BASE);
|
mm_addregion((FAR void*)CONFIG_HEAP2_BASE, CONFIG_HEAP2_END - CONFIG_HEAP2_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -46,7 +46,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <arch/board/board.h>
|
#include <arch/board/board.h>
|
||||||
#include "chip.h"
|
#include "chip/chip.h"
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* Definitions
|
* Definitions
|
||||||
|
@ -46,8 +46,8 @@
|
|||||||
|
|
||||||
#include <nuttx/irq.h>
|
#include <nuttx/irq.h>
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <chip/chip.h>
|
|
||||||
|
|
||||||
|
#include "chip/chip.h"
|
||||||
#include "up_arch.h"
|
#include "up_arch.h"
|
||||||
#include "os_internal.h"
|
#include "os_internal.h"
|
||||||
#include "up_internal.h"
|
#include "up_internal.h"
|
||||||
|
@ -44,8 +44,8 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <chip/chip.h>
|
|
||||||
|
|
||||||
|
#include "chip/chip.h"
|
||||||
#include "os_internal.h"
|
#include "os_internal.h"
|
||||||
#include "up_internal.h"
|
#include "up_internal.h"
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <arch/irq.h>
|
#include <arch/irq.h>
|
||||||
#include <chip/chip.h>
|
#include "chip/chip.h"
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Definitions
|
* Definitions
|
||||||
@ -111,8 +111,8 @@ extern int up_restoreusercontext(chipreg_t *regs);
|
|||||||
extern FAR chipreg_t *up_decodeirq(uint8 rstno, FAR chipreg_t *regs);
|
extern FAR chipreg_t *up_decodeirq(uint8 rstno, FAR chipreg_t *regs);
|
||||||
extern void up_irqinitialize(void);
|
extern void up_irqinitialize(void);
|
||||||
extern int up_timerisr(int irq, FAR chipreg_t *regs);
|
extern int up_timerisr(int irq, FAR chipreg_t *regs);
|
||||||
extern void up_lowputc(char ch) __naked;
|
extern void up_lowputc(char ch) naked_function;
|
||||||
extern char up_lowgetc(void) __naked;
|
extern char up_lowgetc(void) naked_function;
|
||||||
|
|
||||||
/* Defined in up_doirq.c */
|
/* Defined in up_doirq.c */
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <chip/chip.h>
|
|
||||||
|
|
||||||
|
#include "chip/chip.h"
|
||||||
#include "os_internal.h"
|
#include "os_internal.h"
|
||||||
#include "up_internal.h"
|
#include "up_internal.h"
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <chip/chip.h>
|
|
||||||
|
|
||||||
|
#include "chip/chip.h"
|
||||||
#include "os_internal.h"
|
#include "os_internal.h"
|
||||||
#include "up_internal.h"
|
#include "up_internal.h"
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <chip/chip.h>
|
|
||||||
|
|
||||||
|
#include "chip/chip.h"
|
||||||
#include "os_internal.h"
|
#include "os_internal.h"
|
||||||
#include "clock_internal.h"
|
#include "clock_internal.h"
|
||||||
#include "up_internal.h"
|
#include "up_internal.h"
|
||||||
|
@ -36,9 +36,9 @@
|
|||||||
HEAD_ASRC = z8_head.asm
|
HEAD_ASRC = z8_head.asm
|
||||||
|
|
||||||
CMN_ASRCS =
|
CMN_ASRCS =
|
||||||
CMN_CSRCS = up_initialize.c up_allocateheap.c up_initialstate.c \
|
CMN_CSRCS = up_initialize.c up_allocateheap.c up_createstack.c \
|
||||||
up_createstack.c up_releasestack.c up_interruptcontext.c \
|
up_releasestack.c up_interruptcontext.c up_blocktask.c \
|
||||||
up_blocktask.c up_unblocktask.c up_exit.c up_releasepending.c \
|
up_unblocktask.c up_exit.c up_releasepending.c \
|
||||||
up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
|
up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
|
||||||
up_assert.c up_mdelay.c up_udelay.c \
|
up_assert.c up_mdelay.c up_udelay.c \
|
||||||
up_schedulesigaction.c up_sigdeliver.c \
|
up_schedulesigaction.c up_sigdeliver.c \
|
||||||
|
@ -36,14 +36,13 @@
|
|||||||
HEAD_ASRC = z80_head.asm
|
HEAD_ASRC = z80_head.asm
|
||||||
|
|
||||||
CMN_ASRCS =
|
CMN_ASRCS =
|
||||||
CMN_CSRCS = up_initialize.c up_allocateheap.c up_initialstate.c \
|
CMN_CSRCS = up_initialize.c up_allocateheap.c up_createstack.c \
|
||||||
up_createstack.c up_releasestack.c up_interruptcontext.c \
|
up_releasestack.c up_interruptcontext.c up_blocktask.c \
|
||||||
up_blocktask.c up_unblocktask.c up_exit.c up_releasepending.c \
|
up_unblocktask.c up_exit.c up_releasepending.c \
|
||||||
up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
|
up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
|
||||||
up_assert.c up_mdelay.c up_udelay.c \
|
up_assert.c up_mdelay.c up_udelay.c up_schedulesigaction.c \
|
||||||
up_schedulesigaction.c up_sigdeliver.c \
|
up_sigdeliver.c up_registerdump.c up_usestack.c
|
||||||
up_registerdump.c up_usestack.c
|
|
||||||
|
|
||||||
CHIP_ASRCS = z80_saveusercontext.asm z80_restoreusercontext.asm
|
CHIP_ASRCS = z80_saveusercontext.asm z80_restoreusercontext.asm
|
||||||
CHIP_CSRCS =
|
CHIP_CSRCS = z80_initialstate.c
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* common/up_initialstate.c
|
* arch/z80/src/z80/up_initialstate.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
@ -44,6 +44,18 @@
|
|||||||
* Definitions
|
* Definitions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* LED pattern definitions */
|
||||||
|
|
||||||
|
#define LED_STARTED 0
|
||||||
|
#define LED_HEAPALLOCATE 1
|
||||||
|
#define LED_IRQSENABLED 2
|
||||||
|
#define LED_STACKCREATED 3
|
||||||
|
#define LED_IDLE 4
|
||||||
|
#define LED_INIRQ 5
|
||||||
|
#define LED_ASSERTION 6
|
||||||
|
#define LED_SIGNAL 6
|
||||||
|
#define LED_PANIC 7
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
@ -66,7 +66,7 @@ CONFIG_ARCH_BOARD_Z8ENCORE000ZCO=y
|
|||||||
CONFIG_BOARD_LOOPSPERMSEC=1250
|
CONFIG_BOARD_LOOPSPERMSEC=1250
|
||||||
CONFIG_ENDIAN_BIG=y
|
CONFIG_ENDIAN_BIG=y
|
||||||
CONFIG_DRAM_SIZE=65536
|
CONFIG_DRAM_SIZE=65536
|
||||||
CONFIG_ARCH_LEDS=y
|
CONFIG_ARCH_LEDS=n
|
||||||
#
|
#
|
||||||
# Z16F specific device driver settings
|
# Z16F specific device driver settings
|
||||||
#
|
#
|
||||||
|
@ -59,9 +59,8 @@
|
|||||||
|
|
||||||
/* Attributes
|
/* Attributes
|
||||||
*
|
*
|
||||||
* GCC supports weak symbols which can be used to reduce
|
* GCC supports weak symbols which can be used to reduce code size because
|
||||||
* code size because unnecessary "weak" functions can be
|
* unnecessary "weak" functions can be excluded from the link.
|
||||||
* excluded from the link.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
# ifndef __CYGWIN__
|
# ifndef __CYGWIN__
|
||||||
@ -77,21 +76,20 @@
|
|||||||
# define weak_const_function
|
# define weak_const_function
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* The noreturn attribute informs GCC that the function will
|
/* The noreturn attribute informs GCC that the function will not return. */
|
||||||
* not return.
|
|
||||||
*/
|
|
||||||
|
|
||||||
# define noreturn_function __attribute__ ((noreturn))
|
# define noreturn_function __attribute__ ((noreturn))
|
||||||
|
|
||||||
/* The packed attribute informs GCC that the stucture elements
|
/* The packed attribute informs GCC that the stucture elements are packed,
|
||||||
* are packed, ignoring other alignment rules.
|
* ignoring other alignment rules.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
# define packed_struct __attribute__ ((packed))
|
# define packed_struct __attribute__ ((packed))
|
||||||
|
|
||||||
/* GCC does not support the reentrant attribute */
|
/* GCC does not support the reentrant or naked attributes */
|
||||||
|
|
||||||
# define reentrant_function
|
# define reentrant_function
|
||||||
|
# define naked_function
|
||||||
|
|
||||||
/* GCC has does not use storage classes to qualify addressing */
|
/* GCC has does not use storage classes to qualify addressing */
|
||||||
|
|
||||||
@ -158,6 +156,10 @@
|
|||||||
# define noreturn_function
|
# define noreturn_function
|
||||||
# define packed_struct
|
# define packed_struct
|
||||||
|
|
||||||
|
/* SDCC does support "naked" function s*/
|
||||||
|
|
||||||
|
# define naked_function __naked
|
||||||
|
|
||||||
/* The reentrant attribute informs SDCC that the function
|
/* The reentrant attribute informs SDCC that the function
|
||||||
* must be reentrant. In this case, SDCC will store input
|
* must be reentrant. In this case, SDCC will store input
|
||||||
* arguments on the stack to support reentrancy.
|
* arguments on the stack to support reentrancy.
|
||||||
@ -249,10 +251,11 @@
|
|||||||
# define weak_function
|
# define weak_function
|
||||||
# define weak_const_function
|
# define weak_const_function
|
||||||
|
|
||||||
/* The Zilog compiler does not support the noreturn or packed attributes */
|
/* The Zilog compiler does not support the noreturn, packed, or naked attributes */
|
||||||
|
|
||||||
# define noreturn_function
|
# define noreturn_function
|
||||||
# define packed_struct
|
# define packed_struct
|
||||||
|
# define naked_function
|
||||||
|
|
||||||
/* The Zilog compiler does not support the reentrant attribute */
|
/* The Zilog compiler does not support the reentrant attribute */
|
||||||
|
|
||||||
@ -317,6 +320,8 @@
|
|||||||
# define noreturn_function
|
# define noreturn_function
|
||||||
# define packed_struct
|
# define packed_struct
|
||||||
# define reentrant_function
|
# define reentrant_function
|
||||||
|
# define naked_function
|
||||||
|
|
||||||
|
|
||||||
# define FAR
|
# define FAR
|
||||||
# define NEAR
|
# define NEAR
|
||||||
|
Loading…
x
Reference in New Issue
Block a user