change log for rtems (2010-12-03)
rtems-vc at rtems.org
rtems-vc at rtems.org
Fri Dec 3 10:10:54 UTC 2010
*sh*:
2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
* preinstall.am, shared/lpc/include/lpc-i2s.h,
shared/startup/linkcmds.armv4, shared/startup/linkcmds.armv7: New
files.
* Makefile.am: Added header and linker command files intended to be
used by every ARM BSP.
* shared/startup/linkcmds.base: Support for EABI and ARM ELF standard.
* shared/include/linker-symbols.h: Update due to linker command file
changes.
* shared/start/start.S, shared/include/start.h: Renamed entry symbol
from start to _start to avoid namespace conflicts. Update due to
linker command file changes.
M 1.83 c/src/lib/libbsp/arm/ChangeLog
M 1.15 c/src/lib/libbsp/arm/Makefile.am
A 1.1 c/src/lib/libbsp/arm/preinstall.am
M 1.7 c/src/lib/libbsp/arm/shared/include/linker-symbols.h
M 1.5 c/src/lib/libbsp/arm/shared/include/start.h
A 1.1 c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h
M 1.11 c/src/lib/libbsp/arm/shared/start/start.S
A 1.1 c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4
A 1.1 c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7
M 1.7 c/src/lib/libbsp/arm/shared/startup/linkcmds.base
diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.82 rtems/c/src/lib/libbsp/arm/ChangeLog:1.83
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.82 Tue Nov 23 10:01:09 2010
+++ rtems/c/src/lib/libbsp/arm/ChangeLog Fri Dec 3 03:23:51 2010
@@ -1,3 +1,17 @@
+2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+ * preinstall.am, shared/lpc/include/lpc-i2s.h,
+ shared/startup/linkcmds.armv4, shared/startup/linkcmds.armv7: New
+ files.
+ * Makefile.am: Added header and linker command files intended to be
+ used by every ARM BSP.
+ * shared/startup/linkcmds.base: Support for EABI and ARM ELF standard.
+ * shared/include/linker-symbols.h: Update due to linker command file
+ changes.
+ * shared/start/start.S, shared/include/start.h: Renamed entry symbol
+ from start to _start to avoid namespace conflicts. Update due to
+ linker command file changes.
+
2010-11-23 Gedare Bloom <giddyup44 at yahoo.com>
PR 1719/cpukit
diff -u rtems/c/src/lib/libbsp/arm/Makefile.am:1.14 rtems/c/src/lib/libbsp/arm/Makefile.am:1.15
--- rtems/c/src/lib/libbsp/arm/Makefile.am:1.14 Fri Apr 30 08:21:08 2010
+++ rtems/c/src/lib/libbsp/arm/Makefile.am Fri Dec 3 03:23:51 2010
@@ -9,6 +9,13 @@
## added but it is present in the source tree.
SUBDIRS = @RTEMS_BSP_FAMILY@
+include_bspdir = $(includedir)/bsp
+include_bsp_HEADERS = shared/include/linker-symbols.h
+
+dist_project_lib_DATA = shared/startup/linkcmds.base
+dist_project_lib_DATA += shared/startup/linkcmds.armv4
+dist_project_lib_DATA += shared/startup/linkcmds.armv7
+
EXTRA_DIST =
# comm
@@ -18,5 +25,6 @@
# abort
EXTRA_DIST += shared/abort/simple_abort.c
+include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../automake/subdirs.am
include $(top_srcdir)/../../../automake/local.am
diff -u /dev/null rtems/c/src/lib/libbsp/arm/preinstall.am:1.1
--- /dev/null Fri Dec 3 04:10:50 2010
+++ rtems/c/src/lib/libbsp/arm/preinstall.am Fri Dec 3 03:23:51 2010
@@ -0,0 +1,41 @@
+## Automatically generated by ampolish3 - Do not edit
+
+if AMPOLISH3
+$(srcdir)/preinstall.am: Makefile.am
+ $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
+endif
+
+PREINSTALL_DIRS =
+DISTCLEANFILES = $(PREINSTALL_DIRS)
+
+all-am: $(PREINSTALL_FILES)
+
+PREINSTALL_FILES =
+CLEANFILES = $(PREINSTALL_FILES)
+
+$(PROJECT_LIB)/$(dirstamp):
+ @$(MKDIR_P) $(PROJECT_LIB)
+ @: > $(PROJECT_LIB)/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
+
+$(PROJECT_INCLUDE)/bsp/$(dirstamp):
+ @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
+ @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+
+$(PROJECT_INCLUDE)/bsp/linker-symbols.h: shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h
+
+$(PROJECT_LIB)/linkcmds.base: shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
+
+$(PROJECT_LIB)/linkcmds.armv4: shared/startup/linkcmds.armv4 $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.armv4
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.armv4
+
+$(PROJECT_LIB)/linkcmds.armv7: shared/startup/linkcmds.armv7 $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.armv7
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.armv7
+
diff -u rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h:1.6 rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h:1.7
--- rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h:1.6 Mon Jun 21 07:28:36 2010
+++ rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h Fri Dec 3 03:23:52 2010
@@ -74,21 +74,31 @@
LINKER_SYMBOL(bsp_section_text_end)
LINKER_SYMBOL(bsp_section_text_size)
LINKER_SYMBOL(bsp_section_text_load_begin)
+LINKER_SYMBOL(bsp_section_text_load_end)
LINKER_SYMBOL(bsp_section_rodata_begin)
LINKER_SYMBOL(bsp_section_rodata_end)
LINKER_SYMBOL(bsp_section_rodata_size)
LINKER_SYMBOL(bsp_section_rodata_load_begin)
+LINKER_SYMBOL(bsp_section_rodata_load_end)
LINKER_SYMBOL(bsp_section_data_begin)
LINKER_SYMBOL(bsp_section_data_end)
LINKER_SYMBOL(bsp_section_data_size)
LINKER_SYMBOL(bsp_section_data_load_begin)
+LINKER_SYMBOL(bsp_section_data_load_end)
-LINKER_SYMBOL(bsp_section_fast_begin)
-LINKER_SYMBOL(bsp_section_fast_end)
-LINKER_SYMBOL(bsp_section_fast_size)
-LINKER_SYMBOL(bsp_section_fast_load_begin)
+LINKER_SYMBOL(bsp_section_fast_text_begin)
+LINKER_SYMBOL(bsp_section_fast_text_end)
+LINKER_SYMBOL(bsp_section_fast_text_size)
+LINKER_SYMBOL(bsp_section_fast_text_load_begin)
+LINKER_SYMBOL(bsp_section_fast_text_load_end)
+
+LINKER_SYMBOL(bsp_section_fast_data_begin)
+LINKER_SYMBOL(bsp_section_fast_data_end)
+LINKER_SYMBOL(bsp_section_fast_data_size)
+LINKER_SYMBOL(bsp_section_fast_data_load_begin)
+LINKER_SYMBOL(bsp_section_fast_data_load_end)
LINKER_SYMBOL(bsp_section_bss_begin)
LINKER_SYMBOL(bsp_section_bss_end)
@@ -106,6 +116,10 @@
LINKER_SYMBOL(bsp_vector_table_end)
LINKER_SYMBOL(bsp_vector_table_size)
+#define BSP_FAST_TEXT_SECTION __attribute__((section(".bsp_fast_text")))
+
+#define BSP_FAST_DATA_SECTION __attribute__((section(".bsp_fast_data")))
+
/** @} */
#ifdef __cplusplus
diff -u rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.4 rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.5
--- rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.4 Thu May 20 09:32:03 2010
+++ rtems/c/src/lib/libbsp/arm/shared/include/start.h Fri Dec 3 03:23:52 2010
@@ -38,14 +38,14 @@
* @{
*/
-#define BSP_START_SECTION __attribute__((section(".bsp_start")))
+#define BSP_START_TEXT_SECTION __attribute__((section(".bsp_start_text")))
#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
/**
* @brief System start entry.
*/
-void start(void);
+void _start(void);
/**
* @brief Start entry hook 0.
diff -u /dev/null rtems/c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h:1.1
--- /dev/null Fri Dec 3 04:10:51 2010
+++ rtems/c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h Fri Dec 3 03:23:52 2010
@@ -0,0 +1,131 @@
+/**
+ * @file
+ *
+ * @ingroup lpc_i2s
+ *
+ * @brief I2S API.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef LIBBSP_ARM_SHARED_LPC_I2S_H
+#define LIBBSP_ARM_SHARED_LPC_I2S_H
+
+#include <bsp/utility.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup lpc_dma I2S Support
+ *
+ * @ingroup lpc
+ *
+ * @brief I2S support.
+ *
+ * @{
+ */
+
+/**
+ * @brief I2S control block.
+ */
+typedef struct {
+ uint32_t dao;
+ uint32_t dai;
+ uint32_t txfifo;
+ uint32_t rxfifo;
+ uint32_t state;
+ uint32_t dma [2];
+ uint32_t irq;
+ uint32_t txrate;
+ uint32_t rxrate;
+} lpc_i2s;
+
+/**
+ * @name I2S Digital Audio Input and Output
+ *
+ * @{
+ */
+
+#define I2S_DAIO_WORDWIDTH(val) BSP_FLD32(val, 0, 1)
+#define I2S_DAIO_MONO BSP_BIT32(2)
+#define I2S_DAIO_STOP BSP_BIT32(3)
+#define I2S_DAIO_RESET BSP_BIT32(4)
+#define I2S_DAIO_WS_SEL BSP_BIT32(5)
+#define I2S_DAIO_WS_HALFPERIOD(val) BSP_FLD32(val, 6, 14)
+#define I2S_DAIO_MUTE BSP_BIT32(15)
+
+/** @} */
+
+/**
+ * @name I2S Status Feedback
+ *
+ * @{
+ */
+
+#define I2S_STATE_IRQ BSP_BIT32(0)
+#define I2S_STATE_DMAREQ_0 BSP_BIT32(1)
+#define I2S_STATE_DMAREQ_1 BSP_BIT32(2)
+#define I2S_STATE_RX_LEVEL_GET(reg) BSP_FLD32GET(reg, 8, 11)
+#define I2S_STATE_TX_LEVEL_GET(reg) BSP_FLD32GET(reg, 16, 19)
+
+/** @} */
+
+/**
+ * @name I2S DMA Configuration
+ *
+ * @{
+ */
+
+#define I2S_DMA_RX_ENABLE BSP_BIT32(0)
+#define I2S_DMA_TX_ENABLE BSP_BIT32(1)
+#define I2S_DMA_RX_DEPTH(val) BSP_FLD32(val, 8, 11)
+#define I2S_DMA_TX_DEPTH(val) BSP_FLD32(val, 16, 19)
+
+/** @} */
+
+/**
+ * @name I2S Interrupt Request Control
+ *
+ * @{
+ */
+
+#define I2S_IRQ_RX BSP_BIT32(0)
+#define I2S_IRQ_TX BSP_BIT32(1)
+#define I2S_IRQ_RX_DEPTH(val) BSP_FLD32(val, 8, 11)
+#define I2S_IRQ_TX_DEPTH(val) BSP_FLD32(val, 16, 19)
+
+/** @} */
+
+/**
+ * @name I2S Transmit and Receive Clock Rate
+ *
+ * @{
+ */
+
+#define LPC24XX_I2S_RATE(val) BSP_FLD32(val, 0, 9)
+#define LPC32XX_I2S_RATE_X_DIVIDER BSP_FLD32(val, 0, 7)
+#define LPC32XX_I2S_RATE_Y_DIVIDER BSP_FLD32(val, 8, 15)
+
+/** @} */
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_SHARED_LPC_I2S_H */
diff -u rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.10 rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.11
--- rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.10 Tue Nov 23 10:01:09 2010
+++ rtems/c/src/lib/libbsp/arm/shared/start/start.S Fri Dec 3 03:23:52 2010
@@ -32,10 +32,10 @@
/* Global symbols */
-.globl start
+.globl _start
.globl bsp_start_memcpy
-.section ".bsp_start", "ax"
+.section ".bsp_start_text", "ax"
.arm
@@ -63,7 +63,7 @@
#ifdef BSP_START_RESET_VECTOR
.word BSP_START_RESET_VECTOR
#else
- .word start
+ .word _start
#endif
handler_addr_undef:
@@ -96,7 +96,7 @@
/* Start entry */
-start:
+_start:
/*
* We do not save the context since we do not return to the boot
diff -u /dev/null rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4:1.1
--- /dev/null Fri Dec 3 04:10:51 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4 Fri Dec 3 03:23:52 2010
@@ -0,0 +1,38 @@
+/**
+ * @file
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief Linker command file for ARMv4T architecture.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 128;
+bsp_stack_abt_size = ALIGN (bsp_stack_abt_size, bsp_stack_align);
+
+bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 128;
+bsp_stack_fiq_size = ALIGN (bsp_stack_fiq_size, bsp_stack_align);
+
+bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 512;
+bsp_stack_irq_size = ALIGN (bsp_stack_irq_size, bsp_stack_align);
+
+bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 512;
+bsp_stack_svc_size = ALIGN (bsp_stack_svc_size, bsp_stack_align);
+
+bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 128;
+bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align);
+
+INCLUDE linkcmds.base
diff -u /dev/null rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7:1.1
--- /dev/null Fri Dec 3 04:10:51 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7 Fri Dec 3 03:23:52 2010
@@ -0,0 +1,26 @@
+/**
+ * @file
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief Linker command file for ARMv7 architecture.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+bsp_stack_main_size = DEFINED (bsp_stack_main_size) ? bsp_stack_main_size : 4096;
+bsp_stack_main_size = ALIGN (bsp_stack_main_size, bsp_stack_align);
+
+INCLUDE linkcmds.base
diff -u rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.6 rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.7
--- rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.6 Wed Jun 23 03:04:00 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base Fri Dec 3 03:23:52 2010
@@ -7,98 +7,72 @@
*/
/*
- * Copyright (c) 2008
- * Embedded Brains GmbH
- * Obere Lagerstr. 30
- * D-82178 Puchheim
- * Germany
- * rtems at embedded-brains.de
+ * Copyright (c) 2008-2010 embedded brains GmbH. All rights reserved.
*
- * The license and distribution terms for this file may be found in the file
- * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE.
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
*/
OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
OUTPUT_ARCH (arm)
-ENTRY (start)
-
-bsp_vector_table_size = 64;
+ENTRY (_start)
/*
- * BSP: Global symbols that may be defined externally
+ * Global symbols that may be defined externally
*/
-bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 4;
-
-bsp_section_align = DEFINED (bsp_section_align) ? bsp_section_align : 32;
-
-bsp_section_start_end_align = DEFINED (bsp_section_start_end_align) ? bsp_section_start_end_align : bsp_section_align;
-bsp_section_vector_end_align = DEFINED (bsp_section_vector_end_align) ? bsp_section_vector_end_align : bsp_section_align;
-bsp_section_text_end_align = DEFINED (bsp_section_text_end_align) ? bsp_section_text_end_align : bsp_section_align;
-bsp_section_rodata_end_align = DEFINED (bsp_section_rodata_end_align) ? bsp_section_rodata_end_align : bsp_section_align;
-bsp_section_data_end_align = DEFINED (bsp_section_data_end_align) ? bsp_section_data_end_align : bsp_section_align;
-bsp_section_fast_end_align = DEFINED (bsp_section_fast_end_align) ? bsp_section_fast_end_align : bsp_section_align;
-bsp_section_bss_end_align = DEFINED (bsp_section_bss_end_align) ? bsp_section_bss_end_align : bsp_section_align;
+bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;
bsp_section_vbarrier_align = DEFINED (bsp_section_vbarrier_align) ? bsp_section_vbarrier_align : 1;
bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
-bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 128;
+bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8;
+
+bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 0;
bsp_stack_abt_size = ALIGN (bsp_stack_abt_size, bsp_stack_align);
-bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 128;
+bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 0;
bsp_stack_fiq_size = ALIGN (bsp_stack_fiq_size, bsp_stack_align);
-bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 512;
+bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 0;
bsp_stack_irq_size = ALIGN (bsp_stack_irq_size, bsp_stack_align);
-bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 512;
+bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 0;
bsp_stack_svc_size = ALIGN (bsp_stack_svc_size, bsp_stack_align);
-bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 128;
+bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 0;
bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align);
+bsp_stack_main_size = DEFINED (bsp_stack_main_size) ? bsp_stack_main_size : 0;
+bsp_stack_main_size = ALIGN (bsp_stack_main_size, bsp_stack_align);
+
+/* FIXME: This should go away when LD is fixed */
+bsp_section_align = DEFINED (bsp_section_align) ? bsp_section_align : 32;
+
SECTIONS {
.start : {
- /*
- * BSP: Begin of start section
- */
bsp_section_start_begin = .;
-
- /*
- * BSP: System startup entry
- */
- KEEP (*(.bsp_start))
+ KEEP (*(.bsp_start_text))
KEEP (*(.bsp_start_data))
-
- . = ALIGN (bsp_section_start_end_align);
-
- /*
- * BSP: End of start section
- */
+ . = ALIGN (bsp_section_align);
bsp_section_start_end = .;
} > REGION_START AT > REGION_START
-
bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
.vector : {
- /*
- * BSP: Begin of vector section
- */
bsp_section_vector_begin = .;
- /*
- * BSP: Reserve space for the the exception vector table and
- * the pointers to the default exceptions handlers.
- */
. = . + DEFINED (bsp_vector_table_in_start_section) ? 0 : bsp_vector_table_size;
- /*
- * BSP: Reserve space for mode stacks
- */
-
. = ALIGN (bsp_stack_align);
bsp_stack_abt_begin = .;
@@ -121,21 +95,15 @@
. = . + bsp_stack_und_size;
bsp_stack_und_end = .;
- /*
- * BSP: Special vector data
- */
- *(.bsp_vector)
-
- . = ALIGN (bsp_section_vector_end_align);
+ bsp_stack_main_begin = .;
+ . = . + bsp_stack_main_size;
+ bsp_stack_main_end = .;
- /*
- * BSP: End of vector section
- */
+ *(.bsp_vector)
+ . = ALIGN (bsp_section_align);
bsp_section_vector_end = .;
} > REGION_VECTOR AT > REGION_VECTOR
-
bsp_section_vector_size = bsp_section_vector_end - bsp_section_vector_begin;
-
bsp_vector_table_begin = DEFINED (bsp_vector_table_in_start_section) ? bsp_section_start_begin : bsp_section_vector_begin;
bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
@@ -143,108 +111,164 @@
. = ALIGN (bsp_section_vbarrier_align);
} > REGION_VECTOR
- .text : {
- /*
- * BSP: Begin of text section
- */
+ .interp : {
bsp_section_text_begin = .;
-
- /*
- * BSP: Moved into .text from .init
- */
+ *(.interp)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .note.gnu.build-id : {
+ *(.note.gnu.build-id)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .hash : {
+ *(.hash)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .gnu.hash : {
+ *(.gnu.hash)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .dynsym : {
+ *(.dynsym)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .dynstr : {
+ *(.dynstr)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .gnu.version : {
+ *(.gnu.version)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .gnu.version_d : {
+ *(.gnu.version_d)
+ . = ALIGN (bsp_section_align);
+ }
+ > REGION_TEXT AT > REGION_TEXT_LOAD
+ .gnu.version_r : {
+ *(.gnu.version_r)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .rel.dyn : {
+ *(.rel.init)
+ *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
+ *(.rel.fini)
+ *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
+ *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
+ *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
+ *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
+ *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
+ *(.rel.ctors)
+ *(.rel.dtors)
+ *(.rel.got)
+ *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
+ PROVIDE_HIDDEN (__rel_iplt_start = .);
+ *(.rel.iplt)
+ PROVIDE_HIDDEN (__rel_iplt_end = .);
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .rela.dyn : {
+ *(.rela.init)
+ *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+ *(.rela.fini)
+ *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+ *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+ *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+ *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+ *(.rela.ctors)
+ *(.rela.dtors)
+ *(.rela.got)
+ *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+ PROVIDE_HIDDEN (__rel_iplt_start = .);
+ PROVIDE_HIDDEN (__rel_iplt_end = .);
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .rel.plt : {
+ *(.rel.plt)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .rela.plt : {
+ *(.rela.plt)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .init : {
KEEP (*(.init))
-
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .fini : {
+ KEEP (*(.fini))
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .plt : {
+ *(.plt)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .iplt : {
+ *(.iplt)
+ . = ALIGN (bsp_section_align);
+ } > REGION_TEXT AT > REGION_TEXT_LOAD
+ .text : {
+ *(.text.unlikely .text.*_unlikely)
*(.text .stub .text.* .gnu.linkonce.t.*)
- KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
-
- /*
- * BSP: Magic ARM stuff
- */
- *(.ARM.*)
- *(.glue_7)
- *(.glue_7t)
- *(.vfp11_veneer)
-
- /*
- * BSP: Special FreeBSD sysctl sections
- */
- . = ALIGN (16);
- __start_set_sysctl_set = .;
- *(set_sysctl_*);
- __stop_set_sysctl_set = ABSOLUTE(.);
- *(set_domain_*);
- *(set_pseudo_*);
-
- /*
- * BSP: Moved into .text from .*
- */
- *(.eh_frame_hdr)
-
- /*
- * BSP: Required by cpukit/score/src/threadhandler.c
- */
- PROVIDE (_fini = .);
-
- /*
- * BSP: Moved into .text from .fini
- */
- KEEP (*(.fini))
-
- . = ALIGN (bsp_section_text_end_align);
-
- /*
- * BSP: End of text section
- */
+ *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
+ . = ALIGN (bsp_section_align);
bsp_section_text_end = .;
} > REGION_TEXT AT > REGION_TEXT_LOAD
-
bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
+ bsp_section_text_load_begin = LOADADDR (.interp);
+ bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
- bsp_section_text_load_begin = LOADADDR (.text);
-
- .rodata : {
- /*
- * BSP: Begin of rodata section
- */
+ .rodata1 : {
bsp_section_rodata_begin = .;
-
- __start_set_modmetadata_set = .;
- *(set_modmetadata_set);
- __stop_set_modmetadata_set = .;
-
- /*
- * BSP: Moved into .rodata from .*
- */
- *(.rodata .rodata.* .gnu.linkonce.r.*)
*(.rodata1)
-
- . = ALIGN (bsp_section_rodata_end_align);
-
- /*
- * BSP: End of rodata section
- */
- bsp_section_rodata_end = .;
+ . = ALIGN (bsp_section_align);
} > REGION_RODATA AT > REGION_RODATA_LOAD
-
- bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
-
- bsp_section_rodata_load_begin = LOADADDR (.rodata);
-
- .robarrier : {
- . = ALIGN (bsp_section_robarrier_align);
- } > REGION_RODATA
-
- .data : {
- /*
- * BSP: Begin of data section
- */
- bsp_section_data_begin = .;
-
- /*
- * BSP: Moved into .data from .ctors
- */
+ .ARM.extab : {
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .ARM.exidx : {
+ __exidx_start = .;
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ __exidx_end = .;
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .eh_frame : {
+ KEEP (*(.eh_frame))
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .gcc_except_table : {
+ *(.gcc_except_table .gcc_except_table.*)
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .preinit_array : {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .init_array : {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .fini_array : {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(.fini_array))
+ KEEP (*(SORT(.fini_array.*)))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .ctors : {
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
@@ -263,119 +287,137 @@
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
-
- /*
- * BSP: Moved into .data from .dtors
- */
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .dtors : {
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
-
- /*
- * BSP: Moved into .data from .*
- */
- *(.data1)
- KEEP (*(.eh_frame))
- *(.gcc_except_table .gcc_except_table.*)
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .data.rel.ro : {
+ *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
+ *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .jcr : {
KEEP (*(.jcr))
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .dynamic : {
+ *(.dynamic)
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .got : {
+ *(.got.plt) *(.igot.plt) *(.got) *(.igot)
+ . = ALIGN (bsp_section_align);
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ .rodata : {
+ /* Special FreeBSD sysctl sections */
+ . = ALIGN (16);
+ __start_set_sysctl_set = .;
+ *(set_sysctl_*);
+ __stop_set_sysctl_set = ABSOLUTE(.);
+ *(set_domain_*);
+ *(set_pseudo_*);
+ _bsd__start_set_sysinit_set = .;
+ *(_bsd_set_sysinit_set);
+ _bsd__stop_set_sysinit_set = .;
+ _bsd__start_set_modmetadata_set = .;
+ *(_bsd_set_modmetadata_set);
+ _bsd__stop_set_modmetadata_set = .;
+ _bsd__start_set_sysctl_set = .;
+ *(_bsd_set_sysctl_set);
+ _bsd__stop_set_sysctl_set = .;
- *(.data .data.* .gnu.linkonce.d.*)
- KEEP (*(.gnu.linkonce.d.*personality*))
- SORT(CONSTRUCTORS)
+ *(.rodata .rodata.* .gnu.linkonce.r.*)
+ . = ALIGN (bsp_section_align);
+ bsp_section_rodata_end = .;
+ } > REGION_RODATA AT > REGION_RODATA_LOAD
+ bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
+ bsp_section_rodata_load_begin = LOADADDR (.rodata1);
+ bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
- . = ALIGN (bsp_section_data_end_align);
+ .robarrier : {
+ . = ALIGN (bsp_section_robarrier_align);
+ } > REGION_RODATA
- /*
- * BSP: End of data section
- */
+ .data1 : {
+ bsp_section_data_begin = .;
+ *(.data1)
+ . = ALIGN (bsp_section_align);
+ } > REGION_DATA AT > REGION_DATA_LOAD
+ .data : {
+ *(.data .data.* .gnu.linkonce.d.*)
+ SORT(CONSTRUCTORS)
+ . = ALIGN (bsp_section_align);
bsp_section_data_end = .;
} > REGION_DATA AT > REGION_DATA_LOAD
-
bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
+ bsp_section_data_load_begin = LOADADDR (.data1);
+ bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
- bsp_section_data_load_begin = LOADADDR (.data);
-
- .fast : {
- bsp_section_fast_begin = .;
-
- *(.bsp_fast)
-
- . = ALIGN (bsp_section_fast_end_align);
-
- bsp_section_fast_end = .;
+ .fast_text : {
+ bsp_section_fast_text_begin = .;
+ *(.bsp_fast_text)
+ . = ALIGN (bsp_section_align);
+ bsp_section_fast_text_end = .;
} > REGION_FAST AT > REGION_FAST_LOAD
-
- bsp_section_fast_size = bsp_section_fast_end - bsp_section_fast_begin;
-
- bsp_section_fast_load_begin = LOADADDR (.fast);
+ bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
+ bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
+ bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
+
+ .fast_data : {
+ bsp_section_fast_data_begin = .;
+ *(.bsp_fast_data)
+ . = ALIGN (bsp_section_align);
+ bsp_section_fast_data_end = .;
+ } > REGION_FAST AT > REGION_FAST_LOAD
+ bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
+ bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
+ bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
.bss : {
- /*
- * BSP: Begin of bss section
- */
bsp_section_bss_begin = .;
-
- *(COMMON)
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
-
- . = ALIGN (bsp_section_bss_end_align);
-
- /*
- * BSP: End of bss section
- */
+ *(COMMON)
+ . = ALIGN (bsp_section_align);
bsp_section_bss_end = .;
} > REGION_BSS AT > REGION_BSS
-
bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
.work : {
/*
- * BSP: Begin of work section. The work section will occupy
- * the remaining REGION_WORK region and contains the RTEMS work
- * space and heap.
+ * The work section will occupy the remaining REGION_WORK region and
+ * contains the RTEMS work space and heap.
*/
bsp_section_work_begin = .;
-
. += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
-
- /*
- * BSP: End of work section
- */
bsp_section_work_end = .;
} > REGION_WORK AT > REGION_WORK
-
bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
.stack : {
/*
- * BSP: Begin of stack section. The stack section will occupy
- * the remaining REGION_STACK region and may contain the task
- * stacks. Depending on the region distribution this section
- * may be of zero size.
+ * The stack section will occupy the remaining REGION_STACK region and may
+ * contain the task stacks. Depending on the region distribution this
+ * section may be of zero size.
*/
bsp_section_stack_begin = .;
-
. += ORIGIN (REGION_STACK) + LENGTH (REGION_STACK) - ABSOLUTE (.);
-
- /*
- * BSP: End of stack section
- */
bsp_section_stack_end = .;
} > REGION_STACK AT > REGION_STACK
-
bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
- /*
- * BSP: External symbols (FIXME)
- */
+ /* FIXME */
RamBase = ORIGIN (REGION_WORK);
RamSize = LENGTH (REGION_WORK);
WorkAreaBase = bsp_section_work_begin;
HeapSize = 0;
-
+
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
@@ -412,16 +454,10 @@
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
- .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
-
- /DISCARD/ : {
- *(.note.GNU-stack) *(.gnu_debuglink)
- }
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
+ .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
+ /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
- /*
- * BSP: Catch all unknown sections
- */
- .nirvana : {
- *(*)
- } > NIRVANA
+ /* Catch all unknown sections */
+ .nirvana : { *(*) } > NIRVANA
}
*sh*:
2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
* include/lpc32xx.h: Added I2S module.
* Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
startup/linkcmds.lpc32xx, startup/linkcmds.lpc32xx_mzx,
startup/linkcmds.lpc32xx_mzx_stage_1,
startup/linkcmds.lpc32xx_mzx_stage_2,
startup/linkcmds.lpc32xx_phycore: Update due to linker command file
changes.
M 1.21 c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M 1.9 c/src/lib/libbsp/arm/lpc32xx/Makefile.am
M 1.2 c/src/lib/libbsp/arm/lpc32xx/bsp_specs
M 1.11 c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h
M 1.8 c/src/lib/libbsp/arm/lpc32xx/preinstall.am
M 1.10 c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c
M 1.2 c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx
M 1.2 c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx
M 1.2 c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1
M 1.2 c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2
M 1.4 c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.20 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.21
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.20 Fri Nov 12 07:29:14 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog Fri Dec 3 03:29:07 2010
@@ -1,3 +1,13 @@
+2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+ * include/lpc32xx.h: Added I2S module.
+ * Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
+ startup/linkcmds.lpc32xx, startup/linkcmds.lpc32xx_mzx,
+ startup/linkcmds.lpc32xx_mzx_stage_1,
+ startup/linkcmds.lpc32xx_mzx_stage_2,
+ startup/linkcmds.lpc32xx_phycore: Update due to linker command file
+ changes.
+
2010-11-12 Sebastian Huber <sebastian.huber at embedded-brains.de>
* rtc/rtc-config.c: Fixed type.
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.8 rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.9
--- rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.8 Thu Oct 21 08:58:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am Fri Dec 3 03:29:07 2010
@@ -35,10 +35,10 @@
include_bsp_HEADERS += ../../shared/include/stackalloc.h
include_bsp_HEADERS += ../../shared/include/uart-output-char.h
include_bsp_HEADERS += ../../shared/tod.h
-include_bsp_HEADERS += ../shared/include/linker-symbols.h
include_bsp_HEADERS += ../shared/include/start.h
include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h
include_bsp_HEADERS += ../shared/lpc/include/lpc-dma.h
+include_bsp_HEADERS += ../shared/lpc/include/lpc-i2s.h
include_bsp_HEADERS += include/irq.h
include_bsp_HEADERS += include/mmu.h
include_bsp_HEADERS += include/lpc32xx.h
@@ -64,7 +64,6 @@
project_lib_DATA += startup/linkcmds
project_lib_DATA += startup/linkcmds.lpc32xx
-project_lib_DATA += ../shared/startup/linkcmds.base
EXTRA_DIST = startup/linkcmds.lpc32xx_phycore \
startup/linkcmds.lpc32xx_mzx_stage_1 \
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs:1.1 Tue Dec 15 09:20:47 2009
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs Fri Dec 3 03:29:07 2010
@@ -4,7 +4,7 @@
*startfile:
%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e start}}
+%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.10 rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.11
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.10 Thu Oct 14 04:37:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h Fri Dec 3 03:29:07 2010
@@ -27,6 +27,7 @@
#include <bsp/utility.h>
#include <bsp/lpc-timer.h>
#include <bsp/lpc-dma.h>
+#include <bsp/lpc-i2s.h>
/**
* @defgroup lpc32xx_reg Register Definitions
@@ -232,9 +233,6 @@
} lpc32xx_spi;
typedef struct {
-} lpc32xx_i2s;
-
-typedef struct {
} lpc32xx_sd_card;
typedef struct {
@@ -501,12 +499,12 @@
uint32_t reserved_3 [LPC32XX_RESERVED(0x2008c000, 0x20090000, lpc32xx_ssp)];
lpc32xx_spi spi_2;
uint32_t reserved_4 [LPC32XX_RESERVED(0x20090000, 0x20094000, lpc32xx_spi)];
- lpc32xx_i2s i2s_0;
- uint32_t reserved_5 [LPC32XX_RESERVED(0x20094000, 0x20098000, lpc32xx_i2s)];
+ lpc_i2s i2s_0;
+ uint32_t reserved_5 [LPC32XX_RESERVED(0x20094000, 0x20098000, lpc_i2s)];
lpc32xx_sd_card sd_card;
uint32_t reserved_6 [LPC32XX_RESERVED(0x20098000, 0x2009c000, lpc32xx_sd_card)];
- lpc32xx_i2s i2s_1;
- uint32_t reserved_7 [LPC32XX_RESERVED(0x2009c000, 0x200a8000, lpc32xx_i2s)];
+ lpc_i2s i2s_1;
+ uint32_t reserved_7 [LPC32XX_RESERVED(0x2009c000, 0x200a8000, lpc_i2s)];
lpc32xx_nand_mlc nand_mlc;
uint32_t reserved_8 [LPC32XX_RESERVED(0x200a8000, 0x31000000, lpc32xx_nand_mlc)];
lpc_dma dma;
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.7 rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.8
--- rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.7 Thu Oct 21 08:58:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am Fri Dec 3 03:29:07 2010
@@ -86,10 +86,6 @@
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/tod.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/tod.h
-$(PROJECT_INCLUDE)/bsp/linker-symbols.h: ../shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-
$(PROJECT_INCLUDE)/bsp/start.h: ../shared/include/start.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/start.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/start.h
@@ -102,6 +98,10 @@
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-dma.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-dma.h
+$(PROJECT_INCLUDE)/bsp/lpc-i2s.h: ../shared/lpc/include/lpc-i2s.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+
$(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
@@ -158,7 +158,3 @@
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc32xx
TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc32xx
-$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
-TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
-
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.9 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.10
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.9 Tue Sep 28 09:38:26 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c Fri Dec 3 03:29:07 2010
@@ -44,7 +44,7 @@
LINKER_SYMBOL(lpc32xx_translation_table_base);
-static void BSP_START_SECTION clear_bss(void)
+static void BSP_START_TEXT_SECTION clear_bss(void)
{
const int *end = (const int *) bsp_section_bss_end;
int *out = (int *) bsp_section_bss_begin;
@@ -66,6 +66,14 @@
static const BSP_START_DATA_SECTION lpc32xx_mmu_config
lpc32xx_mmu_config_table [] = {
{
+ .begin = (uint32_t) bsp_section_fast_text_begin,
+ .end = (uint32_t) bsp_section_fast_text_end,
+ .flags = LPC32XX_MMU_CODE
+ }, {
+ .begin = (uint32_t) bsp_section_fast_data_begin,
+ .end = (uint32_t) bsp_section_fast_data_end,
+ .flags = LPC32XX_MMU_READ_WRITE_DATA
+ }, {
.begin = (uint32_t) bsp_section_start_begin,
.end = (uint32_t) bsp_section_start_end,
.flags = LPC32XX_MMU_CODE
@@ -86,10 +94,6 @@
.end = (uint32_t) bsp_section_data_end,
.flags = LPC32XX_MMU_READ_WRITE_DATA
}, {
- .begin = (uint32_t) bsp_section_fast_begin,
- .end = (uint32_t) bsp_section_fast_end,
- .flags = LPC32XX_MMU_CODE
- }, {
.begin = (uint32_t) bsp_section_bss_begin,
.end = (uint32_t) bsp_section_bss_end,
.flags = LPC32XX_MMU_READ_WRITE_DATA
@@ -124,7 +128,7 @@
}
};
- static void BSP_START_SECTION set_translation_table_entries(
+ static void BSP_START_TEXT_SECTION set_translation_table_entries(
uint32_t *ttb,
const lpc32xx_mmu_config *config
)
@@ -141,7 +145,7 @@
}
}
- static void BSP_START_SECTION
+ static void BSP_START_TEXT_SECTION
setup_translation_table_and_enable_mmu(uint32_t ctrl)
{
uint32_t const dac =
@@ -169,7 +173,7 @@
}
#endif
-static void BSP_START_SECTION setup_mmu_and_cache(void)
+static void BSP_START_TEXT_SECTION setup_mmu_and_cache(void)
{
uint32_t ctrl = 0;
@@ -192,7 +196,7 @@
#error "unexpected main oscillator frequency"
#endif
-static void BSP_START_SECTION setup_pll(void)
+static void BSP_START_TEXT_SECTION setup_pll(void)
{
uint32_t pwr_ctrl = LPC32XX_PWR_CTRL;
@@ -211,13 +215,13 @@
}
}
-void BSP_START_SECTION bsp_start_hook_0(void)
+void BSP_START_TEXT_SECTION bsp_start_hook_0(void)
{
setup_pll();
setup_mmu_and_cache();
}
-static void BSP_START_SECTION stop_dma_activities(void)
+static void BSP_START_TEXT_SECTION stop_dma_activities(void)
{
#ifdef LPC32XX_STOP_GPDMA
if ((LPC32XX_DMACLK_CTRL & 0x1) != 0) {
@@ -251,7 +255,7 @@
#endif
}
-static void BSP_START_SECTION setup_uarts(void)
+static void BSP_START_TEXT_SECTION setup_uarts(void)
{
uint32_t uartclk_ctrl = 0;
@@ -286,7 +290,7 @@
#endif
}
-static void BSP_START_SECTION setup_timer(void)
+static void BSP_START_TEXT_SECTION setup_timer(void)
{
volatile lpc_timer *timer = LPC32XX_STANDARD_TIMER;
@@ -301,7 +305,7 @@
timer->tcr = LPC_TIMER_TCR_EN;
}
-void BSP_START_SECTION bsp_start_hook_1(void)
+void BSP_START_TEXT_SECTION bsp_start_hook_1(void)
{
stop_dma_activities();
setup_uarts();
@@ -331,12 +335,20 @@
(size_t) bsp_section_data_size
);
- /* Copy .fast section */
+ /* Copy .fast_text section */
+ arm_cp15_instruction_cache_invalidate();
+ bsp_start_memcpy(
+ (int *) bsp_section_fast_text_begin,
+ (const int *) bsp_section_fast_text_load_begin,
+ (size_t) bsp_section_fast_text_size
+ );
+
+ /* Copy .fast_data section */
arm_cp15_instruction_cache_invalidate();
bsp_start_memcpy(
- (int *) bsp_section_fast_begin,
- (const int *) bsp_section_fast_load_begin,
- (size_t) bsp_section_fast_size
+ (int *) bsp_section_fast_data_begin,
+ (const int *) bsp_section_fast_data_load_begin,
+ (size_t) bsp_section_fast_data_size
);
/* Clear .bss section */
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx Fri Dec 3 03:29:07 2010
@@ -14,4 +14,4 @@
lpc32xx_magic_zero_end = 0x07000000;
lpc32xx_magic_zero_size = lpc32xx_magic_zero_end - lpc32xx_magic_zero_end;
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx Fri Dec 3 03:29:07 2010
@@ -35,10 +35,10 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 256k
- RAM_MMU (AIW) : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
- RAM_EXT (AIW) : ORIGIN = 0x80004000, LENGTH = 32M - 16k /* SDRAM on DYCS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
+ RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
+ RAM_EXT : ORIGIN = 0x80004000, LENGTH = 32M - 16k /* SDRAM on DYCS0 */
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1 Fri Dec 3 03:29:08 2010
@@ -35,10 +35,10 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 232k
- RAM_VEC (AIW) : ORIGIN = 0x0803a000, LENGTH = 8k
- RAM_MMU (AIW) : ORIGIN = 0x0803c000, LENGTH = 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT : ORIGIN = 0x08000000, LENGTH = 232k
+ RAM_VEC : ORIGIN = 0x0803a000, LENGTH = 8k
+ RAM_MMU : ORIGIN = 0x0803c000, LENGTH = 16k
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_INT);
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2 Fri Dec 3 03:29:08 2010
@@ -35,10 +35,10 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 256k
- RAM_MMU (AIW) : ORIGIN = 0x81c00000, LENGTH = 16k /* SDRAM on DYCS0 */
- RAM_EXT (AIW) : ORIGIN = 0x81c04000, LENGTH = 4M - 16k /* SDRAM on DYCS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
+ RAM_MMU : ORIGIN = 0x81c00000, LENGTH = 16k /* SDRAM on DYCS0 */
+ RAM_EXT : ORIGIN = 0x81c04000, LENGTH = 4M - 16k /* SDRAM on DYCS0 */
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.3 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore Fri Dec 3 03:29:08 2010
@@ -36,11 +36,11 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 256k
- RAM_MMU (AIW) : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
- RAM_EXT (AIW) : ORIGIN = 0x80004000, LENGTH = 64M - 16k /* SDRAM on DYCS0 */
- ROM_EXT (RX) : ORIGIN = 0xe0000000, LENGTH = 2M /* NOR flash on CS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
+ RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
+ RAM_EXT : ORIGIN = 0x80004000, LENGTH = 64M - 16k /* SDRAM on DYCS0 */
+ ROM_EXT : ORIGIN = 0xe0000000, LENGTH = 2M /* NOR flash on CS0 */
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
*sh*:
2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
* include/lcd.h, misc/lcd.c: New files.
* misc/io.c, include/io.h: Documentation, bug fixes, more
configurations.
* include/lpc24xx.h: Added DAC and I2S.
* Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
startup/linkcmds.lpc2362, startup/linkcmds.lpc23xx_tli800,
startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
startup/linkcmds.lpc24xx_ncs_rom_ext,
startup/linkcmds.lpc24xx_ncs_rom_int: Update due to linker command
file changes.
M 1.59 c/src/lib/libbsp/arm/lpc24xx/ChangeLog
M 1.30 c/src/lib/libbsp/arm/lpc24xx/Makefile.am
M 1.3 c/src/lib/libbsp/arm/lpc24xx/bsp_specs
M 1.4 c/src/lib/libbsp/arm/lpc24xx/include/io.h
A 1.1 c/src/lib/libbsp/arm/lpc24xx/include/lcd.h
M 1.13 c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h
M 1.8 c/src/lib/libbsp/arm/lpc24xx/misc/io.c
A 1.1 c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c
M 1.20 c/src/lib/libbsp/arm/lpc24xx/preinstall.am
M 1.7 c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c
M 1.4 c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362
M 1.2 c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800
M 1.3 c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
M 1.3 c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
M 1.3 c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
M 1.3 c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.58 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.59
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.58 Fri Nov 12 07:45:33 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog Fri Dec 3 03:56:47 2010
@@ -1,3 +1,16 @@
+2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
+
+ * include/lcd.h, misc/lcd.c: New files.
+ * misc/io.c, include/io.h: Documentation, bug fixes, more
+ configurations.
+ * include/lpc24xx.h: Added DAC and I2S.
+ * Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
+ startup/linkcmds.lpc2362, startup/linkcmds.lpc23xx_tli800,
+ startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
+ startup/linkcmds.lpc24xx_ncs_rom_ext,
+ startup/linkcmds.lpc24xx_ncs_rom_int: Update due to linker command
+ file changes.
+
2010-11-12 Sebastian Huber <sebastian.huber at embedded-brains.de>
* misc/system-clocks.c: Use define instead of function call to allow
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.29 rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.30
--- rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.29 Wed Jun 23 03:11:28 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am Fri Dec 3 03:56:47 2010
@@ -34,9 +34,9 @@
include_bsp_HEADERS += ../../shared/include/stackalloc.h
include_bsp_HEADERS += ../../shared/include/uart-output-char.h
include_bsp_HEADERS += ../../shared/tod.h
-include_bsp_HEADERS += ../shared/include/linker-symbols.h
include_bsp_HEADERS += ../shared/include/start.h
include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h
+include_bsp_HEADERS += ../shared/lpc/include/lpc-i2s.h
include_bsp_HEADERS += include/irq.h
include_bsp_HEADERS += include/lpc24xx.h
include_bsp_HEADERS += include/system-clocks.h
@@ -44,6 +44,7 @@
include_bsp_HEADERS += include/dma.h
include_bsp_HEADERS += include/i2c.h
include_bsp_HEADERS += include/io.h
+include_bsp_HEADERS += include/lcd.h
include_bsp_HEADERS += include/lpc-clock-config.h
include_bsp_HEADERS += include/lpc-ethernet-config.h
@@ -62,7 +63,6 @@
project_lib_DATA = start.$(OBJEXT)
project_lib_DATA += startup/linkcmds
-project_lib_DATA += ../shared/startup/linkcmds.base
EXTRA_DIST = startup/linkcmds.lpc24xx_ea
EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_int
EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_ext
@@ -123,6 +123,7 @@
misc/dma-copy.c \
misc/bspidle.c \
misc/io.c \
+ misc/lcd.c \
misc/timer.c
# SSP
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs:1.2 Thu Dec 4 14:30:17 2008
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs Fri Dec 3 03:56:47 2010
@@ -4,7 +4,7 @@
*startfile:
%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e start}}
+%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h:1.3 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h Fri Dec 3 03:56:47 2010
@@ -37,6 +37,65 @@
*
* @brief Input and output module.
*
+ * <table>
+ * <tr><th>Module</th><th>Configuration</th><th>First Pin</th><th>Last Pin</th></tr>
+ * <tr><td>UART 0</td><td>0</td><td>P0.2</td><td>P0.3</td></tr>
+ * <tr><td rowspan=3>UART 1</td><td>0</td><td>P0.15</td><td>P0.16</td></tr>
+ * <tr><td>1</td><td>P2.0</td><td>P2.1</td></tr>
+ * <tr><td>2</td><td>P3.16</td><td>P3.17</td></tr>
+ * <tr><td rowspan=3>UART 2</td><td>0</td><td>P0.10</td><td>P0.11</td></tr>
+ * <tr><td>1</td><td>P2.8</td><td>P2.9</td></tr>
+ * <tr><td>2</td><td>P4.22</td><td>P4.23</td></tr>
+ * <tr><td rowspan=3>UART 3</td><td>0</td><td>P0.0</td><td>P0.1</td></tr>
+ * <tr><td>1</td><td>P0.25</td><td>P0.26</td></tr>
+ * <tr><td>2</td><td>P4.28</td><td>P4.29</td></tr>
+ * <tr><td rowspan=5>ETHERNET</td><td>0</td><td>P1.0</td><td>P1.17</td></tr>
+ * <tr><td rowspan=4>1</td><td>P1.0</td><td>P1.1</td></tr>
+ * <tr><td>P1.4</td><td>P1.4</td></tr>
+ * <tr><td>P1.8</td><td>P1.10</td></tr>
+ * <tr><td>P1.14</td><td>P1.17</td></tr>
+ * <tr><td rowspan=4>ADC</td><td>0</td><td>P0.12</td><td>P0.13</td></tr>
+ * <tr><td>1</td><td>P0.23</td><td>P0.25</td></tr>
+ * <tr><td rowspan=2>2</td><td>P0.26</td><td>P0.26</td></tr>
+ * <tr><td>P1.30</td><td>P1.31</td></tr>
+ * <tr><td>I2C 0</td><td>0</td><td>P0.27</td><td>P0.28</td></tr>
+ * <tr><td rowspan=3>I2C 1</td><td>0</td><td>P0.0</td><td>P0.1</td></tr>
+ * <tr><td>1</td><td>P0.19</td><td>P0.20</td></tr>
+ * <tr><td>2</td><td>P2.14</td><td>P2.15</td></tr>
+ * <tr><td rowspan=3>I2C 2</td><td>0</td><td>P0.10</td><td>P0.11</td></tr>
+ * <tr><td>1</td><td>P2.30</td><td>P2.31</td></tr>
+ * <tr><td>2</td><td>P4.20</td><td>P4.21</td></tr>
+ * <tr><td rowspan=3>I2S</td><td>0</td><td>P0.4</td><td>P0.9</td></tr>
+ * <tr><td rowspan=2>1</td><td>P0.23</td><td>P0.25</td></tr>
+ * <tr><td>P2.11</td><td>P2.13</td></tr>
+ * <tr><td rowspan=5>SSP 0</td><td>0</td><td>P0.15</td><td>P0.18</td></tr>
+ * <tr><td rowspan=2>1</td><td>P1.20</td><td>P0.21</td></tr>
+ * <tr><td>P1.23</td><td>P0.24</td></tr>
+ * <tr><td rowspan=2>2</td><td>P2.22</td><td>P2.23</td></tr>
+ * <tr><td>P2.26</td><td>P2.27</td></tr>
+ * <tr><td rowspan=5>SSP 1</td><td>0</td><td>P0.6</td><td>P0.9</td></tr>
+ * <tr><td rowspan=3>1</td><td>P0.12</td><td>P0.13</td></tr>
+ * <tr><td>P0.14</td><td>P0.14</td></tr>
+ * <tr><td>P1.31</td><td>P1.31</td></tr>
+ * <tr><td>2</td><td>P4.20</td><td>P4.23</td></tr>
+ * <tr><td rowspan=2>USB</td><td rowspan=2>0</td><td>P0.29</td><td>P0.30</td></tr>
+ * <tr><td>P1.19</td><td>P1.19</td></tr>
+ * <tr><td>SPI</td><td>0</td><td>P0.15</td><td>P0.18</td></tr>
+ * <tr><td>PWM 1</td><td>0</td><td>P2.0</td><td>P2.0</td></tr>
+ * <tr><td rowspan=11>LCD</td><td rowspan=6>0</td><td>P0.4</td><td>P0.9</td></tr>
+ * <tr><td>P1.20</td><td>P1.29</td></tr>
+ * <tr><td>P2.0</td><td>P2.3</td></tr>
+ * <tr><td>P2.5</td><td>P2.9</td></tr>
+ * <tr><td>P2.12</td><td>P2.13</td></tr>
+ * <tr><td>P4.28</td><td>P4.29</td></tr>
+ * <tr><td rowspan=5>1</td><td>P1.20</td><td>P1.29</td></tr>
+ * <tr><td>P2.0</td><td>P2.3</td></tr>
+ * <tr><td>P2.5</td><td>P2.9</td></tr>
+ * <tr><td>P2.12</td><td>P2.13</td></tr>
+ * <tr><td>P4.28</td><td>P4.29</td></tr>
+ * <tr><td>DAC</td><td>0</td><td>P0.26</td><td>P0.26</td></tr>
+ * </table>
+ *
* @{
*/
@@ -123,11 +182,28 @@
lpc24xx_module module
);
+/**
+ * @brief Applies the configuration with index @a config for the @a module.
+ *
+ * The pin mode will not be altered.
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID Invalid module or configuration.
+ */
rtems_status_code lpc24xx_io_config(
lpc24xx_module module,
unsigned config
);
+/**
+ * @brief Releases the configuration with index @a config for the @a module.
+ *
+ * The pins are set to general purpose IO function. The pin mode will not be
+ * altered.
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID Invalid module or configuration.
+ */
rtems_status_code lpc24xx_io_release(
lpc24xx_module module,
unsigned config
diff -u /dev/null rtems/c/src/lib/libbsp/arm/lpc24xx/include/lcd.h:1.1
--- /dev/null Fri Dec 3 04:10:53 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/lcd.h Fri Dec 3 03:56:48 2010
@@ -0,0 +1,77 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx_lcd
+ *
+ * @brief LCD support.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef LIBBSP_ARM_LPC24XX_LCD_H
+#define LIBBSP_ARM_LPC24XX_LCD_H
+
+#include <rtems.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup lpc_dma LCD Support
+ *
+ * @ingroup lpc24xx
+ *
+ * @brief LCD support.
+ *
+ * @{
+ */
+
+typedef enum {
+ LCD_MODE_STN_4_BIT = 0,
+ LCD_MODE_STN_8_BIT,
+ LCD_MODE_STN_DUAL_PANEL_4_BIT,
+ LCD_MODE_STN_DUAL_PANEL_8_BIT,
+ LCD_MODE_TFT_12_BIT_4_4_4,
+ LCD_MODE_TFT_16_BIT_5_6_5,
+ LCD_MODE_TFT_16_BIT_1_5_5_5,
+ LCD_MODE_TFT_24_BIT,
+ LCD_MODE_DISABLED
+} lpc24xx_lcd_mode;
+
+/**
+ * @brief Set the LCD @a mode.
+ *
+ * The pins are configured according to the @a pin_config.
+ *
+ * @see lpc24xx_io_config() and lpc24xx_io_release().
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_IO_ERROR Invalid mode.
+ */
+rtems_status_code lpc24xx_lcd_set_mode(
+ lpc24xx_lcd_mode mode,
+ unsigned pin_config
+);
+
+lpc24xx_lcd_mode lpc24xx_lcd_current_mode(void);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_LPC24XX_LCD_H */
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.12 rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.13
--- rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.12 Thu Oct 14 04:34:06 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h Fri Dec 3 03:56:48 2010
@@ -22,6 +22,8 @@
#define LIBBSP_ARM_LPC24XX_LPC24XX_H
#include <stdint.h>
+#include <bsp/utility.h>
+#include <bsp/lpc-i2s.h>
/**
* @defgroup lpc24xx_regs Register Definitions
@@ -1980,6 +1982,16 @@
#define PCONP_ETHERNET (1U << 30)
#define PCONP_USB (1U << 31)
+/* I2S */
+
+static volatile lpc_i2s *const lpc24xx_i2s = (lpc_i2s *) I2S_BASE_ADDR;
+
+/* DAC */
+
+#define DAC_STEPS 1024
+#define DAC_VALUE(val) BSP_FLD32(val, 6, 15)
+#define DAC_BIAS BSP_BIT32(16)
+
/** @} */
#endif /* LIBBSP_ARM_LPC24XX_LPC24XX_H */
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c:1.7 rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c:1.8
--- rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c:1.7 Thu Oct 14 01:52:46 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c Fri Dec 3 03:56:48 2010
@@ -53,7 +53,7 @@
unsigned pin_function : 3;
} lpc24xx_io_entry;
-typedef void (*lpc24xx_io_iterate_routine)(unsigned /* pin */, unsigned /* function */);
+typedef void (*lpc24xx_io_iterate_routine)(unsigned pin, unsigned function);
static const lpc24xx_io_entry lpc24xx_io_config_table [] = {
/* UART */
@@ -78,6 +78,8 @@
/* ADC */
LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 0, 0, 12, 0, 13, LPC24XX_IO_ALTERNATE_2),
LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 1, 0, 23, 0, 25, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 2, 0, 26, 0, 26, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 2, 1, 30, 1, 31, LPC24XX_IO_ALTERNATE_2),
/* I2C */
LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_0, 0, 0, 27, 0, 28, LPC24XX_IO_ALTERNATE_0),
@@ -88,6 +90,11 @@
LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_2, 1, 2, 30, 2, 31, LPC24XX_IO_ALTERNATE_2),
LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_2, 2, 4, 20, 4, 21, LPC24XX_IO_ALTERNATE_1),
+ /* I2S */
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2S, 0, 0, 4, 0, 9, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2S, 1, 0, 23, 0, 25, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2S, 1, 2, 11, 2, 13, LPC24XX_IO_ALTERNATE_2),
+
/* SSP */
LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 0, 0, 15, 0, 18, LPC24XX_IO_ALTERNATE_1),
LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 1, 1, 20, 0, 21, LPC24XX_IO_ALTERNATE_2),
@@ -117,6 +124,14 @@
LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 0, 2, 5, 2, 9, LPC24XX_IO_ALTERNATE_2),
LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 0, 2, 12, 2, 13, LPC24XX_IO_ALTERNATE_0),
LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 0, 4, 28, 4, 29, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 1, 20, 1, 29, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 2, 0, 2, 3, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 2, 5, 2, 9, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 2, 12, 2, 13, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 4, 28, 4, 29, LPC24XX_IO_ALTERNATE_1),
+
+ /* DAC */
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_DAC, 0, 0, 26, 0, 26, LPC24XX_IO_ALTERNATE_1),
/* Terminate */
LPC24XX_IO_ENTRY(LPC24XX_MODULE_COUNT, 0, 0, 0, 0, 0, 0)
@@ -128,7 +143,7 @@
lpc24xx_io_iterate_routine routine
)
{
- rtems_status_code sc = RTEMS_INVALID_ID;
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
const lpc24xx_io_entry *e = &lpc24xx_io_config_table [0];
while (e->module != LPC24XX_MODULE_COUNT) {
@@ -156,17 +171,14 @@
rtems_interrupt_level level;
unsigned select = LPC24XX_IO_SELECT(pin);
unsigned shift = LPC24XX_IO_SELECT_SHIFT(pin);
+ unsigned mask = LPC24XX_IO_SELECT_MASK << shift;
+ unsigned pinsel = 0;
rtems_interrupt_disable(level);
-
- LPC24XX_PINSEL [select] =
- (LPC24XX_PINSEL [select] & ~(LPC24XX_IO_SELECT_MASK << shift))
- | ((function & LPC24XX_IO_SELECT_MASK) << shift);
-
- rtems_interrupt_flash(level);
-
- LPC24XX_PINMODE [select] &= ~(LPC24XX_IO_SELECT_MASK << shift);
-
+ pinsel = LPC24XX_PINSEL [select];
+ pinsel &= ~mask;
+ pinsel |= (function & LPC24XX_IO_SELECT_MASK) << shift;
+ LPC24XX_PINSEL [select] = pinsel;
rtems_interrupt_enable(level);
}
@@ -175,10 +187,10 @@
rtems_interrupt_level level;
unsigned select = LPC24XX_IO_SELECT(pin);
unsigned shift = LPC24XX_IO_SELECT_SHIFT(pin);
+ unsigned mask = LPC24XX_IO_SELECT_MASK << shift;
rtems_interrupt_disable(level);
- LPC24XX_PINSEL [select] =
- (LPC24XX_PINSEL [select] & ~(LPC24XX_IO_SELECT_MASK << shift));
+ LPC24XX_PINSEL [select] &= ~mask;
rtems_interrupt_enable(level);
}
@@ -277,7 +289,7 @@
LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2C_1, 1, 1, 19),
LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2C_2, 1, 1, 26),
LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2S, 1, 1, 27),
- LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_LCD, 1, 1, 20),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_LCD, 1, 0, 20),
LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_MCI, 1, 1, 28),
LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PCB, 0, 1, 18),
LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PWM_0, 1, 1, 5),
diff -u /dev/null rtems/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c:1.1
--- /dev/null Fri Dec 3 04:10:53 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c Fri Dec 3 03:56:48 2010
@@ -0,0 +1,103 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx_lcd
+ *
+ * @brief LCD support.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems at embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#include <assert.h>
+
+#include <bsp/lpc24xx.h>
+#include <bsp/io.h>
+#include <bsp/lcd.h>
+#include <bsp/utility.h>
+#include <bsp/system-clocks.h>
+
+#define LCD_ENABLE BSP_BIT32(0)
+
+rtems_status_code lpc24xx_lcd_set_mode(lpc24xx_lcd_mode mode, unsigned pin_config)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+ bool enable = false;
+
+ switch (mode) {
+ case LCD_MODE_STN_4_BIT:
+ case LCD_MODE_STN_8_BIT:
+ case LCD_MODE_STN_DUAL_PANEL_4_BIT:
+ case LCD_MODE_STN_DUAL_PANEL_8_BIT:
+ case LCD_MODE_TFT_12_BIT_4_4_4:
+ case LCD_MODE_TFT_16_BIT_5_6_5:
+ case LCD_MODE_TFT_16_BIT_1_5_5_5:
+ case LCD_MODE_TFT_24_BIT:
+ enable = true;
+ break;
+ case LCD_MODE_DISABLED:
+ enable = false;
+ break;
+ default:
+ sc = RTEMS_IO_ERROR;
+ break;
+ }
+
+ if (sc == RTEMS_SUCCESSFUL) {
+ if (enable) {
+ sc = lpc24xx_module_enable(LPC24XX_MODULE_LCD, LPC24XX_MODULE_PCLK_DEFAULT);
+ assert(sc == RTEMS_SUCCESSFUL);
+
+ PINSEL11 = BSP_FLD32(mode, 1, 3) | LCD_ENABLE;
+
+ sc = lpc24xx_io_config(LPC24XX_MODULE_LCD, pin_config);
+ assert(sc == RTEMS_SUCCESSFUL);
+ } else {
+ if (lpc24xx_lcd_current_mode() != LCD_MODE_DISABLED) {
+ uint32_t lcd_ctrl = LCD_CTRL;
+
+ /* Disable power */
+ lcd_ctrl &= ~BSP_BIT32(11);
+ LCD_CTRL = lcd_ctrl;
+
+ lpc24xx_micro_seconds_delay(100000);
+
+ /* Disable all signals */
+ lcd_ctrl &= ~BSP_BIT32(0);
+ LCD_CTRL = lcd_ctrl;
+ }
+
+ sc = lpc24xx_io_release(LPC24XX_MODULE_LCD, pin_config);
+ assert(sc == RTEMS_SUCCESSFUL);
+
+ PINSEL11 = 0;
+
+ sc = lpc24xx_module_disable(LPC24XX_MODULE_LCD);
+ assert(sc == RTEMS_SUCCESSFUL);
+ }
+ }
+
+ return sc;
+}
+
+lpc24xx_lcd_mode lpc24xx_lcd_current_mode(void)
+{
+ uint32_t pinsel11 = PINSEL11;
+
+ if ((PCONP & BSP_BIT32(20)) != 0 && (pinsel11 & LCD_ENABLE) != 0) {
+ return BSP_FLD32GET(pinsel11, 1, 3);
+ } else {
+ return LCD_MODE_DISABLED;
+ }
+}
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.19 rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.20
--- rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.19 Thu May 20 08:10:56 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am Fri Dec 3 03:56:47 2010
@@ -82,10 +82,6 @@
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/tod.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/tod.h
-$(PROJECT_INCLUDE)/bsp/linker-symbols.h: ../shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-
$(PROJECT_INCLUDE)/bsp/start.h: ../shared/include/start.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/start.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/start.h
@@ -94,6 +90,10 @@
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-timer.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-timer.h
+$(PROJECT_INCLUDE)/bsp/lpc-i2s.h: ../shared/lpc/include/lpc-i2s.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+
$(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
@@ -122,6 +122,10 @@
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/io.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/io.h
+$(PROJECT_INCLUDE)/bsp/lcd.h: include/lcd.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lcd.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lcd.h
+
$(PROJECT_INCLUDE)/bsp/lpc-clock-config.h: include/lpc-clock-config.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-clock-config.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-clock-config.h
@@ -146,7 +150,3 @@
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds
-$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
- $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
-TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
-
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.6 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.7
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.6 Thu May 20 09:33:16 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c Fri Dec 3 03:56:48 2010
@@ -31,7 +31,7 @@
#endif
#ifdef LPC24XX_EMC_MICRON
- static void BSP_START_SECTION lpc24xx_ram_test_32(void)
+ static void BSP_START_TEXT_SECTION lpc24xx_ram_test_32(void)
{
#ifdef LPC24XX_EMC_TEST
int *begin = (int *) 0xa0000000;
@@ -55,7 +55,7 @@
#endif
}
- static void BSP_START_SECTION lpc24xx_cpu_delay(
+ static void BSP_START_TEXT_SECTION lpc24xx_cpu_delay(
unsigned ticks
)
{
@@ -73,7 +73,7 @@
/**
* @brief EMC initialization hook 0.
*/
-static void BSP_START_SECTION lpc24xx_init_emc_0(void)
+static void BSP_START_TEXT_SECTION lpc24xx_init_emc_0(void)
{
#ifdef LPC24XX_EMC_NUMONYX
/*
@@ -137,7 +137,7 @@
/**
* @brief EMC initialization hook 1.
*/
-static void BSP_START_SECTION lpc24xx_init_emc_1(void)
+static void BSP_START_TEXT_SECTION lpc24xx_init_emc_1(void)
{
#ifdef LPC24XX_EMC_INIT
/* Use normal memory map */
@@ -242,7 +242,7 @@
#endif
}
-static void BSP_START_SECTION lpc24xx_pll_config(
+static void BSP_START_TEXT_SECTION lpc24xx_pll_config(
uint32_t val
)
{
@@ -265,7 +265,7 @@
* @param cclksel Selects the divide value for creating the CPU clock (CCLK)
* from the PLL output.
*/
-static void BSP_START_SECTION lpc24xx_set_pll(
+static void BSP_START_TEXT_SECTION lpc24xx_set_pll(
unsigned clksrc,
unsigned nsel,
unsigned msel,
@@ -321,7 +321,7 @@
lpc24xx_pll_config(PLLCON_PLLE | PLLCON_PLLC);
}
-static void BSP_START_SECTION lpc24xx_init_pll(void)
+static void BSP_START_TEXT_SECTION lpc24xx_init_pll(void)
{
/* Enable main oscillator */
if ((SCS & 0x40) == 0) {
@@ -341,7 +341,7 @@
#endif
}
-static void BSP_START_SECTION lpc24xx_clear_bss(void)
+static void BSP_START_TEXT_SECTION lpc24xx_clear_bss(void)
{
const int *end = (const int *) bsp_section_bss_end;
int *out = (int *) bsp_section_bss_begin;
@@ -353,7 +353,7 @@
}
}
-void BSP_START_SECTION bsp_start_hook_0(void)
+void BSP_START_TEXT_SECTION bsp_start_hook_0(void)
{
/* Initialize PLL */
lpc24xx_init_pll();
@@ -362,7 +362,7 @@
lpc24xx_init_emc_0();
}
-void BSP_START_SECTION bsp_start_hook_1(void)
+void BSP_START_TEXT_SECTION bsp_start_hook_1(void)
{
/* Re-map interrupt vectors to internal RAM */
MEMMAP = SET_MEMMAP_MAP(MEMMAP, 2);
@@ -442,11 +442,18 @@
(size_t) bsp_section_data_size
);
- /* Copy .fast section */
+ /* Copy .fast_text section */
bsp_start_memcpy(
- (int *) bsp_section_fast_begin,
- (const int *) bsp_section_fast_load_begin,
- (size_t) bsp_section_fast_size
+ (int *) bsp_section_fast_text_begin,
+ (const int *) bsp_section_fast_text_load_begin,
+ (size_t) bsp_section_fast_text_size
+ );
+
+ /* Copy .fast_data section */
+ bsp_start_memcpy(
+ (int *) bsp_section_fast_data_begin,
+ (const int *) bsp_section_fast_data_load_begin,
+ (size_t) bsp_section_fast_data_size
);
/* Clear .bss section */
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.3 Wed Jun 23 03:11:28 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362 Fri Dec 3 03:56:48 2010
@@ -35,11 +35,11 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
- RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
- RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
- ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 128k
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
+ RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
+ RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
+ ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 128k
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
@@ -64,4 +64,4 @@
lpc24xx_region_heap_1_size = LENGTH (RAM_USB);
lpc24xx_region_heap_1_end = lpc24xx_region_heap_1_begin + lpc24xx_region_heap_1_size;
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.1 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.2
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.1 Wed Jun 23 03:11:28 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800 Fri Dec 3 03:56:48 2010
@@ -37,13 +37,13 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
- RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
- RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
- ROM_BOOT (RX) : ORIGIN = 0x00000000, LENGTH = 4k
- ROM_CFG (RX) : ORIGIN = 0x00001000, LENGTH = 4k
- ROM_INT (RX) : ORIGIN = 0x00002000, LENGTH = 120k
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
+ RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
+ RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
+ ROM_BOOT (RX) : ORIGIN = 0x00000000, LENGTH = 4k
+ ROM_CFG (RX) : ORIGIN = 0x00001000, LENGTH = 4k
+ ROM_INT (RX) : ORIGIN = 0x00002000, LENGTH = 120k
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_BOOT);
@@ -68,4 +68,4 @@
lpc24xx_region_heap_1_size = LENGTH (RAM_USB);
lpc24xx_region_heap_1_end = lpc24xx_region_heap_1_begin + lpc24xx_region_heap_1_size;
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.2 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea Fri Dec 3 03:56:48 2010
@@ -34,9 +34,9 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
- RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+ RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
@@ -53,4 +53,4 @@
REGION_ALIAS ("REGION_WORK", RAM_EXT);
REGION_ALIAS ("REGION_STACK", RAM_INT);
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.2 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram Fri Dec 3 03:56:48 2010
@@ -34,9 +34,9 @@
*/
MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
- RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 8M
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+ RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 8M
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
@@ -53,4 +53,4 @@
REGION_ALIAS ("REGION_WORK", RAM_EXT);
REGION_ALIAS ("REGION_STACK", RAM_INT);
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.2 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext Fri Dec 3 03:56:48 2010
@@ -57,4 +57,4 @@
REGION_ALIAS ("REGION_WORK", RAM_EXT);
REGION_ALIAS ("REGION_STACK", RAM_INT);
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.2 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int Fri Dec 3 03:56:48 2010
@@ -36,11 +36,11 @@
MEMORY {
- RAM_VEC (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
- RAM_INT (AIW) : ORIGIN = 0x40008000, LENGTH = 32k
- RAM_EXT (AIW) : ORIGIN = 0xa0400000, LENGTH = 4M
- ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
- NIRVANA : ORIGIN = 0, LENGTH = 0
+ RAM_VEC (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
+ RAM_INT (AIW) : ORIGIN = 0x40008000, LENGTH = 32k
+ RAM_EXT (AIW) : ORIGIN = 0xa0400000, LENGTH = 4M
+ ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
+ NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
@@ -57,4 +57,4 @@
REGION_ALIAS ("REGION_WORK", RAM_EXT);
REGION_ALIAS ("REGION_STACK", RAM_INT);
-INCLUDE linkcmds.base
+INCLUDE linkcmds.armv4
*sh*:
2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
* shared/startup/linkcmds.base: Split up fast region.
M 1.84 c/src/lib/libbsp/arm/ChangeLog
M 1.8 c/src/lib/libbsp/arm/shared/startup/linkcmds.base
diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.83 rtems/c/src/lib/libbsp/arm/ChangeLog:1.84
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.83 Fri Dec 3 03:23:51 2010
+++ rtems/c/src/lib/libbsp/arm/ChangeLog Fri Dec 3 04:09:59 2010
@@ -1,5 +1,9 @@
2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
+ * shared/startup/linkcmds.base: Split up fast region.
+
+2010-12-03 Sebastian Huber <sebastian.huber at embedded-brains.de>
+
* preinstall.am, shared/lpc/include/lpc-i2s.h,
shared/startup/linkcmds.armv4, shared/startup/linkcmds.armv7: New
files.
diff -u rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.7 rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.8
--- rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.7 Fri Dec 3 03:23:52 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base Fri Dec 3 04:09:59 2010
@@ -364,7 +364,7 @@
*(.bsp_fast_text)
. = ALIGN (bsp_section_align);
bsp_section_fast_text_end = .;
- } > REGION_FAST AT > REGION_FAST_LOAD
+ } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
@@ -374,7 +374,7 @@
*(.bsp_fast_data)
. = ALIGN (bsp_section_align);
bsp_section_fast_data_end = .;
- } > REGION_FAST AT > REGION_FAST_LOAD
+ } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
--
Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20101203/322ffdbe/attachment.html>
More information about the vc
mailing list