aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/ARM7-LPC214x-FATFS-GCC/Makefile16
-rw-r--r--demos/ARM7-LPC214x-FATFS-GCC/main.c4
-rw-r--r--demos/ARM7-LPC214x-G++/Makefile16
-rw-r--r--demos/ARM7-LPC214x-G++/ch.ld107
-rw-r--r--demos/ARM7-LPC214x-GCC/Makefile16
-rw-r--r--demos/ARM7-LPC214x-GCC/ch.ld107
-rw-r--r--os/ports/GCC/ARM/LPC214x/ld/LPC2148.ld (renamed from demos/ARM7-LPC214x-FATFS-GCC/ch.ld)0
-rw-r--r--os/ports/GCC/ARM/LPC214x/port.mk13
-rw-r--r--os/ports/GCC/ARM/port.mk7
-rw-r--r--readme.txt1
-rw-r--r--todo.txt6
11 files changed, 40 insertions, 253 deletions
diff --git a/demos/ARM7-LPC214x-FATFS-GCC/Makefile b/demos/ARM7-LPC214x-FATFS-GCC/Makefile
index d69954793..bb3b93ed4 100644
--- a/demos/ARM7-LPC214x-FATFS-GCC/Makefile
+++ b/demos/ARM7-LPC214x-FATFS-GCC/Makefile
@@ -39,19 +39,19 @@ endif
# Define project name here
PROJECT = ch
-# Define linker script file here
-LDSCRIPT = ch.ld
-
-# Imported source files
+# Imported source files and paths
CHIBIOS = ../..
include $(CHIBIOS)/boards/OLIMEX_LPC_P2148/board.mk
include $(CHIBIOS)/os/hal/platforms/LPC214x/platform.mk
include $(CHIBIOS)/os/hal/hal.mk
-include $(CHIBIOS)/os/ports/GCC/ARM/port.mk
+include $(CHIBIOS)/os/ports/GCC/ARM/LPC214x/port.mk
include $(CHIBIOS)/os/kernel/kernel.mk
include $(CHIBIOS)/test/test.mk
include $(CHIBIOS)/ext/fatfs/fatfs.mk
+# Define linker script file here
+LDSCRIPT= $(PORTLD)/LPC2148.ld
+
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
CSRC = $(PORTSRC) \
@@ -91,14 +91,12 @@ TCSRC =
TCPPSRC =
# List ASM source files here
-ASMSRC = $(PORTASM) \
- $(CHIBIOS)/os/ports/GCC/ARM/LPC214x/vectors.s
+ASMSRC = $(PORTASM)
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
$(FATFSINC) \
- $(CHIBIOS)/os/various \
- $(CHIBIOS)/os/ports/GCC/ARM/LPC214x
+ $(CHIBIOS)/os/various
#
# Project, sources and paths
diff --git a/demos/ARM7-LPC214x-FATFS-GCC/main.c b/demos/ARM7-LPC214x-FATFS-GCC/main.c
index bb8c012af..b5d7e82d6 100644
--- a/demos/ARM7-LPC214x-FATFS-GCC/main.c
+++ b/demos/ARM7-LPC214x-FATFS-GCC/main.c
@@ -273,8 +273,8 @@ int main(void) {
evtInit(&evt, MS2ST(500)); /* Initializes an event timer object. */
evtStart(&evt); /* Starts the event timer. */
chEvtRegister(&evt.et_es, &el0, 0); /* Registers on the timer event source. */
- chEvtRegister(&MMCD1.mmc_inserted_event, &el1, 1);
- chEvtRegister(&MMCD1.mmc_removed_event, &el2, 2);
+ chEvtRegister(&MMCD1.inserted_event, &el1, 1);
+ chEvtRegister(&MMCD1.removed_event, &el2, 2);
while (TRUE)// chThdSleepMilliseconds(50);
chEvtDispatch(evhndl, chEvtWaitOne(ALL_EVENTS));
return 0;
diff --git a/demos/ARM7-LPC214x-G++/Makefile b/demos/ARM7-LPC214x-G++/Makefile
index 118ec0cae..5d5723568 100644
--- a/demos/ARM7-LPC214x-G++/Makefile
+++ b/demos/ARM7-LPC214x-G++/Makefile
@@ -39,18 +39,18 @@ endif
# Define project name here
PROJECT = ch
-# Define linker script file here
-LDSCRIPT = ch.ld
-
-# Imported source files
+# Imported source files and paths
CHIBIOS = ../..
include $(CHIBIOS)/boards/OLIMEX_LPC_P2148/board.mk
include $(CHIBIOS)/os/hal/platforms/LPC214x/platform.mk
include $(CHIBIOS)/os/hal/hal.mk
-include $(CHIBIOS)/os/ports/GCC/ARM/port.mk
+include $(CHIBIOS)/os/ports/GCC/ARM/LPC214x/port.mk
include $(CHIBIOS)/os/kernel/kernel.mk
include $(CHIBIOS)/test/test.mk
+# Define linker script file here
+LDSCRIPT= $(PORTLD)/LPC2148.ld
+
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
CSRC = $(PORTSRC) \
@@ -86,13 +86,11 @@ TCSRC =
TCPPSRC =
# List ASM source files here
-ASMSRC = $(PORTASM) \
- $(CHIBIOS)/os/ports/GCC/ARM/LPC214x/vectors.s
+ASMSRC = $(PORTASM)
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
- $(CHIBIOS)/os/various \
- $(CHIBIOS)/os/ports/GCC/ARM/LPC214x
+ $(CHIBIOS)/os/various
#
# Project, sources and paths
diff --git a/demos/ARM7-LPC214x-G++/ch.ld b/demos/ARM7-LPC214x-G++/ch.ld
deleted file mode 100644
index 40683d14e..000000000
--- a/demos/ARM7-LPC214x-G++/ch.ld
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
- 2011 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/>.
-*/
-
-/*
- * LPC2148 memory setup.
- */
-__und_stack_size__ = 0x0004;
-__abt_stack_size__ = 0x0004;
-__fiq_stack_size__ = 0x0010;
-__irq_stack_size__ = 0x0080;
-__svc_stack_size__ = 0x0004;
-__sys_stack_size__ = 0x0400;
-__stacks_total_size__ = __und_stack_size__ + __abt_stack_size__ + __fiq_stack_size__ + __irq_stack_size__ + __svc_stack_size__ + __sys_stack_size__;
-
-MEMORY
-{
- flash : org = 0x00000000, len = 512k - 12k
- ram : org = 0x40000200, len = 32k - 0x200 - 288
-}
-
-__ram_start__ = ORIGIN(ram);
-__ram_size__ = LENGTH(ram);
-__ram_end__ = __ram_start__ + __ram_size__;
-__dma_start__ = 0x7FD00000;
-__dma_size__ = 8k;
-__dma_end__ = 0x7FD00000 + __dma_size__;
-
-SECTIONS
-{
- . = 0;
-
- .text : ALIGN(16) SUBALIGN(16)
- {
- _text = .;
- KEEP(*(vectors))
- *(.text)
- *(.text.*)
- *(.rodata)
- *(.rodata.*)
- *(.glue_7t)
- *(.glue_7)
- *(.gcc*)
- *(.ctors)
- *(.dtors)
- } > flash
-
- .ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)}
-
- __exidx_start = .;
- .ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash
- __exidx_end = .;
-
- .eh_frame_hdr : {*(.eh_frame_hdr)}
-
- .eh_frame : ONLY_IF_RO {*(.eh_frame)}
-
- . = ALIGN(4);
- _etext = .;
- _textdata = _etext;
-
- .data :
- {
- _data = .;
- *(.data)
- . = ALIGN(4);
- *(.data.*)
- . = ALIGN(4);
- *(.ramtext)
- . = ALIGN(4);
- _edata = .;
- } > ram AT > flash
-
- .bss :
- {
- _bss_start = .;
- *(.bss)
- . = ALIGN(4);
- *(.bss.*)
- . = ALIGN(4);
- *(COMMON)
- . = ALIGN(4);
- _bss_end = .;
- } > ram
-}
-
-PROVIDE(end = .);
-_end = .;
-
-__heap_base__ = _end;
-__heap_end__ = __ram_end__ - __stacks_total_size__;
diff --git a/demos/ARM7-LPC214x-GCC/Makefile b/demos/ARM7-LPC214x-GCC/Makefile
index ac9a4d653..67116791e 100644
--- a/demos/ARM7-LPC214x-GCC/Makefile
+++ b/demos/ARM7-LPC214x-GCC/Makefile
@@ -39,18 +39,18 @@ endif
# Define project name here
PROJECT = ch
-# Define linker script file here
-LDSCRIPT = ch.ld
-
-# Imported source files
+# Imported source files and paths
CHIBIOS = ../..
include $(CHIBIOS)/boards/OLIMEX_LPC_P2148/board.mk
include $(CHIBIOS)/os/hal/platforms/LPC214x/platform.mk
include $(CHIBIOS)/os/hal/hal.mk
-include $(CHIBIOS)/os/ports/GCC/ARM/port.mk
+include $(CHIBIOS)/os/ports/GCC/ARM/LPC214x/port.mk
include $(CHIBIOS)/os/kernel/kernel.mk
include $(CHIBIOS)/test/test.mk
+# Define linker script file here
+LDSCRIPT= $(PORTLD)/LPC2148.ld
+
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
CSRC = $(PORTSRC) \
@@ -86,13 +86,11 @@ TCSRC =
TCPPSRC =
# List ASM source files here
-ASMSRC = $(PORTASM) \
- $(CHIBIOS)/os/ports/GCC/ARM/LPC214x/vectors.s
+ASMSRC = $(PORTASM)
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
- $(CHIBIOS)/os/various \
- $(CHIBIOS)/os/ports/GCC/ARM/LPC214x
+ $(CHIBIOS)/os/various
#
# Project, sources and paths
diff --git a/demos/ARM7-LPC214x-GCC/ch.ld b/demos/ARM7-LPC214x-GCC/ch.ld
deleted file mode 100644
index 40683d14e..000000000
--- a/demos/ARM7-LPC214x-GCC/ch.ld
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
- 2011 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/>.
-*/
-
-/*
- * LPC2148 memory setup.
- */
-__und_stack_size__ = 0x0004;
-__abt_stack_size__ = 0x0004;
-__fiq_stack_size__ = 0x0010;
-__irq_stack_size__ = 0x0080;
-__svc_stack_size__ = 0x0004;
-__sys_stack_size__ = 0x0400;
-__stacks_total_size__ = __und_stack_size__ + __abt_stack_size__ + __fiq_stack_size__ + __irq_stack_size__ + __svc_stack_size__ + __sys_stack_size__;
-
-MEMORY
-{
- flash : org = 0x00000000, len = 512k - 12k
- ram : org = 0x40000200, len = 32k - 0x200 - 288
-}
-
-__ram_start__ = ORIGIN(ram);
-__ram_size__ = LENGTH(ram);
-__ram_end__ = __ram_start__ + __ram_size__;
-__dma_start__ = 0x7FD00000;
-__dma_size__ = 8k;
-__dma_end__ = 0x7FD00000 + __dma_size__;
-
-SECTIONS
-{
- . = 0;
-
- .text : ALIGN(16) SUBALIGN(16)
- {
- _text = .;
- KEEP(*(vectors))
- *(.text)
- *(.text.*)
- *(.rodata)
- *(.rodata.*)
- *(.glue_7t)
- *(.glue_7)
- *(.gcc*)
- *(.ctors)
- *(.dtors)
- } > flash
-
- .ARM.extab : {*(.ARM.extab* .gnu.linkonce.armextab.*)}
-
- __exidx_start = .;
- .ARM.exidx : {*(.ARM.exidx* .gnu.linkonce.armexidx.*)} > flash
- __exidx_end = .;
-
- .eh_frame_hdr : {*(.eh_frame_hdr)}
-
- .eh_frame : ONLY_IF_RO {*(.eh_frame)}
-
- . = ALIGN(4);
- _etext = .;
- _textdata = _etext;
-
- .data :
- {
- _data = .;
- *(.data)
- . = ALIGN(4);
- *(.data.*)
- . = ALIGN(4);
- *(.ramtext)
- . = ALIGN(4);
- _edata = .;
- } > ram AT > flash
-
- .bss :
- {
- _bss_start = .;
- *(.bss)
- . = ALIGN(4);
- *(.bss.*)
- . = ALIGN(4);
- *(COMMON)
- . = ALIGN(4);
- _bss_end = .;
- } > ram
-}
-
-PROVIDE(end = .);
-_end = .;
-
-__heap_base__ = _end;
-__heap_end__ = __ram_end__ - __stacks_total_size__;
diff --git a/demos/ARM7-LPC214x-FATFS-GCC/ch.ld b/os/ports/GCC/ARM/LPC214x/ld/LPC2148.ld
index 40683d14e..40683d14e 100644
--- a/demos/ARM7-LPC214x-FATFS-GCC/ch.ld
+++ b/os/ports/GCC/ARM/LPC214x/ld/LPC2148.ld
diff --git a/os/ports/GCC/ARM/LPC214x/port.mk b/os/ports/GCC/ARM/LPC214x/port.mk
new file mode 100644
index 000000000..1fcd858e5
--- /dev/null
+++ b/os/ports/GCC/ARM/LPC214x/port.mk
@@ -0,0 +1,13 @@
+# List of the ChibiOS/RT ARM7 LPC214x port files.
+PORTSRC = ${CHIBIOS}/os/ports/GCC/ARM/chcore.c
+
+PORTASM = ${CHIBIOS}/os/ports/GCC/ARM/crt0.s \
+ ${CHIBIOS}/os/ports/GCC/ARM/chcoreasm.s \
+ ${CHIBIOS}/os/ports/GCC/ARM/LPC214x/vectors.s
+
+
+PORTINC = ${CHIBIOS}/os/ports/GCC/ARM \
+ ${CHIBIOS}/os/ports/GCC/ARM/LPC214x
+
+PORTLD = ${CHIBIOS}/os/ports/GCC/ARM/LPC214x/ld
+
diff --git a/os/ports/GCC/ARM/port.mk b/os/ports/GCC/ARM/port.mk
deleted file mode 100644
index fdad5f5e6..000000000
--- a/os/ports/GCC/ARM/port.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# List of the ChibiOS/RT ARM7/9 port files.
-PORTSRC = ${CHIBIOS}/os/ports/GCC/ARM/chcore.c
-
-PORTASM = ${CHIBIOS}/os/ports/GCC/ARM/crt0.s \
- ${CHIBIOS}/os/ports/GCC/ARM/chcoreasm.s
-
-PORTINC = ${CHIBIOS}/os/ports/GCC/ARM
diff --git a/readme.txt b/readme.txt
index b27cd116b..b56489b80 100644
--- a/readme.txt
+++ b/readme.txt
@@ -98,7 +98,6 @@
exception stack now triggers an exception (it could went unnoticed before).
The process stack is organized to be checked on context switch like other
threads. Now all threads have an explicit stack boundary pointer.
- (to be completed, most demos have to be edited)
(documentation to be updated)
(change to be ported to IAR and Keil ports)
(change to be ported to ARM and other ports)
diff --git a/todo.txt b/todo.txt
index 3db744655..2275caffa 100644
--- a/todo.txt
+++ b/todo.txt
@@ -8,12 +8,14 @@ N = Decided against.
Current Pipeline (2.3.x):
* lwIP 1.4.0 integration and test.
* Named threads.
+* Improved stack overflow checking, support main() thread.
+ * Move main stack to low memory in ARMCMx ports.
+ - Add guard pages support.
X Eclipse plugin.
X STM32L support.
X STM32L-Discovery demo and article.
-- Improved stack overflow checking, support main() thread, add guard pages
- support.
X File System infrastructure.
+X STM32F2xx support.
- Test suite overhaul, the API should be more generic in order to be used
with different subsystems and not just the kernel.
- STM32 USB support for double buffering.