diff options
-rw-r--r-- | demos/ARM7-AT91SAM7X-GCC/Makefile | 8 | ||||
-rw-r--r-- | demos/ARM7-AT91SAM7X-GCC/Makefile.thumb | 8 | ||||
-rw-r--r-- | demos/ARM7-LPC214x-GCC/Makefile | 14 | ||||
-rw-r--r-- | demos/ARM7-LPC214x-GCC/Makefile.thumb | 14 | ||||
-rw-r--r-- | ports/ARM7-AT91SAM7X/chcore.c (renamed from ports/ARM7-AT91SAM7X/GCC/chcore.c) | 0 | ||||
-rw-r--r-- | ports/ARM7-AT91SAM7X/crt0.s (renamed from ports/ARM7-AT91SAM7X/GCC/crt0.s) | 0 | ||||
-rw-r--r-- | ports/ARM7-AT91SAM7X/sam7x_serial.c (renamed from ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c) | 0 | ||||
-rw-r--r-- | ports/ARM7-AT91SAM7X/sam7x_serial.h (renamed from ports/ARM7-AT91SAM7X/GCC/sam7x_serial.h) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/GCC/chcore.h | 128 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/GCC/chtypes.h | 47 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/chcore.c (renamed from ports/ARM7-LPC214x/GCC/chcore.c) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/crt0.s (renamed from ports/ARM7-LPC214x/GCC/crt0.s) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/lpc214x.h (renamed from ports/ARM7-LPC214x/GCC/lpc214x.h) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/lpc214x_serial.c (renamed from ports/ARM7-LPC214x/GCC/lpc214x_serial.c) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/lpc214x_serial.h (renamed from ports/ARM7-LPC214x/GCC/lpc214x_serial.h) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/lpc214x_ssp.c (renamed from ports/ARM7-LPC214x/GCC/lpc214x_ssp.c) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/lpc214x_ssp.h (renamed from ports/ARM7-LPC214x/GCC/lpc214x_ssp.h) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/vic.c (renamed from ports/ARM7-LPC214x/GCC/vic.c) | 0 | ||||
-rw-r--r-- | ports/ARM7-LPC214x/vic.h (renamed from ports/ARM7-LPC214x/GCC/vic.h) | 0 | ||||
-rw-r--r-- | readme.txt | 14 |
20 files changed, 38 insertions, 195 deletions
diff --git a/demos/ARM7-AT91SAM7X-GCC/Makefile b/demos/ARM7-AT91SAM7X-GCC/Makefile index 9c2006fe2..c94b88fdb 100644 --- a/demos/ARM7-AT91SAM7X-GCC/Makefile +++ b/demos/ARM7-AT91SAM7X-GCC/Makefile @@ -62,8 +62,8 @@ UDEFS = UADEFS =
# List ARM-mode C source files here
-ASRC = ../../ports/ARM7-AT91SAM7X/GCC/chcore.c \
- ../../ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c \
+ASRC = ../../ports/ARM7-AT91SAM7X/chcore.c \
+ ../../ports/ARM7-AT91SAM7X/sam7x_serial.c \
../../src/chinit.c ../../src/chdebug.c ../../src/chlists.c ../../src/chdelta.c \
../../src/chschd.c ../../src/chthreads.c ../../src/chsem.c ../../src/chmtx.c \
../../src/chevents.c ../../src/chmsg.c ../../src/chsleep.c ../../src/chqueues.c \
@@ -78,11 +78,11 @@ ASRC = ../../ports/ARM7-AT91SAM7X/GCC/chcore.c \ TSRC =
# List ASM source files here
-ASMSRC = ../../ports/ARM7-AT91SAM7X/GCC/crt0.s ../../ports/ARM7/chsys.s
+ASMSRC = ../../ports/ARM7-AT91SAM7X/crt0.s ../../ports/ARM7/chsys.s
# List all user directories here
UINCDIR = ../../src/include ../../src/lib \
- ../../ports/ARM7 ../../ports/ARM7-AT91SAM7X/GCC
+ ../../ports/ARM7 ../../ports/ARM7-AT91SAM7X
# List the user directory to look for the libraries here
ULIBDIR =
diff --git a/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb b/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb index 5dd2f33c6..76a4459fd 100644 --- a/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb +++ b/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb @@ -67,8 +67,8 @@ ASRC = # List THUMB-mode C sources here
# NOTE: If any module is compiled in thumb mode then -mthumb-interwork is
# enabled for all modules and that lowers performance.
-TSRC = ../../ports/ARM7-AT91SAM7X/GCC/chcore.c \
- ../../ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c \
+TSRC = ../../ports/ARM7-AT91SAM7X/chcore.c \
+ ../../ports/ARM7-AT91SAM7X/sam7x_serial.c \
../../src/chinit.c ../../src/chdebug.c ../../src/chlists.c ../../src/chdelta.c \
../../src/chschd.c ../../src/chthreads.c ../../src/chsem.c ../../src/chmtx.c \
../../src/chevents.c ../../src/chmsg.c ../../src/chsleep.c ../../src/chqueues.c \
@@ -78,11 +78,11 @@ TSRC = ../../ports/ARM7-AT91SAM7X/GCC/chcore.c \ board.c main.c
# List ASM source files here
-ASMSRC = ../../ports/ARM7-AT91SAM7X/GCC/crt0.s ../../ports/ARM7/chsys.s
+ASMSRC = ../../ports/ARM7-AT91SAM7X/crt0.s ../../ports/ARM7/chsys.s
# List all user directories here
UINCDIR = ../../src/include ../../src/lib \
- ../../ports/ARM7 ../../ports/ARM7-AT91SAM7X/GCC
+ ../../ports/ARM7 ../../ports/ARM7-AT91SAM7X
# List the user directory to look for the libraries here
ULIBDIR =
diff --git a/demos/ARM7-LPC214x-GCC/Makefile b/demos/ARM7-LPC214x-GCC/Makefile index 5e49defda..c7177b094 100644 --- a/demos/ARM7-LPC214x-GCC/Makefile +++ b/demos/ARM7-LPC214x-GCC/Makefile @@ -62,10 +62,10 @@ UDEFS = UADEFS =
# List ARM-mode C source files here
-ASRC = ../../ports/ARM7-LPC214x/GCC/chcore.c \
- ../../ports/ARM7-LPC214x/GCC/vic.c \
- ../../ports/ARM7-LPC214x/GCC/lpc214x_serial.c \
- ../../ports/ARM7-LPC214x/GCC/lpc214x_ssp.c \
+ASRC = ../../ports/ARM7-LPC214x/chcore.c \
+ ../../ports/ARM7-LPC214x/vic.c \
+ ../../ports/ARM7-LPC214x/lpc214x_serial.c \
+ ../../ports/ARM7-LPC214x/lpc214x_ssp.c \
../../src/chinit.c ../../src/chdebug.c ../../src/chlists.c ../../src/chdelta.c \
../../src/chschd.c ../../src/chthreads.c ../../src/chsem.c ../../src/chmtx.c \
../../src/chevents.c ../../src/chmsg.c ../../src/chsleep.c ../../src/chqueues.c \
@@ -79,10 +79,11 @@ ASRC = ../../ports/ARM7-LPC214x/GCC/chcore.c \ TSRC =
# List ASM source files here
-ASMSRC = ../../ports/ARM7-LPC214x/GCC/crt0.s
+ASMSRC = ../../ports/ARM7-LPC214x/crt0.s
# List all user directories here
-UINCDIR = ../../src/include ../../src/lib ../../ports/ARM7-LPC214x/GCC
+UINCDIR = ../../src/include ../../src/lib \
+ ../../ports/ARM7 ../../ports/ARM7-LPC214x
# List the user directory to look for the libraries here
ULIBDIR =
@@ -131,6 +132,7 @@ ODFLAGS = -x --syms # Thumb interwork enabled only if needed because it kills performance.
ifneq ($(TSRC),)
CPFLAGS += -D THUMB_PRESENT
+ ASFLAGS += -D THUMB_PRESENT
ifneq ($(ASRC),)
# Mixed ARM and THUMB case.
CPFLAGS += -mthumb-interwork
diff --git a/demos/ARM7-LPC214x-GCC/Makefile.thumb b/demos/ARM7-LPC214x-GCC/Makefile.thumb index 89ccdfdc2..66d799ad9 100644 --- a/demos/ARM7-LPC214x-GCC/Makefile.thumb +++ b/demos/ARM7-LPC214x-GCC/Makefile.thumb @@ -67,10 +67,10 @@ ASRC = # List THUMB-mode C sources here
# NOTE: If any module is compiled in thumb mode then -mthumb-interwork is
# enabled for all modules and that lowers performance.
-TSRC = ../../ports/ARM7-LPC214x/GCC/chcore.c \
- ../../ports/ARM7-LPC214x/GCC/vic.c \
- ../../ports/ARM7-LPC214x/GCC/lpc214x_serial.c \
- ../../ports/ARM7-LPC214x/GCC/lpc214x_ssp.c \
+TSRC = ../../ports/ARM7-LPC214x/chcore.c \
+ ../../ports/ARM7-LPC214x/vic.c \
+ ../../ports/ARM7-LPC214x/lpc214x_serial.c \
+ ../../ports/ARM7-LPC214x/lpc214x_ssp.c \
../../src/chinit.c ../../src/chdebug.c ../../src/chlists.c ../../src/chdelta.c \
../../src/chschd.c ../../src/chthreads.c ../../src/chsem.c ../../src/chmtx.c \
../../src/chevents.c ../../src/chmsg.c ../../src/chsleep.c ../../src/chqueues.c \
@@ -79,10 +79,11 @@ TSRC = ../../ports/ARM7-LPC214x/GCC/chcore.c \ board.c buzzer.c mmcsd.c main.c
# List ASM source files here
-ASMSRC = ../../ports/ARM7-LPC214x/GCC/crt0.s
+ASMSRC = ../../ports/ARM7-LPC214x/crt0.s
# List all user directories here
-UINCDIR = ../../src/include ../../src/lib ../../ports/ARM7-LPC214x/GCC
+UINCDIR = ../../src/include ../../src/lib \
+ ../../ports/ARM7 ../../ports/ARM7-LPC214x
# List the user directory to look for the libraries here
ULIBDIR =
@@ -131,6 +132,7 @@ ODFLAGS = -x --syms # Thumb interwork enabled only if needed because it kills performance.
ifneq ($(TSRC),)
CPFLAGS += -D THUMB_PRESENT
+ ASFLAGS += -D THUMB_PRESENT
ifneq ($(ASRC),)
# Mixed ARM and THUMB case.
CPFLAGS += -mthumb-interwork
diff --git a/ports/ARM7-AT91SAM7X/GCC/chcore.c b/ports/ARM7-AT91SAM7X/chcore.c index 053cc4831..053cc4831 100644 --- a/ports/ARM7-AT91SAM7X/GCC/chcore.c +++ b/ports/ARM7-AT91SAM7X/chcore.c diff --git a/ports/ARM7-AT91SAM7X/GCC/crt0.s b/ports/ARM7-AT91SAM7X/crt0.s index dbe9db079..dbe9db079 100644 --- a/ports/ARM7-AT91SAM7X/GCC/crt0.s +++ b/ports/ARM7-AT91SAM7X/crt0.s diff --git a/ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c b/ports/ARM7-AT91SAM7X/sam7x_serial.c index 5d56e267d..5d56e267d 100644 --- a/ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c +++ b/ports/ARM7-AT91SAM7X/sam7x_serial.c diff --git a/ports/ARM7-AT91SAM7X/GCC/sam7x_serial.h b/ports/ARM7-AT91SAM7X/sam7x_serial.h index 396aaeaf1..396aaeaf1 100644 --- a/ports/ARM7-AT91SAM7X/GCC/sam7x_serial.h +++ b/ports/ARM7-AT91SAM7X/sam7x_serial.h diff --git a/ports/ARM7-LPC214x/GCC/chcore.h b/ports/ARM7-LPC214x/GCC/chcore.h deleted file mode 100644 index 8f3e7f4be..000000000 --- a/ports/ARM7-LPC214x/GCC/chcore.h +++ /dev/null @@ -1,128 +0,0 @@ -/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _CHCORE_H_
-#define _CHCORE_H_
-
-typedef void *regarm;
-
-/*
- * Interrupt saved context.
- */
-struct extctx {
- regarm spsr_irq;
- regarm lr_irq;
- regarm r0;
- regarm r1;
- regarm r2;
- regarm r3;
- regarm r12;
-};
-
-/*
- * System saved context.
- */
-struct intctx {
- regarm r4;
- regarm r5;
- regarm r6;
-#ifndef CH_CURRP_REGISTER_CACHE
- regarm r7;
-#endif
- regarm r8;
- regarm r9;
- regarm r10;
- regarm r11;
- regarm lr;
-};
-
-/*
- * Port dependent part of the Thread structure, you may add fields in
- * this structure.
- */
-typedef struct {
- struct intctx *r13;
-} Context;
-
-/*
- * Platform dependent part of the \p chThdCreate() API.
- */
-#define SETUP_CONTEXT(workspace, wsize, pf, arg) { \
- tp->p_ctx.r13 = (struct intctx *)((BYTE8 *)workspace + \
- wsize - \
- sizeof(struct intctx)); \
- tp->p_ctx.r13->r4 = pf; \
- tp->p_ctx.r13->r5 = arg; \
- tp->p_ctx.r13->lr = threadstart; \
-}
-
-#ifdef THUMB
-extern void chSysLock(void);
-extern void chSysUnlock(void);
-#else /* !THUMB */
-#define chSysLock() asm("msr CPSR_c, #0x9F")
-#define chSysUnlock() asm("msr CPSR_c, #0x1F")
-#endif /* THUMB */
-
-#ifdef THUMB
-#define INT_REQUIRED_STACK 0x10
-#else /* !THUMB */
-#define INT_REQUIRED_STACK 0
-#endif /* !THUMB */
-#define StackAlign(n) ((((n) - 1) | 3) + 1)
-#define UserStackSize(n) StackAlign(sizeof(Thread) + \
- sizeof(struct intctx) + \
- sizeof(struct extctx) + \
- (n) + \
- INT_REQUIRED_STACK)
-#define WorkingArea(s, n) ULONG32 s[UserStackSize(n) >> 2];
-
-#ifdef THUMB
-#define chSysIRQEnterI() { \
- asm(".code 32 \n\t" \
- "stmfd sp!, {r0-r3, r12, lr} \n\t" \
- "add r0, pc, #1 \n\t" \
- "bx r0 \n\t" \
- ".code 16 \n\t"); \
-}
-
-#define chSysIRQExitI() { \
- asm("ldr r0, =IrqCommon \n\t" \
- "bx r0 \n\t"); \
-}
-#else /* !THUMB */
-#define chSysIRQEnterI() { \
- asm("stmfd sp!, {r0-r3, r12, lr} \n\t"); \
-}
-
-#define chSysIRQExitI() { \
- asm("b IrqCommon \n\t"); \
-}
-#endif /* !THUMB */
-
-/* It requires zero bytes, but better be safe.*/
-#define IDLE_THREAD_STACK_SIZE 8
-void _IdleThread(void *p) __attribute__((noreturn));
-
-void chSysHalt(void);
-void chSysSwitchI(Thread *otp, Thread *ntp);
-void chSysPuts(char *msg);
-void threadstart(void);
-
-#endif /* _CHCORE_H_ */
diff --git a/ports/ARM7-LPC214x/GCC/chtypes.h b/ports/ARM7-LPC214x/GCC/chtypes.h deleted file mode 100644 index 2ac219148..000000000 --- a/ports/ARM7-LPC214x/GCC/chtypes.h +++ /dev/null @@ -1,47 +0,0 @@ -/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _CHTYPES_H_
-#define _CHTYPES_H_
-
-/*
- * Generic types often dependant on the compiler.
- */
-#define BOOL char
-#define BYTE8 unsigned char
-#define SBYTE8 char
-#define WORD16 short
-#define UWORD16 unsigned short
-#define LONG32 int
-#define ULONG32 unsigned int
-
-typedef BYTE8 t_tmode;
-typedef BYTE8 t_tstate;
-typedef UWORD16 t_tid;
-typedef ULONG32 t_prio;
-typedef LONG32 t_msg;
-typedef LONG32 t_eventid;
-typedef ULONG32 t_eventmask;
-typedef ULONG32 t_time;
-typedef LONG32 t_cnt;
-typedef ULONG32 t_size;
-
-#define INLINE inline
-
-#endif /* _CHTYPES_H_ */
diff --git a/ports/ARM7-LPC214x/GCC/chcore.c b/ports/ARM7-LPC214x/chcore.c index 88f041ddd..88f041ddd 100644 --- a/ports/ARM7-LPC214x/GCC/chcore.c +++ b/ports/ARM7-LPC214x/chcore.c diff --git a/ports/ARM7-LPC214x/GCC/crt0.s b/ports/ARM7-LPC214x/crt0.s index d501770c8..d501770c8 100644 --- a/ports/ARM7-LPC214x/GCC/crt0.s +++ b/ports/ARM7-LPC214x/crt0.s diff --git a/ports/ARM7-LPC214x/GCC/lpc214x.h b/ports/ARM7-LPC214x/lpc214x.h index af6262eda..af6262eda 100644 --- a/ports/ARM7-LPC214x/GCC/lpc214x.h +++ b/ports/ARM7-LPC214x/lpc214x.h diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_serial.c b/ports/ARM7-LPC214x/lpc214x_serial.c index 35dc39867..35dc39867 100644 --- a/ports/ARM7-LPC214x/GCC/lpc214x_serial.c +++ b/ports/ARM7-LPC214x/lpc214x_serial.c diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_serial.h b/ports/ARM7-LPC214x/lpc214x_serial.h index 11683c086..11683c086 100644 --- a/ports/ARM7-LPC214x/GCC/lpc214x_serial.h +++ b/ports/ARM7-LPC214x/lpc214x_serial.h diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_ssp.c b/ports/ARM7-LPC214x/lpc214x_ssp.c index ab0c4f141..ab0c4f141 100644 --- a/ports/ARM7-LPC214x/GCC/lpc214x_ssp.c +++ b/ports/ARM7-LPC214x/lpc214x_ssp.c diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_ssp.h b/ports/ARM7-LPC214x/lpc214x_ssp.h index 07401d173..07401d173 100644 --- a/ports/ARM7-LPC214x/GCC/lpc214x_ssp.h +++ b/ports/ARM7-LPC214x/lpc214x_ssp.h diff --git a/ports/ARM7-LPC214x/GCC/vic.c b/ports/ARM7-LPC214x/vic.c index 969c4aa3b..969c4aa3b 100644 --- a/ports/ARM7-LPC214x/GCC/vic.c +++ b/ports/ARM7-LPC214x/vic.c diff --git a/ports/ARM7-LPC214x/GCC/vic.h b/ports/ARM7-LPC214x/vic.h index 9d8ba93ad..9d8ba93ad 100644 --- a/ports/ARM7-LPC214x/GCC/vic.h +++ b/ports/ARM7-LPC214x/vic.h diff --git a/readme.txt b/readme.txt index 2d9d35d45..de83b41f9 100644 --- a/readme.txt +++ b/readme.txt @@ -38,9 +38,23 @@ ARM7-AT91SAM7X-GCC - Port for Atmel AT91SAM7X256. The demo program targets AVR-AT90CANx-GCC - Port on AVR AT90CAN128, not complete yet.
*****************************************************************************
+*** Plans ***
+*****************************************************************************
+
+- Restart the work on the AVR port ASAP.
+- Look into importing or implementing a TCP/IP stack and a File System.
+- Start the work on a Cortex-M3 port as soon GCC 4.3.0 will be released.
+- Evaluate other architectures for a possible ChibiOS/RT port.
+
+*****************************************************************************
*** Releases ***
*****************************************************************************
+*** 0.5.5 ***
+- Reorganized the code of the two ARM7 ports, now all the common ARM7 code
+ is in ./ports/ARM7. This will make maintenance and new ARM7 ports much
+ easier.
+
*** 0.5.4 ***
- Port for Atmel AT91SAM7X256 introduced, the port should be useable also on
SAM7S and SAM7XC but no tests were performed. Other SAM7 processors should
|