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 similarity index 100% rename from ports/ARM7-AT91SAM7X/GCC/chcore.c rename to ports/ARM7-AT91SAM7X/chcore.c diff --git a/ports/ARM7-AT91SAM7X/GCC/crt0.s b/ports/ARM7-AT91SAM7X/crt0.s similarity index 100% rename from ports/ARM7-AT91SAM7X/GCC/crt0.s rename to ports/ARM7-AT91SAM7X/crt0.s diff --git a/ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c b/ports/ARM7-AT91SAM7X/sam7x_serial.c similarity index 100% rename from ports/ARM7-AT91SAM7X/GCC/sam7x_serial.c rename to ports/ARM7-AT91SAM7X/sam7x_serial.c diff --git a/ports/ARM7-AT91SAM7X/GCC/sam7x_serial.h b/ports/ARM7-AT91SAM7X/sam7x_serial.h similarity index 100% rename from ports/ARM7-AT91SAM7X/GCC/sam7x_serial.h rename to 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 . -*/ - -#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 . -*/ - -#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 similarity index 100% rename from ports/ARM7-LPC214x/GCC/chcore.c rename to ports/ARM7-LPC214x/chcore.c diff --git a/ports/ARM7-LPC214x/GCC/crt0.s b/ports/ARM7-LPC214x/crt0.s similarity index 100% rename from ports/ARM7-LPC214x/GCC/crt0.s rename to ports/ARM7-LPC214x/crt0.s diff --git a/ports/ARM7-LPC214x/GCC/lpc214x.h b/ports/ARM7-LPC214x/lpc214x.h similarity index 100% rename from ports/ARM7-LPC214x/GCC/lpc214x.h rename to ports/ARM7-LPC214x/lpc214x.h diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_serial.c b/ports/ARM7-LPC214x/lpc214x_serial.c similarity index 100% rename from ports/ARM7-LPC214x/GCC/lpc214x_serial.c rename to ports/ARM7-LPC214x/lpc214x_serial.c diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_serial.h b/ports/ARM7-LPC214x/lpc214x_serial.h similarity index 100% rename from ports/ARM7-LPC214x/GCC/lpc214x_serial.h rename to ports/ARM7-LPC214x/lpc214x_serial.h diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_ssp.c b/ports/ARM7-LPC214x/lpc214x_ssp.c similarity index 100% rename from ports/ARM7-LPC214x/GCC/lpc214x_ssp.c rename to ports/ARM7-LPC214x/lpc214x_ssp.c diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_ssp.h b/ports/ARM7-LPC214x/lpc214x_ssp.h similarity index 100% rename from ports/ARM7-LPC214x/GCC/lpc214x_ssp.h rename to ports/ARM7-LPC214x/lpc214x_ssp.h diff --git a/ports/ARM7-LPC214x/GCC/vic.c b/ports/ARM7-LPC214x/vic.c similarity index 100% rename from ports/ARM7-LPC214x/GCC/vic.c rename to ports/ARM7-LPC214x/vic.c diff --git a/ports/ARM7-LPC214x/GCC/vic.h b/ports/ARM7-LPC214x/vic.h similarity index 100% rename from ports/ARM7-LPC214x/GCC/vic.h rename to ports/ARM7-LPC214x/vic.h diff --git a/readme.txt b/readme.txt index 2d9d35d45..de83b41f9 100644 --- a/readme.txt +++ b/readme.txt @@ -37,10 +37,24 @@ ARM7-AT91SAM7X-GCC - Port for Atmel AT91SAM7X256. The demo program targets the Olimex SAM7-EX256 board. 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