summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/ChangeLog14
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/Makefile.am5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/configure.ac4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/console/console-config.c6
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/i2c/i2c.c62
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/bsp.h4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/io.h68
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/irq.h9
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h474
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/irq/irq.c35
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/misc/dma.c2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/misc/io.c356
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/misc/timer.c2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/network/network.c5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/preinstall.am8
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/rtc/rtc-config.c10
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c28
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c22
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int2
23 files changed, 532 insertions, 594 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/ChangeLog b/c/src/lib/libbsp/arm/lpc24xx/ChangeLog
index eaec880a3a..399ebbb5e2 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/ChangeLog
+++ b/c/src/lib/libbsp/arm/lpc24xx/ChangeLog
@@ -1,3 +1,17 @@
+2009-12-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * clock/clock-config.c: Removed file.
+ * include/lpc-clock-config.h, make/custom/lpc2362.cfg,
+ startup/linkcmds.lpc2362: New files.
+ * Makefile.am, configure.ac, preinstall.am, console/console-config.c,
+ i2c/i2c.c, include/bsp.h, include/io.h, include/irq.h,
+ include/lpc24xx.h, irq/irq.c, make/custom/lpc24xx.inc, misc/dma.c,
+ misc/io.c, misc/timer.c, network/network.c, rtc/rtc-config.c,
+ startup/bspreset.c, startup/bspstart.c, startup/bspstarthooks.c,
+ startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
+ startup/linkcmds.lpc24xx_ncs_rom_ext,
+ startup/linkcmds.lpc24xx_ncs_rom_int: Changes throughout.
+
2009-11-03 Ralf Corsépius <ralf.corsepius@rtems.org>
* configure.ac: Add RTEMS_BSP_LINKCMDS.
diff --git a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
index ebc63e766a..765c2c1223 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
@@ -34,6 +34,7 @@ include_bsp_HEADERS += ../../shared/include/stackalloc.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 += include/irq-config.h
include_bsp_HEADERS += include/irq.h
include_bsp_HEADERS += include/lpc24xx.h
@@ -42,6 +43,7 @@ include_bsp_HEADERS += include/ssp.h
include_bsp_HEADERS += include/dma.h
include_bsp_HEADERS += include/i2c.h
include_bsp_HEADERS += include/io.h
+include_bsp_HEADERS += include/lpc-clock-config.h
include_HEADERS += ../../shared/include/tm27.h
@@ -61,6 +63,7 @@ EXTRA_DIST = startup/linkcmds.lpc24xx_ea
EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_int
EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_ext
EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_ram
+EXTRA_DIST += startup/linkcmds.lpc2362
###############################################################################
# LibBSP #
@@ -100,7 +103,7 @@ libbsp_a_SOURCES += ../../shared/console.c \
console/console-config.c
# Clock
-libbsp_a_SOURCES += clock/clock-config.c \
+libbsp_a_SOURCES += ../shared/lpc/clock/lpc-clock-config.c \
../../../shared/clockdrv_shell.h
# RTC
diff --git a/c/src/lib/libbsp/arm/lpc24xx/configure.ac b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
index 4cc7dc0d8d..e5724d7238 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/configure.ac
+++ b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
@@ -45,6 +45,10 @@ RTEMS_BSPOPTS_HELP([LPC24XX_EMC_NUMONYX],[enable Numonyx configuration for EMC])
RTEMS_BSPOPTS_SET([LPC24XX_EMC_TEST],[*],[])
RTEMS_BSPOPTS_HELP([LPC24XX_EMC_TEST],[enable tests for EMC])
+RTEMS_BSPOPTS_SET([LPC24XX_SPECIAL_TASK_STACKS_SUPPORT],[lpc2362],[])
+RTEMS_BSPOPTS_SET([LPC24XX_SPECIAL_TASK_STACKS_SUPPORT],[*],[1])
+RTEMS_BSPOPTS_HELP([LPC24XX_SPECIAL_TASK_STACKS_SUPPORT],[enable special task stack support for task stacks in internal RAM])
+
RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_CONSOLE],[*],[0])
RTEMS_BSPOPTS_HELP([LPC24XX_CONFIG_CONSOLE],[configuration for console (UART 0)])
diff --git a/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c b/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
index fd0c26484f..de49468c2f 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
@@ -25,14 +25,14 @@
#include <bsp/lpc24xx.h>
#include <bsp/irq.h>
-static uint8_t lpc24xx_uart_register( uint32_t addr, uint8_t i)
+static uint8_t lpc24xx_uart_register(uint32_t addr, uint8_t i)
{
volatile uint32_t *reg = (volatile uint32_t *) addr;
return (uint8_t) reg [i];
}
-static void lpc24xx_uart_set_register( uint32_t addr, uint8_t i, uint8_t val)
+static void lpc24xx_uart_set_register(uint32_t addr, uint8_t i, uint8_t val)
{
volatile uint32_t *reg = (volatile uint32_t *) addr;
@@ -129,7 +129,7 @@ console_tbl Console_Port_Tbl [] = {
};
#define LPC24XX_UART_NUMBER \
- (sizeof( Console_Port_Tbl) / sizeof( Console_Port_Tbl [0]))
+ (sizeof(Console_Port_Tbl) / sizeof(Console_Port_Tbl [0]))
unsigned long Console_Port_Count = LPC24XX_UART_NUMBER;
diff --git a/c/src/lib/libbsp/arm/lpc24xx/i2c/i2c.c b/c/src/lib/libbsp/arm/lpc24xx/i2c/i2c.c
index a1e86493d6..dc4ba13c1d 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/i2c/i2c.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/i2c/i2c.c
@@ -44,7 +44,7 @@ typedef struct {
uint8_t * volatile end;
} lpc24xx_i2c_bus_entry;
-static void lpc24xx_i2c_handler( void *arg)
+static void lpc24xx_i2c_handler(void *arg)
{
lpc24xx_i2c_bus_entry *e = arg;
volatile lpc24xx_i2c *regs = e->regs;
@@ -97,20 +97,20 @@ static void lpc24xx_i2c_handler( void *arg)
/* Notify task if necessary */
if (notify) {
- bsp_interrupt_vector_disable( e->vector);
+ bsp_interrupt_vector_disable(e->vector);
- rtems_semaphore_release( e->state_update);
+ rtems_semaphore_release(e->state_update);
}
}
-static rtems_status_code lpc24xx_i2c_wait( lpc24xx_i2c_bus_entry *e)
+static rtems_status_code lpc24xx_i2c_wait(lpc24xx_i2c_bus_entry *e)
{
- bsp_interrupt_vector_enable( e->vector);
+ bsp_interrupt_vector_enable(e->vector);
- return rtems_semaphore_obtain( e->state_update, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
+ return rtems_semaphore_obtain(e->state_update, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
}
-static rtems_status_code lpc24xx_i2c_init( rtems_libi2c_bus_t *bus)
+static rtems_status_code lpc24xx_i2c_init(rtems_libi2c_bus_t *bus)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
lpc24xx_i2c_bus_entry *e = (lpc24xx_i2c_bus_entry *) bus;
@@ -119,21 +119,21 @@ static rtems_status_code lpc24xx_i2c_init( rtems_libi2c_bus_t *bus)
/* Create semaphore */
sc = rtems_semaphore_create (
- rtems_build_name ( 'I', '2', 'C', '0' + e->index),
+ rtems_build_name ('I', '2', 'C', '0' + e->index),
0,
RTEMS_SIMPLE_BINARY_SEMAPHORE,
0,
&e->state_update
);
- RTEMS_CHECK_SC( sc, "create status update semaphore");
+ RTEMS_CHECK_SC(sc, "create status update semaphore");
/* Enable module power */
- sc = lpc24xx_module_enable( LPC24XX_MODULE_I2C, e->index, LPC24XX_MODULE_CCLK_8);
- RTEMS_CHECK_SC( sc, "enable module");
+ sc = lpc24xx_module_enable(LPC24XX_MODULE_I2C_0 + e->index, LPC24XX_MODULE_CCLK_8);
+ RTEMS_CHECK_SC(sc, "enable module");
/* IO configuration */
- sc = lpc24xx_io_config( LPC24XX_MODULE_I2C, e->index, e->config);
- RTEMS_CHECK_SC( sc, "IO configuration");
+ sc = lpc24xx_io_config(LPC24XX_MODULE_I2C_0 + e->index, e->config);
+ RTEMS_CHECK_SC(sc, "IO configuration");
/* Clock high and low duty cycles */
regs->sclh = cycles;
@@ -150,8 +150,8 @@ static rtems_status_code lpc24xx_i2c_init( rtems_libi2c_bus_t *bus)
lpc24xx_i2c_handler,
e
);
- RTEMS_CHECK_SC( sc, "install interrupt handler");
- bsp_interrupt_vector_disable( e->vector);
+ RTEMS_CHECK_SC(sc, "install interrupt handler");
+ bsp_interrupt_vector_disable(e->vector);
/* Enable module in master mode */
regs->conset = LPC24XX_I2C_EN;
@@ -162,7 +162,7 @@ static rtems_status_code lpc24xx_i2c_init( rtems_libi2c_bus_t *bus)
return RTEMS_SUCCESSFUL;
}
-static rtems_status_code lpc24xx_i2c_send_start( rtems_libi2c_bus_t *bus)
+static rtems_status_code lpc24xx_i2c_send_start(rtems_libi2c_bus_t *bus)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
lpc24xx_i2c_bus_entry *e = (lpc24xx_i2c_bus_entry *) bus;
@@ -173,13 +173,13 @@ static rtems_status_code lpc24xx_i2c_send_start( rtems_libi2c_bus_t *bus)
regs->conset = LPC24XX_I2C_STA;
/* Wait */
- sc = lpc24xx_i2c_wait( e);
- RTEMS_CHECK_SC( sc, "wait for state update");
+ sc = lpc24xx_i2c_wait(e);
+ RTEMS_CHECK_SC(sc, "wait for state update");
return RTEMS_SUCCESSFUL;
}
-static rtems_status_code lpc24xx_i2c_send_stop( rtems_libi2c_bus_t *bus)
+static rtems_status_code lpc24xx_i2c_send_stop(rtems_libi2c_bus_t *bus)
{
lpc24xx_i2c_bus_entry *e = (lpc24xx_i2c_bus_entry *) bus;
volatile lpc24xx_i2c *regs = e->regs;
@@ -213,8 +213,8 @@ static rtems_status_code lpc24xx_i2c_send_addr(
regs->conclr = LPC24XX_I2C_STA | LPC24XX_I2C_SI;
/* Wait */
- sc = lpc24xx_i2c_wait( e);
- RTEMS_CHECK_SC_RV( sc, "wait for state update");
+ sc = lpc24xx_i2c_wait(e);
+ RTEMS_CHECK_SC_RV(sc, "wait for state update");
/* Check state */
state = regs->stat;
@@ -225,7 +225,7 @@ static rtems_status_code lpc24xx_i2c_send_addr(
return RTEMS_SUCCESSFUL;
}
-static int lpc24xx_i2c_read( rtems_libi2c_bus_t *bus, unsigned char *in, int n)
+static int lpc24xx_i2c_read(rtems_libi2c_bus_t *bus, unsigned char *in, int n)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
lpc24xx_i2c_bus_entry *e = (lpc24xx_i2c_bus_entry *) bus;
@@ -253,8 +253,8 @@ static int lpc24xx_i2c_read( rtems_libi2c_bus_t *bus, unsigned char *in, int n)
regs->conclr = LPC24XX_I2C_SI;
/* Wait */
- sc = lpc24xx_i2c_wait( e);
- RTEMS_CHECK_SC_RV( sc, "wait for state update");
+ sc = lpc24xx_i2c_wait(e);
+ RTEMS_CHECK_SC_RV(sc, "wait for state update");
/* Check state */
state = regs->stat;
@@ -290,8 +290,8 @@ static int lpc24xx_i2c_write(
regs->conclr = LPC24XX_I2C_SI;
/* Wait */
- sc = lpc24xx_i2c_wait( e);
- RTEMS_CHECK_SC_RV( sc, "wait for state update");
+ sc = lpc24xx_i2c_wait(e);
+ RTEMS_CHECK_SC_RV(sc, "wait for state update");
/* Check state */
state = regs->stat;
@@ -310,14 +310,14 @@ static int lpc24xx_i2c_set_transfer_mode(
return -RTEMS_NOT_IMPLEMENTED;
}
-static int lpc24xx_i2c_ioctl( rtems_libi2c_bus_t *bus, int cmd, void *arg)
+static int lpc24xx_i2c_ioctl(rtems_libi2c_bus_t *bus, int cmd, void *arg)
{
int rv = -1;
const rtems_libi2c_tfr_mode_t *tm = (const rtems_libi2c_tfr_mode_t *) arg;
switch (cmd) {
case RTEMS_LIBI2C_IOCTL_SET_TFRMODE:
- rv = lpc24xx_i2c_set_transfer_mode( bus, tm);
+ rv = lpc24xx_i2c_set_transfer_mode(bus, tm);
break;
default:
rv = -RTEMS_NOT_DEFINED;
@@ -341,7 +341,7 @@ static const rtems_libi2c_bus_ops_t lpc24xx_i2c_ops = {
static lpc24xx_i2c_bus_entry lpc24xx_i2c_entry_0 = {
.bus = {
.ops = &lpc24xx_i2c_ops,
- .size = sizeof( lpc24xx_i2c_bus_entry)
+ .size = sizeof(lpc24xx_i2c_bus_entry)
},
.regs = (volatile lpc24xx_i2c *) I2C0_BASE_ADDR,
.index = 0,
@@ -357,7 +357,7 @@ static const rtems_libi2c_bus_ops_t lpc24xx_i2c_ops = {
static lpc24xx_i2c_bus_entry lpc24xx_i2c_entry_1 = {
.bus = {
.ops = &lpc24xx_i2c_ops,
- .size = sizeof( lpc24xx_i2c_bus_entry)
+ .size = sizeof(lpc24xx_i2c_bus_entry)
},
.regs = (volatile lpc24xx_i2c *) I2C1_BASE_ADDR,
.index = 1,
@@ -373,7 +373,7 @@ static const rtems_libi2c_bus_ops_t lpc24xx_i2c_ops = {
static lpc24xx_i2c_bus_entry lpc24xx_i2c_entry_2 = {
.bus = {
.ops = &lpc24xx_i2c_ops,
- .size = sizeof( lpc24xx_i2c_bus_entry)
+ .size = sizeof(lpc24xx_i2c_bus_entry)
},
.regs = (volatile lpc24xx_i2c *) I2C2_BASE_ADDR,
.index = 2,
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h
index 75a6731507..a982305c95 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h
@@ -80,12 +80,12 @@ int lpc24xx_eth_attach_detach(
*
* #define CONFIGURE_INIT
*
- * #define CONFIGURE_IDLE_TASK_BODY lpc24xx_idle
+ * #define CONFIGURE_IDLE_TASK_BODY bsp_idle_thread
*
* #include <confdefs.h>
* @endcode
*/
-void *lpc24xx_idle(uintptr_t ignored);
+void *bsp_idle_thread(uintptr_t ignored);
/** @} */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/io.h b/c/src/lib/libbsp/arm/lpc24xx/include/io.h
index ac107ff0fa..a29cf44357 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/io.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/io.h
@@ -44,39 +44,53 @@ extern "C" {
#define LPC24XX_IO_INDEX_MAX (LPC24XX_IO_PORT_COUNT * 32U)
-#define LPC24XX_IO_INDEX_BY_PORT( port, bit) (((port) << 5U) + (bit))
+#define LPC24XX_IO_INDEX_BY_PORT(port, bit) (((port) << 5U) + (bit))
-#define LPC24XX_IO_PORT( index) (index >> 5U)
+#define LPC24XX_IO_PORT(index) (index >> 5U)
-#define LPC24XX_IO_PORT_BIT( index) (index & 0x1fU)
+#define LPC24XX_IO_PORT_BIT(index) (index & 0x1fU)
typedef enum {
- LPC24XX_MODULE_ACF,
+ LPC24XX_MODULE_ACF = 0,
LPC24XX_MODULE_ADC,
LPC24XX_MODULE_BAT_RAM,
- LPC24XX_MODULE_CAN,
+ LPC24XX_MODULE_CAN_0,
+ LPC24XX_MODULE_CAN_1,
LPC24XX_MODULE_DAC,
LPC24XX_MODULE_EMC,
LPC24XX_MODULE_ETHERNET,
LPC24XX_MODULE_GPDMA,
LPC24XX_MODULE_GPIO,
- LPC24XX_MODULE_I2C,
+ LPC24XX_MODULE_I2C_0,
+ LPC24XX_MODULE_I2C_1,
+ LPC24XX_MODULE_I2C_2,
LPC24XX_MODULE_I2S,
LPC24XX_MODULE_LCD,
LPC24XX_MODULE_MCI,
LPC24XX_MODULE_PCB,
- LPC24XX_MODULE_PWM,
+ LPC24XX_MODULE_PWM_0,
+ LPC24XX_MODULE_PWM_1,
LPC24XX_MODULE_RTC,
LPC24XX_MODULE_SPI,
- LPC24XX_MODULE_SSP,
+ LPC24XX_MODULE_SSP_0,
+ LPC24XX_MODULE_SSP_1,
LPC24XX_MODULE_SYSCON,
- LPC24XX_MODULE_TIMER,
- LPC24XX_MODULE_UART,
+ LPC24XX_MODULE_TIMER_0,
+ LPC24XX_MODULE_TIMER_1,
+ LPC24XX_MODULE_TIMER_2,
+ LPC24XX_MODULE_TIMER_3,
+ LPC24XX_MODULE_UART_0,
+ LPC24XX_MODULE_UART_1,
+ LPC24XX_MODULE_UART_2,
+ LPC24XX_MODULE_UART_3,
LPC24XX_MODULE_USB,
- LPC24XX_MODULE_WDT,
- LPC24XX_MODULE_COUNT
+ LPC24XX_MODULE_WDT
} lpc24xx_module;
+#define LPC24XX_MODULE_FIRST LPC24XX_MODULE_ACF
+
+#define LPC24XX_MODULE_COUNT (LPC24XX_MODULE_WDT + 1)
+
typedef enum {
LPC24XX_MODULE_PCLK_DEFAULT = 0x0U,
LPC24XX_MODULE_CCLK = 0x1U,
@@ -102,24 +116,20 @@ typedef enum {
rtems_status_code lpc24xx_module_enable(
lpc24xx_module module,
- unsigned index,
lpc24xx_module_clock clock
);
rtems_status_code lpc24xx_module_disable(
- lpc24xx_module module,
- unsigned index
+ lpc24xx_module module
);
rtems_status_code lpc24xx_io_config(
lpc24xx_module module,
- unsigned index,
unsigned config
);
rtems_status_code lpc24xx_io_release(
lpc24xx_module module,
- unsigned index,
unsigned config
);
@@ -128,40 +138,40 @@ rtems_status_code lpc24xx_gpio_config(
lpc24xx_gpio_settings settings
);
-static inline void lpc24xx_gpio_set( unsigned index)
+static inline void lpc24xx_gpio_set(unsigned index)
{
if (index <= LPC24XX_IO_INDEX_MAX) {
- unsigned port = LPC24XX_IO_PORT( index);
- unsigned bit = LPC24XX_IO_PORT_BIT( index);
+ unsigned port = LPC24XX_IO_PORT(index);
+ unsigned bit = LPC24XX_IO_PORT_BIT(index);
LPC24XX_FIO [port].set = 1U << bit;
}
}
-static inline void lpc24xx_gpio_clear( unsigned index)
+static inline void lpc24xx_gpio_clear(unsigned index)
{
if (index <= LPC24XX_IO_INDEX_MAX) {
- unsigned port = LPC24XX_IO_PORT( index);
- unsigned bit = LPC24XX_IO_PORT_BIT( index);
+ unsigned port = LPC24XX_IO_PORT(index);
+ unsigned bit = LPC24XX_IO_PORT_BIT(index);
LPC24XX_FIO [port].clr = 1U << bit;
}
}
-static inline void lpc24xx_gpio_write( unsigned index, bool value)
+static inline void lpc24xx_gpio_write(unsigned index, bool value)
{
if (value) {
- lpc24xx_gpio_set( index);
+ lpc24xx_gpio_set(index);
} else {
- lpc24xx_gpio_clear( index);
+ lpc24xx_gpio_clear(index);
}
}
-static inline bool lpc24xx_gpio_get( unsigned index)
+static inline bool lpc24xx_gpio_get(unsigned index)
{
if (index <= LPC24XX_IO_INDEX_MAX) {
- unsigned port = LPC24XX_IO_PORT( index);
- unsigned bit = LPC24XX_IO_PORT_BIT( index);
+ unsigned port = LPC24XX_IO_PORT(index);
+ unsigned bit = LPC24XX_IO_PORT_BIT(index);
return (LPC24XX_FIO [port].pin & (1U << bit)) != 0;
} else {
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/irq.h b/c/src/lib/libbsp/arm/lpc24xx/include/irq.h
index d1cb6b5b7e..6b9ddf8a37 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/irq.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/irq.h
@@ -68,6 +68,9 @@
#define LPC24XX_IRQ_PRIORITY_VALUE_MIN 0U
#define LPC24XX_IRQ_PRIORITY_VALUE_MAX 15U
+#define LPC24XX_IRQ_PRIORITY_COUNT (LPC24XX_IRQ_PRIORITY_VALUE_MAX + 1U)
+#define LPC24XX_IRQ_PRIORITY_HIGHEST LPC24XX_IRQ_PRIORITY_VALUE_MIN
+#define LPC24XX_IRQ_PRIORITY_LOWEST LPC24XX_IRQ_PRIORITY_VALUE_MAX
/**
* @brief Minimum vector number.
@@ -79,11 +82,9 @@
*/
#define BSP_INTERRUPT_VECTOR_MAX LPC24XX_IRQ_I2S
-void bsp_interrupt_dispatch( void);
+void lpc24xx_irq_set_priority(rtems_vector_number vector, unsigned priority);
-void lpc24xx_irq_set_priority( rtems_vector_number vector, unsigned priority);
-
-unsigned lpc24xx_irq_priority( rtems_vector_number vector);
+unsigned lpc24xx_irq_get_priority(rtems_vector_number vector);
/** @} */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h b/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h
index b4da9f5096..daf198f372 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h
@@ -1172,11 +1172,11 @@ Reset, and Code Security/Debugging */
#define CLKSRCSEL_CLKSRC_MASK 0x00000003U
-#define GET_CLKSRCSEL_CLKSRC( reg) \
- GET_FIELD( reg, CLKSRCSEL_CLKSRC_MASK, 0)
+#define GET_CLKSRCSEL_CLKSRC(reg) \
+ GET_FIELD(reg, CLKSRCSEL_CLKSRC_MASK, 0)
-#define SET_CLKSRCSEL_CLKSRC( reg, val) \
- SET_FIELD( reg, val, CLKSRCSEL_CLKSRC_MASK, 0)
+#define SET_CLKSRCSEL_CLKSRC(reg, val) \
+ SET_FIELD(reg, val, CLKSRCSEL_CLKSRC_MASK, 0)
/* PLLCON */
@@ -1188,37 +1188,37 @@ Reset, and Code Security/Debugging */
#define PLLCFG_MSEL_MASK 0x00007fffU
-#define GET_PLLCFG_MSEL( reg) \
- GET_FIELD( reg, PLLCFG_MSEL_MASK, 0)
+#define GET_PLLCFG_MSEL(reg) \
+ GET_FIELD(reg, PLLCFG_MSEL_MASK, 0)
-#define SET_PLLCFG_MSEL( reg, val) \
- SET_FIELD( reg, val, PLLCFG_MSEL_MASK, 0)
+#define SET_PLLCFG_MSEL(reg, val) \
+ SET_FIELD(reg, val, PLLCFG_MSEL_MASK, 0)
#define PLLCFG_NSEL_MASK 0x00ff0000U
-#define GET_PLLCFG_NSEL( reg) \
- GET_FIELD( reg, PLLCFG_NSEL_MASK, 16)
+#define GET_PLLCFG_NSEL(reg) \
+ GET_FIELD(reg, PLLCFG_NSEL_MASK, 16)
-#define SET_PLLCFG_NSEL( reg, val) \
- SET_FIELD( reg, val, PLLCFG_NSEL_MASK, 16)
+#define SET_PLLCFG_NSEL(reg, val) \
+ SET_FIELD(reg, val, PLLCFG_NSEL_MASK, 16)
/* PLLSTAT */
#define PLLSTAT_MSEL_MASK 0x00007fffU
-#define GET_PLLSTAT_MSEL( reg) \
- GET_FIELD( reg, PLLSTAT_MSEL_MASK, 0)
+#define GET_PLLSTAT_MSEL(reg) \
+ GET_FIELD(reg, PLLSTAT_MSEL_MASK, 0)
-#define SET_PLLSTAT_MSEL( reg, val) \
- SET_FIELD( reg, val, PLLSTAT_MSEL_MASK, 0)
+#define SET_PLLSTAT_MSEL(reg, val) \
+ SET_FIELD(reg, val, PLLSTAT_MSEL_MASK, 0)
#define PLLSTAT_NSEL_MASK 0x00ff0000U
-#define GET_PLLSTAT_NSEL( reg) \
- GET_FIELD( reg, PLLSTAT_NSEL_MASK, 16)
+#define GET_PLLSTAT_NSEL(reg) \
+ GET_FIELD(reg, PLLSTAT_NSEL_MASK, 16)
-#define SET_PLLSTAT_NSEL( reg, val) \
- SET_FIELD( reg, val, PLLSTAT_NSEL_MASK, 16)
+#define SET_PLLSTAT_NSEL(reg, val) \
+ SET_FIELD(reg, val, PLLSTAT_NSEL_MASK, 16)
#define PLLSTAT_PLLE 0x01000000U
@@ -1230,21 +1230,21 @@ Reset, and Code Security/Debugging */
#define CCLKCFG_CCLKSEL_MASK 0x000000ffU
-#define GET_CCLKCFG_CCLKSEL( reg) \
- GET_FIELD( reg, CCLKCFG_CCLKSEL_MASK, 0)
+#define GET_CCLKCFG_CCLKSEL(reg) \
+ GET_FIELD(reg, CCLKCFG_CCLKSEL_MASK, 0)
-#define SET_CCLKCFG_CCLKSEL( reg, val) \
- SET_FIELD( reg, val, CCLKCFG_CCLKSEL_MASK, 0)
+#define SET_CCLKCFG_CCLKSEL(reg, val) \
+ SET_FIELD(reg, val, CCLKCFG_CCLKSEL_MASK, 0)
/* MEMMAP */
#define MEMMAP_MAP_MASK 0x00000003U
-#define GET_MEMMAP_MAP( reg) \
- GET_FIELD( reg, MEMMAP_MAP_MASK, 0)
+#define GET_MEMMAP_MAP(reg) \
+ GET_FIELD(reg, MEMMAP_MAP_MASK, 0)
-#define SET_MEMMAP_MAP( reg, val) \
- SET_FIELD( reg, val, MEMMAP_MAP_MASK, 0)
+#define SET_MEMMAP_MAP(reg, val) \
+ SET_FIELD(reg, val, MEMMAP_MAP_MASK, 0)
/* TIR */
@@ -1300,229 +1300,229 @@ Reset, and Code Security/Debugging */
#define PCLKSEL0_PCLK_WDT_MASK 0x00000003U
-#define GET_PCLKSEL0_PCLK_WDT( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_WDT_MASK, 0)
+#define GET_PCLKSEL0_PCLK_WDT(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_WDT_MASK, 0)
-#define SET_PCLKSEL0_PCLK_WDT( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_WDT_MASK, 0)
+#define SET_PCLKSEL0_PCLK_WDT(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_WDT_MASK, 0)
#define PCLKSEL0_PCLK_TIMER0_MASK 0x0000000cU
-#define GET_PCLKSEL0_PCLK_TIMER0( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_TIMER0_MASK, 2)
+#define GET_PCLKSEL0_PCLK_TIMER0(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_TIMER0_MASK, 2)
-#define SET_PCLKSEL0_PCLK_TIMER0( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_TIMER0_MASK, 2)
+#define SET_PCLKSEL0_PCLK_TIMER0(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_TIMER0_MASK, 2)
#define PCLKSEL0_PCLK_TIMER1_MASK 0x00000030U
-#define GET_PCLKSEL0_PCLK_TIMER1( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_TIMER1_MASK, 4)
+#define GET_PCLKSEL0_PCLK_TIMER1(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_TIMER1_MASK, 4)
-#define SET_PCLKSEL0_PCLK_TIMER1( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_TIMER1_MASK, 4)
+#define SET_PCLKSEL0_PCLK_TIMER1(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_TIMER1_MASK, 4)
#define PCLKSEL0_PCLK_UART0_MASK 0x000000c0U
-#define GET_PCLKSEL0_PCLK_UART0( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_UART0_MASK, 6)
+#define GET_PCLKSEL0_PCLK_UART0(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_UART0_MASK, 6)
-#define SET_PCLKSEL0_PCLK_UART0( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_UART0_MASK, 6)
+#define SET_PCLKSEL0_PCLK_UART0(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_UART0_MASK, 6)
#define PCLKSEL0_PCLK_UART1_MASK 0x00000300U
-#define GET_PCLKSEL0_PCLK_UART1( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_UART1_MASK, 8)
+#define GET_PCLKSEL0_PCLK_UART1(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_UART1_MASK, 8)
-#define SET_PCLKSEL0_PCLK_UART1( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_UART1_MASK, 8)
+#define SET_PCLKSEL0_PCLK_UART1(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_UART1_MASK, 8)
#define PCLKSEL0_PCLK_PWM0_MASK 0x00000c00U
-#define GET_PCLKSEL0_PCLK_PWM0( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_PWM0_MASK, 10)
+#define GET_PCLKSEL0_PCLK_PWM0(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_PWM0_MASK, 10)
-#define SET_PCLKSEL0_PCLK_PWM0( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_PWM0_MASK, 10)
+#define SET_PCLKSEL0_PCLK_PWM0(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_PWM0_MASK, 10)
#define PCLKSEL0_PCLK_PWM1_MASK 0x00003000U
-#define GET_PCLKSEL0_PCLK_PWM1( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_PWM1_MASK, 12)
+#define GET_PCLKSEL0_PCLK_PWM1(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_PWM1_MASK, 12)
-#define SET_PCLKSEL0_PCLK_PWM1( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_PWM1_MASK, 12)
+#define SET_PCLKSEL0_PCLK_PWM1(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_PWM1_MASK, 12)
#define PCLKSEL0_PCLK_I2C0_MASK 0x0000c000U
-#define GET_PCLKSEL0_PCLK_I2C0( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_I2C0_MASK, 14)
+#define GET_PCLKSEL0_PCLK_I2C0(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_I2C0_MASK, 14)
-#define SET_PCLKSEL0_PCLK_I2C0( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_I2C0_MASK, 14)
+#define SET_PCLKSEL0_PCLK_I2C0(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_I2C0_MASK, 14)
#define PCLKSEL0_PCLK_SPI_MASK 0x00030000U
-#define GET_PCLKSEL0_PCLK_SPI( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_SPI_MASK, 16)
+#define GET_PCLKSEL0_PCLK_SPI(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_SPI_MASK, 16)
-#define SET_PCLKSEL0_PCLK_SPI( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_SPI_MASK, 16)
+#define SET_PCLKSEL0_PCLK_SPI(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_SPI_MASK, 16)
#define PCLKSEL0_PCLK_RTC_MASK 0x000c0000U
-#define GET_PCLKSEL0_PCLK_RTC( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_RTC_MASK, 18)
+#define GET_PCLKSEL0_PCLK_RTC(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_RTC_MASK, 18)
-#define SET_PCLKSEL0_PCLK_RTC( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_RTC_MASK, 18)
+#define SET_PCLKSEL0_PCLK_RTC(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_RTC_MASK, 18)
#define PCLKSEL0_PCLK_SSP1_MASK 0x00300000U
-#define GET_PCLKSEL0_PCLK_SSP1( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_SSP1_MASK, 20)
+#define GET_PCLKSEL0_PCLK_SSP1(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_SSP1_MASK, 20)
-#define SET_PCLKSEL0_PCLK_SSP1( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_SSP1_MASK, 20)
+#define SET_PCLKSEL0_PCLK_SSP1(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_SSP1_MASK, 20)
#define PCLKSEL0_PCLK_DAC_MASK 0x00c00000U
-#define GET_PCLKSEL0_PCLK_DAC( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_DAC_MASK, 22)
+#define GET_PCLKSEL0_PCLK_DAC(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_DAC_MASK, 22)
-#define SET_PCLKSEL0_PCLK_DAC( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_DAC_MASK, 22)
+#define SET_PCLKSEL0_PCLK_DAC(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_DAC_MASK, 22)
#define PCLKSEL0_PCLK_ADC_MASK 0x03000000U
-#define GET_PCLKSEL0_PCLK_ADC( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_ADC_MASK, 24)
+#define GET_PCLKSEL0_PCLK_ADC(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_ADC_MASK, 24)
-#define SET_PCLKSEL0_PCLK_ADC( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_ADC_MASK, 24)
+#define SET_PCLKSEL0_PCLK_ADC(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_ADC_MASK, 24)
#define PCLKSEL0_PCLK_CAN1_MASK 0x0c000000U
-#define GET_PCLKSEL0_PCLK_CAN1( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_CAN1_MASK, 26)
+#define GET_PCLKSEL0_PCLK_CAN1(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_CAN1_MASK, 26)
-#define SET_PCLKSEL0_PCLK_CAN1( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_CAN1_MASK, 26)
+#define SET_PCLKSEL0_PCLK_CAN1(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_CAN1_MASK, 26)
#define PCLKSEL0_PCLK_CAN2_MASK 0x30000000U
-#define GET_PCLKSEL0_PCLK_CAN2( reg) \
- GET_FIELD( reg, PCLKSEL0_PCLK_CAN2_MASK, 28)
+#define GET_PCLKSEL0_PCLK_CAN2(reg) \
+ GET_FIELD(reg, PCLKSEL0_PCLK_CAN2_MASK, 28)
-#define SET_PCLKSEL0_PCLK_CAN2( reg, val) \
- SET_FIELD( reg, val, PCLKSEL0_PCLK_CAN2_MASK, 28)
+#define SET_PCLKSEL0_PCLK_CAN2(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL0_PCLK_CAN2_MASK, 28)
/* PCLKSEL1 */
#define PCLKSEL1_PCLK_BAT_RAM_MASK 0x00000003U
-#define GET_PCLKSEL1_PCLK_BAT_RAM( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_BAT_RAM_MASK, 0)
+#define GET_PCLKSEL1_PCLK_BAT_RAM(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_BAT_RAM_MASK, 0)
-#define SET_PCLKSEL1_PCLK_BAT_RAM( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_BAT_RAM_MASK, 0)
+#define SET_PCLKSEL1_PCLK_BAT_RAM(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_BAT_RAM_MASK, 0)
#define PCLKSEL1_PCLK_GPIO_MASK 0x0000000cU
-#define GET_PCLKSEL1_PCLK_GPIO( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_GPIO_MASK, 2)
+#define GET_PCLKSEL1_PCLK_GPIO(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_GPIO_MASK, 2)
-#define SET_PCLKSEL1_PCLK_GPIO( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_GPIO_MASK, 2)
+#define SET_PCLKSEL1_PCLK_GPIO(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_GPIO_MASK, 2)
#define PCLKSEL1_PCLK_PCB_MASK 0x00000030U
-#define GET_PCLKSEL1_PCLK_PCB( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_PCB_MASK, 4)
+#define GET_PCLKSEL1_PCLK_PCB(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_PCB_MASK, 4)
-#define SET_PCLKSEL1_PCLK_PCB( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_PCB_MASK, 4)
+#define SET_PCLKSEL1_PCLK_PCB(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_PCB_MASK, 4)
#define PCLKSEL1_PCLK_I2C1_MASK 0x000000c0U
-#define GET_PCLKSEL1_PCLK_I2C1( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_I2C1_MASK, 6)
+#define GET_PCLKSEL1_PCLK_I2C1(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_I2C1_MASK, 6)
-#define SET_PCLKSEL1_PCLK_I2C1( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_I2C1_MASK, 6)
+#define SET_PCLKSEL1_PCLK_I2C1(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_I2C1_MASK, 6)
#define PCLKSEL1_PCLK_SSP0_MASK 0x00000c00U
-#define GET_PCLKSEL1_PCLK_SSP0( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_SSP0_MASK, 10)
+#define GET_PCLKSEL1_PCLK_SSP0(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_SSP0_MASK, 10)
-#define SET_PCLKSEL1_PCLK_SSP0( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_SSP0_MASK, 10)
+#define SET_PCLKSEL1_PCLK_SSP0(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_SSP0_MASK, 10)
#define PCLKSEL1_PCLK_TIMER2_MASK 0x00003000U
-#define GET_PCLKSEL1_PCLK_TIMER2( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_TIMER2_MASK, 12)
+#define GET_PCLKSEL1_PCLK_TIMER2(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_TIMER2_MASK, 12)
-#define SET_PCLKSEL1_PCLK_TIMER2( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_TIMER2_MASK, 12)
+#define SET_PCLKSEL1_PCLK_TIMER2(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_TIMER2_MASK, 12)
#define PCLKSEL1_PCLK_TIMER3_MASK 0x0000c000U
-#define GET_PCLKSEL1_PCLK_TIMER3( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_TIMER3_MASK, 14)
+#define GET_PCLKSEL1_PCLK_TIMER3(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_TIMER3_MASK, 14)
-#define SET_PCLKSEL1_PCLK_TIMER3( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_TIMER3_MASK, 14)
+#define SET_PCLKSEL1_PCLK_TIMER3(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_TIMER3_MASK, 14)
#define PCLKSEL1_PCLK_UART2_MASK 0x00030000U
-#define GET_PCLKSEL1_PCLK_UART2( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_UART2_MASK, 16)
+#define GET_PCLKSEL1_PCLK_UART2(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_UART2_MASK, 16)
-#define SET_PCLKSEL1_PCLK_UART2( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_UART2_MASK, 16)
+#define SET_PCLKSEL1_PCLK_UART2(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_UART2_MASK, 16)
#define PCLKSEL1_PCLK_UART3_MASK 0x000c0000U
-#define GET_PCLKSEL1_PCLK_UART3( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_UART3_MASK, 18)
+#define GET_PCLKSEL1_PCLK_UART3(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_UART3_MASK, 18)
-#define SET_PCLKSEL1_PCLK_UART3( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_UART3_MASK, 18)
+#define SET_PCLKSEL1_PCLK_UART3(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_UART3_MASK, 18)
#define PCLKSEL1_PCLK_I2C2_MASK 0x00300000U
-#define GET_PCLKSEL1_PCLK_I2C2( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_I2C2_MASK, 20)
+#define GET_PCLKSEL1_PCLK_I2C2(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_I2C2_MASK, 20)
-#define SET_PCLKSEL1_PCLK_I2C2( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_I2C2_MASK, 20)
+#define SET_PCLKSEL1_PCLK_I2C2(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_I2C2_MASK, 20)
#define PCLKSEL1_PCLK_I2S_MASK 0x00c00000U
-#define GET_PCLKSEL1_PCLK_I2S( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_I2S_MASK, 22)
+#define GET_PCLKSEL1_PCLK_I2S(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_I2S_MASK, 22)
-#define SET_PCLKSEL1_PCLK_I2S( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_I2S_MASK, 22)
+#define SET_PCLKSEL1_PCLK_I2S(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_I2S_MASK, 22)
#define PCLKSEL1_PCLK_MCI_MASK 0x03000000U
-#define GET_PCLKSEL1_PCLK_MCI( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_MCI_MASK, 24)
+#define GET_PCLKSEL1_PCLK_MCI(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_MCI_MASK, 24)
-#define SET_PCLKSEL1_PCLK_MCI( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_MCI_MASK, 24)
+#define SET_PCLKSEL1_PCLK_MCI(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_MCI_MASK, 24)
#define PCLKSEL1_PCLK_SYSCON_MASK 0x30000000U
-#define GET_PCLKSEL1_PCLK_SYSCON( reg) \
- GET_FIELD( reg, PCLKSEL1_PCLK_SYSCON_MASK, 28)
+#define GET_PCLKSEL1_PCLK_SYSCON(reg) \
+ GET_FIELD(reg, PCLKSEL1_PCLK_SYSCON_MASK, 28)
-#define SET_PCLKSEL1_PCLK_SYSCON( reg, val) \
- SET_FIELD( reg, val, PCLKSEL1_PCLK_SYSCON_MASK, 28)
+#define SET_PCLKSEL1_PCLK_SYSCON(reg, val) \
+ SET_FIELD(reg, val, PCLKSEL1_PCLK_SYSCON_MASK, 28)
/* RTC_ILR */
@@ -1559,19 +1559,19 @@ typedef struct {
#define SSP_CR0_DSS_MASK 0x0000000fU
-#define GET_SSP_CR0_DSS( reg) \
- GET_FIELD( reg, SSP_CR0_DSS_MASK, 0)
+#define GET_SSP_CR0_DSS(reg) \
+ GET_FIELD(reg, SSP_CR0_DSS_MASK, 0)
-#define SET_SSP_CR0_DSS( reg, val) \
- SET_FIELD( reg, val, SSP_CR0_DSS_MASK, 0)
+#define SET_SSP_CR0_DSS(reg, val) \
+ SET_FIELD(reg, val, SSP_CR0_DSS_MASK, 0)
#define SSP_CR0_FRF_MASK 0x00000030U
-#define GET_SSP_CR0_FRF( reg) \
- GET_FIELD( reg, SSP_CR0_FRF_MASK, 4)
+#define GET_SSP_CR0_FRF(reg) \
+ GET_FIELD(reg, SSP_CR0_FRF_MASK, 4)
-#define SET_SSP_CR0_FRF( reg, val) \
- SET_FIELD( reg, val, SSP_CR0_FRF_MASK, 4)
+#define SET_SSP_CR0_FRF(reg, val) \
+ SET_FIELD(reg, val, SSP_CR0_FRF_MASK, 4)
#define SSP_CR0_CPOL 0x00000040U
@@ -1579,11 +1579,11 @@ typedef struct {
#define SSP_CR0_SCR_MASK 0x0000ff00U
-#define GET_SSP_CR0_SCR( reg) \
- GET_FIELD( reg, SSP_CR0_SCR_MASK, 8)
+#define GET_SSP_CR0_SCR(reg) \
+ GET_FIELD(reg, SSP_CR0_SCR_MASK, 8)
-#define SET_SSP_CR0_SCR( reg, val) \
- SET_FIELD( reg, val, SSP_CR0_SCR_MASK, 8)
+#define SET_SSP_CR0_SCR(reg, val) \
+ SET_FIELD(reg, val, SSP_CR0_SCR_MASK, 8)
/* SSP_CR1 */
@@ -1673,7 +1673,7 @@ typedef struct {
#define GPDMA_STATUS_CH_1 0x00000002U
-#define GPDMA_CH_BASE_ADDR( i) \
+#define GPDMA_CH_BASE_ADDR(i) \
((volatile lpc24xx_dma_channel *) \
((i) ? GPDMA_CH1_BASE_ADDR : GPDMA_CH0_BASE_ADDR))
@@ -1693,29 +1693,29 @@ typedef struct {
#define GPDMA_CH_CTRL_TSZ_MASK 0x00000fffU
-#define GET_GPDMA_CH_CTRL_TSZ( reg) \
- GET_FIELD( reg, GPDMA_CH_CTRL_TSZ_MASK, 0)
+#define GET_GPDMA_CH_CTRL_TSZ(reg) \
+ GET_FIELD(reg, GPDMA_CH_CTRL_TSZ_MASK, 0)
-#define SET_GPDMA_CH_CTRL_TSZ( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CTRL_TSZ_MASK, 0)
+#define SET_GPDMA_CH_CTRL_TSZ(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CTRL_TSZ_MASK, 0)
#define GPDMA_CH_CTRL_TSZ_MAX 0x00000fffU
#define GPDMA_CH_CTRL_SBSZ_MASK 0x00007000U
-#define GET_GPDMA_CH_CTRL_SBSZ( reg) \
- GET_FIELD( reg, GPDMA_CH_CTRL_SBSZ_MASK, 12)
+#define GET_GPDMA_CH_CTRL_SBSZ(reg) \
+ GET_FIELD(reg, GPDMA_CH_CTRL_SBSZ_MASK, 12)
-#define SET_GPDMA_CH_CTRL_SBSZ( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CTRL_SBSZ_MASK, 12)
+#define SET_GPDMA_CH_CTRL_SBSZ(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CTRL_SBSZ_MASK, 12)
#define GPDMA_CH_CTRL_DBSZ_MASK 0x00038000U
-#define GET_GPDMA_CH_CTRL_DBSZ( reg) \
- GET_FIELD( reg, GPDMA_CH_CTRL_DBSZ_MASK, 15)
+#define GET_GPDMA_CH_CTRL_DBSZ(reg) \
+ GET_FIELD(reg, GPDMA_CH_CTRL_DBSZ_MASK, 15)
-#define SET_GPDMA_CH_CTRL_DBSZ( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CTRL_DBSZ_MASK, 15)
+#define SET_GPDMA_CH_CTRL_DBSZ(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CTRL_DBSZ_MASK, 15)
#define GPDMA_CH_CTRL_BSZ_1 0x00000000U
@@ -1735,19 +1735,19 @@ typedef struct {
#define GPDMA_CH_CTRL_SW_MASK 0x001c0000U
-#define GET_GPDMA_CH_CTRL_SW( reg) \
- GET_FIELD( reg, GPDMA_CH_CTRL_SW_MASK, 18)
+#define GET_GPDMA_CH_CTRL_SW(reg) \
+ GET_FIELD(reg, GPDMA_CH_CTRL_SW_MASK, 18)
-#define SET_GPDMA_CH_CTRL_SW( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CTRL_SW_MASK, 18)
+#define SET_GPDMA_CH_CTRL_SW(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CTRL_SW_MASK, 18)
#define GPDMA_CH_CTRL_DW_MASK 0x00e00000U
-#define GET_GPDMA_CH_CTRL_DW( reg) \
- GET_FIELD( reg, GPDMA_CH_CTRL_DW_MASK, 21)
+#define GET_GPDMA_CH_CTRL_DW(reg) \
+ GET_FIELD(reg, GPDMA_CH_CTRL_DW_MASK, 21)
-#define SET_GPDMA_CH_CTRL_DW( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CTRL_DW_MASK, 21)
+#define SET_GPDMA_CH_CTRL_DW(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CTRL_DW_MASK, 21)
#define GPDMA_CH_CTRL_W_8 0x00000000U
@@ -1761,11 +1761,11 @@ typedef struct {
#define GPDMA_CH_CTRL_PROT_MASK 0x70000000U
-#define GET_GPDMA_CH_CTRL_PROT( reg) \
- GET_FIELD( reg, GPDMA_CH_CTRL_PROT_MASK, 28)
+#define GET_GPDMA_CH_CTRL_PROT(reg) \
+ GET_FIELD(reg, GPDMA_CH_CTRL_PROT_MASK, 28)
-#define SET_GPDMA_CH_CTRL_PROT( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CTRL_PROT_MASK, 28)
+#define SET_GPDMA_CH_CTRL_PROT(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CTRL_PROT_MASK, 28)
#define GPDMA_CH_CTRL_ITC 0x80000000U
@@ -1775,19 +1775,19 @@ typedef struct {
#define GPDMA_CH_CFG_SRCPER_MASK 0x0000001eU
-#define GET_GPDMA_CH_CFG_SRCPER( reg) \
- GET_FIELD( reg, GPDMA_CH_CFG_SRCPER_MASK, 1)
+#define GET_GPDMA_CH_CFG_SRCPER(reg) \
+ GET_FIELD(reg, GPDMA_CH_CFG_SRCPER_MASK, 1)
-#define SET_GPDMA_CH_CFG_SRCPER( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CFG_SRCPER_MASK, 1)
+#define SET_GPDMA_CH_CFG_SRCPER(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CFG_SRCPER_MASK, 1)
#define GPDMA_CH_CFG_DESTPER_MASK 0x000003c0U
-#define GET_GPDMA_CH_CFG_DESTPER( reg) \
- GET_FIELD( reg, GPDMA_CH_CFG_DESTPER_MASK, 6)
+#define GET_GPDMA_CH_CFG_DESTPER(reg) \
+ GET_FIELD(reg, GPDMA_CH_CFG_DESTPER_MASK, 6)
-#define SET_GPDMA_CH_CFG_DESTPER( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CFG_DESTPER_MASK, 6)
+#define SET_GPDMA_CH_CFG_DESTPER(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CFG_DESTPER_MASK, 6)
#define GPDMA_CH_CFG_PER_SSP0_TX 0x00000000U
@@ -1805,11 +1805,11 @@ typedef struct {
#define GPDMA_CH_CFG_FLOW_MASK 0x00003800U
-#define GET_GPDMA_CH_CFG_FLOW( reg) \
- GET_FIELD( reg, GPDMA_CH_CFG_FLOW_MASK, 11)
+#define GET_GPDMA_CH_CFG_FLOW(reg) \
+ GET_FIELD(reg, GPDMA_CH_CFG_FLOW_MASK, 11)
-#define SET_GPDMA_CH_CFG_FLOW( reg, val) \
- SET_FIELD( reg, val, GPDMA_CH_CFG_FLOW_MASK, 11)
+#define SET_GPDMA_CH_CFG_FLOW(reg, val) \
+ SET_FIELD(reg, val, GPDMA_CH_CFG_FLOW_MASK, 11)
#define GPDMA_CH_CFG_FLOW_MEM_TO_MEM_DMA 0x00000000U
@@ -1859,11 +1859,11 @@ typedef struct {
#define ETH_RX_CTRL_SIZE_MASK 0x000007ffU
-#define GET_ETH_RX_CTRL_SIZE( reg) \
- GET_FIELD( reg, ETH_RX_CTRL_SIZE_MASK, 0)
+#define GET_ETH_RX_CTRL_SIZE(reg) \
+ GET_FIELD(reg, ETH_RX_CTRL_SIZE_MASK, 0)
-#define SET_ETH_RX_CTRL_SIZE( reg, val) \
- SET_FIELD( reg, val, ETH_RX_CTRL_SIZE_MASK, 0)
+#define SET_ETH_RX_CTRL_SIZE(reg, val) \
+ SET_FIELD(reg, val, ETH_RX_CTRL_SIZE_MASK, 0)
#define ETH_RX_CTRL_INTERRUPT 0x80000000U
@@ -1871,11 +1871,11 @@ typedef struct {
#define ETH_RX_STAT_RXSIZE_MASK 0x000007ffU
-#define GET_ETH_RX_STAT_RXSIZE( reg) \
- GET_FIELD( reg, ETH_RX_STAT_RXSIZE_MASK, 0)
+#define GET_ETH_RX_STAT_RXSIZE(reg) \
+ GET_FIELD(reg, ETH_RX_STAT_RXSIZE_MASK, 0)
-#define SET_ETH_RX_STAT_RXSIZE( reg, val) \
- SET_FIELD( reg, val, ETH_RX_STAT_RXSIZE_MASK, 0)
+#define SET_ETH_RX_STAT_RXSIZE(reg, val) \
+ SET_FIELD(reg, val, ETH_RX_STAT_RXSIZE_MASK, 0)
#define ETH_RX_STAT_BYTES 0x00000100U
@@ -1911,11 +1911,11 @@ typedef struct {
#define ETH_TX_CTRL_SIZE_MASK 0x000007ffU
-#define GET_ETH_TX_CTRL_SIZE( reg) \
- GET_FIELD( reg, ETH_TX_CTRL_SIZE_MASK, 0)
+#define GET_ETH_TX_CTRL_SIZE(reg) \
+ GET_FIELD(reg, ETH_TX_CTRL_SIZE_MASK, 0)
-#define SET_ETH_TX_CTRL_SIZE( reg, val) \
- SET_FIELD( reg, val, ETH_TX_CTRL_SIZE_MASK, 0)
+#define SET_ETH_TX_CTRL_SIZE(reg, val) \
+ SET_FIELD(reg, val, ETH_TX_CTRL_SIZE_MASK, 0)
#define ETH_TX_CTRL_OVERRIDE 0x04000000U
@@ -1933,11 +1933,11 @@ typedef struct {
#define ETH_TX_STAT_COLLISION_COUNT_MASK 0x01e00000U
-#define GET_ETH_TX_STAT_COLLISION_COUNT( reg) \
- GET_FIELD( reg, ETH_TX_STAT_COLLISION_COUNT_MASK, 21)
+#define GET_ETH_TX_STAT_COLLISION_COUNT(reg) \
+ GET_FIELD(reg, ETH_TX_STAT_COLLISION_COUNT_MASK, 21)
-#define SET_ETH_TX_STAT_COLLISION_COUNT( reg, val) \
- SET_FIELD( reg, val, ETH_TX_STAT_COLLISION_COUNT_MASK, 21)
+#define SET_ETH_TX_STAT_COLLISION_COUNT(reg, val) \
+ SET_FIELD(reg, val, ETH_TX_STAT_COLLISION_COUNT_MASK, 21)
#define ETH_TX_STAT_DEFER 0x02000000U
@@ -2027,69 +2027,69 @@ typedef struct {
#define AHBCFG_BREAK_BURST_MASK 0x00000006U
-#define GET_AHBCFG_BREAK_BURST( reg) \
- GET_FIELD( reg, AHBCFG_BREAK_BURST_MASK, 1)
+#define GET_AHBCFG_BREAK_BURST(reg) \
+ GET_FIELD(reg, AHBCFG_BREAK_BURST_MASK, 1)
-#define SET_AHBCFG_BREAK_BURST( reg, val) \
- SET_FIELD( reg, val, AHBCFG_BREAK_BURST_MASK, 1)
+#define SET_AHBCFG_BREAK_BURST(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_BREAK_BURST_MASK, 1)
#define AHBCFG_QUANTUM_BUS_CYCLE 0x00000008U
#define AHBCFG_QUANTUM_SIZE_MASK 0x000000f0U
-#define GET_AHBCFG_QUANTUM_SIZE( reg) \
- GET_FIELD( reg, AHBCFG_QUANTUM_SIZE_MASK, 4)
+#define GET_AHBCFG_QUANTUM_SIZE(reg) \
+ GET_FIELD(reg, AHBCFG_QUANTUM_SIZE_MASK, 4)
-#define SET_AHBCFG_QUANTUM_SIZE( reg, val) \
- SET_FIELD( reg, val, AHBCFG_QUANTUM_SIZE_MASK, 4)
+#define SET_AHBCFG_QUANTUM_SIZE(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_QUANTUM_SIZE_MASK, 4)
#define AHBCFG_DEFAULT_MASTER_MASK 0x00000700U
-#define GET_AHBCFG_DEFAULT_MASTER( reg) \
- GET_FIELD( reg, AHBCFG_DEFAULT_MASTER_MASK, 8)
+#define GET_AHBCFG_DEFAULT_MASTER(reg) \
+ GET_FIELD(reg, AHBCFG_DEFAULT_MASTER_MASK, 8)
-#define SET_AHBCFG_DEFAULT_MASTER( reg, val) \
- SET_FIELD( reg, val, AHBCFG_DEFAULT_MASTER_MASK, 8)
+#define SET_AHBCFG_DEFAULT_MASTER(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_DEFAULT_MASTER_MASK, 8)
#define AHBCFG_EP1_MASK 0x00007000U
-#define GET_AHBCFG_EP1( reg) \
- GET_FIELD( reg, AHBCFG_EP1_MASK, 12)
+#define GET_AHBCFG_EP1(reg) \
+ GET_FIELD(reg, AHBCFG_EP1_MASK, 12)
-#define SET_AHBCFG_EP1( reg, val) \
- SET_FIELD( reg, val, AHBCFG_EP1_MASK, 12)
+#define SET_AHBCFG_EP1(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_EP1_MASK, 12)
#define AHBCFG_EP2_MASK 0x00070000U
-#define GET_AHBCFG_EP2( reg) \
- GET_FIELD( reg, AHBCFG_EP2_MASK, 16)
+#define GET_AHBCFG_EP2(reg) \
+ GET_FIELD(reg, AHBCFG_EP2_MASK, 16)
-#define SET_AHBCFG_EP2( reg, val) \
- SET_FIELD( reg, val, AHBCFG_EP2_MASK, 16)
+#define SET_AHBCFG_EP2(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_EP2_MASK, 16)
#define AHBCFG_EP3_MASK 0x00700000U
-#define GET_AHBCFG_EP3( reg) \
- GET_FIELD( reg, AHBCFG_EP3_MASK, 20)
+#define GET_AHBCFG_EP3(reg) \
+ GET_FIELD(reg, AHBCFG_EP3_MASK, 20)
-#define SET_AHBCFG_EP3( reg, val) \
- SET_FIELD( reg, val, AHBCFG_EP3_MASK, 20)
+#define SET_AHBCFG_EP3(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_EP3_MASK, 20)
#define AHBCFG_EP4_MASK 0x07000000U
-#define GET_AHBCFG_EP4( reg) \
- GET_FIELD( reg, AHBCFG_EP4_MASK, 24)
+#define GET_AHBCFG_EP4(reg) \
+ GET_FIELD(reg, AHBCFG_EP4_MASK, 24)
-#define SET_AHBCFG_EP4( reg, val) \
- SET_FIELD( reg, val, AHBCFG_EP4_MASK, 24)
+#define SET_AHBCFG_EP4(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_EP4_MASK, 24)
#define AHBCFG_EP5_MASK 0x70000000U
-#define GET_AHBCFG_EP5( reg) \
- GET_FIELD( reg, AHBCFG_EP5_MASK, 28)
+#define GET_AHBCFG_EP5(reg) \
+ GET_FIELD(reg, AHBCFG_EP5_MASK, 28)
-#define SET_AHBCFG_EP5( reg, val) \
- SET_FIELD( reg, val, AHBCFG_EP5_MASK, 28)
+#define SET_AHBCFG_EP5(reg, val) \
+ SET_FIELD(reg, val, AHBCFG_EP5_MASK, 28)
/* EMC */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c b/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
index 0c5e9a307d..d3073315f8 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/irq/irq.c
@@ -23,14 +23,14 @@
#include <bsp/irq-generic.h>
#include <bsp/lpc24xx.h>
-static inline bool lpc24xx_irq_is_valid( rtems_vector_number vector)
+static inline bool lpc24xx_irq_is_valid(rtems_vector_number vector)
{
return vector <= BSP_INTERRUPT_VECTOR_MAX;
}
-void lpc24xx_irq_set_priority( rtems_vector_number vector, unsigned priority)
+void lpc24xx_irq_set_priority(rtems_vector_number vector, unsigned priority)
{
- if (lpc24xx_irq_is_valid( vector)) {
+ if (lpc24xx_irq_is_valid(vector)) {
if (priority > LPC24XX_IRQ_PRIORITY_VALUE_MAX) {
priority = LPC24XX_IRQ_PRIORITY_VALUE_MAX;
}
@@ -39,16 +39,16 @@ void lpc24xx_irq_set_priority( rtems_vector_number vector, unsigned priority)
}
}
-unsigned lpc24xx_irq_priority( rtems_vector_number vector)
+unsigned lpc24xx_irq_get_priority(rtems_vector_number vector)
{
- if (lpc24xx_irq_is_valid( vector)) {
+ if (lpc24xx_irq_is_valid(vector)) {
return VICVectPriorityBase [vector];
} else {
return LPC24XX_IRQ_PRIORITY_VALUE_MIN - 1U;
}
}
-void bsp_interrupt_dispatch( void)
+void bsp_interrupt_dispatch(void)
{
/* Read current vector number */
rtems_vector_number vector = VICVectAddr;
@@ -57,37 +57,34 @@ void bsp_interrupt_dispatch( void)
uint32_t psr = arm_status_irq_enable();
/* Dispatch interrupt handlers */
- bsp_interrupt_handler_dispatch( vector);
+ bsp_interrupt_handler_dispatch(vector);
/* Restore program status register */
- arm_status_restore( psr);
+ arm_status_restore(psr);
/* Acknowledge interrupt */
VICVectAddr = 0;
}
-rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
{
- if (lpc24xx_irq_is_valid( vector)) {
+ if (lpc24xx_irq_is_valid(vector)) {
VICIntEnable = 1U << vector;
}
return RTEMS_SUCCESSFUL;
}
-rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector)
+rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
{
- if (lpc24xx_irq_is_valid( vector)) {
+ if (lpc24xx_irq_is_valid(vector)) {
VICIntEnClear = 1U << vector;
}
return RTEMS_SUCCESSFUL;
}
-/* FIXME */
-void arm_exc_interrupt( void);
-
-rtems_status_code bsp_interrupt_facility_initialize( void)
+rtems_status_code bsp_interrupt_facility_initialize(void)
{
volatile uint32_t *addr = VICVectAddrBase;
volatile uint32_t *prio = VICVectPriorityBase;
@@ -117,12 +114,12 @@ rtems_status_code bsp_interrupt_facility_initialize( void)
VICVectAddr = 0;
/* Install the IRQ exception handler */
- _CPU_ISR_install_vector( ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
+ _CPU_ISR_install_vector(ARM_EXCEPTION_IRQ, arm_exc_interrupt, NULL);
return RTEMS_SUCCESSFUL;
}
-void bsp_interrupt_handler_default( rtems_vector_number vector)
+void bsp_interrupt_handler_default(rtems_vector_number vector)
{
- printk( "spurious interrupt: %u\n", vector);
+ printk("spurious interrupt: %u\n", vector);
}
diff --git a/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c b/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c
index 1f3f896d43..32df2a7fa8 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/misc/dma.c
@@ -33,7 +33,7 @@ static bool lpc24xx_dma_channel_occupation [GPDMA_CH_NUMBER];
void lpc24xx_dma_initialize(void)
{
/* Enable module power */
- lpc24xx_module_enable(LPC24XX_MODULE_GPDMA, 0, LPC24XX_MODULE_PCLK_DEFAULT);
+ lpc24xx_module_enable(LPC24XX_MODULE_GPDMA, LPC24XX_MODULE_PCLK_DEFAULT);
/* Disable module */
GPDMA_CONFIG = 0;
diff --git a/c/src/lib/libbsp/arm/lpc24xx/misc/io.c b/c/src/lib/libbsp/arm/lpc24xx/misc/io.c
index 6526bf8b7c..340ce2153a 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/misc/io.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/misc/io.c
@@ -36,10 +36,9 @@
#define LPC24XX_IO_ALTERNATE_2 0x3U
-#define LPC24XX_IO_ENTRY(mod, idx, cfg, begin_port, begin_index, last_port, last_index, function) \
+#define LPC24XX_IO_ENTRY(mod, cfg, begin_port, begin_index, last_port, last_index, function) \
{ \
.module = mod, \
- .index = idx, \
.config = cfg, \
.pin_begin = LPC24XX_IO_INDEX_BY_PORT(begin_port, begin_index), \
.pin_last = LPC24XX_IO_INDEX_BY_PORT(last_port, last_index), \
@@ -47,8 +46,7 @@
}
typedef struct {
- unsigned module : 5;
- unsigned index : 4;
+ unsigned module : 6;
unsigned config : 4;
unsigned pin_begin : 8;
unsigned pin_last : 8;
@@ -59,59 +57,58 @@ typedef void (*lpc24xx_io_iterate_routine)(unsigned /* pin */, unsigned /* funct
static const lpc24xx_io_entry lpc24xx_io_config_table [] = {
/* UART */
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 0, 0, 0, 2, 0, 3, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 1, 0, 0, 15, 0, 16, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 1, 1, 2, 0, 2, 1, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 1, 2, 3, 16, 3, 17, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 2, 0, 0, 10, 0, 11, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 2, 1, 2, 8, 2, 9, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 2, 2, 4, 22, 4, 23, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 3, 0, 0, 0, 0, 1, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 3, 1, 0, 25, 0, 26, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART, 3, 2, 4, 28, 4, 29, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_0, 0, 0, 2, 0, 3, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_1, 0, 0, 15, 0, 16, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_1, 1, 2, 0, 2, 1, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_1, 2, 3, 16, 3, 17, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_2, 0, 0, 10, 0, 11, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_2, 1, 2, 8, 2, 9, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_2, 2, 4, 22, 4, 23, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_3, 0, 0, 0, 0, 1, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_3, 1, 0, 25, 0, 26, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_UART_3, 2, 4, 28, 4, 29, LPC24XX_IO_ALTERNATE_2),
/* Ethernet */
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 0, 0, 1, 0, 1, 17, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 0, 1, 1, 0, 1, 1, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 0, 1, 1, 4, 1, 4, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 0, 1, 1, 8, 1, 10, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 0, 1, 1, 14, 1, 17, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 0, 1, 0, 1, 17, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 1, 1, 0, 1, 1, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 1, 1, 4, 1, 4, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 1, 1, 8, 1, 10, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ETHERNET, 1, 1, 14, 1, 17, LPC24XX_IO_ALTERNATE_0),
/* ADC */
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 0, 0, 0, 12, 0, 13, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 0, 0, 12, 0, 13, LPC24XX_IO_ALTERNATE_2),
/* I2C */
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C, 0, 0, 0, 27, 0, 28, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C, 1, 0, 0, 0, 0, 1, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C, 1, 1, 0, 19, 0, 20, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C, 1, 2, 2, 14, 2, 15, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C, 2, 0, 0, 10, 0, 11, LPC24XX_IO_ALTERNATE_1),
- 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),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_0, 0, 0, 27, 0, 28, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_1, 0, 0, 0, 0, 1, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_1, 1, 0, 19, 0, 20, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_1, 2, 2, 14, 2, 15, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_2, 0, 0, 10, 0, 11, LPC24XX_IO_ALTERNATE_1),
+ 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),
/* 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),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 0, 1, 1, 23, 0, 24, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 0, 2, 2, 22, 2, 23, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 0, 2, 2, 26, 2, 27, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 1, 0, 0, 6, 0, 9, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 1, 1, 0, 12, 0, 13, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 1, 1, 0, 14, 0, 14, LPC24XX_IO_ALTERNATE_2),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 1, 1, 1, 31, 1, 31, LPC24XX_IO_ALTERNATE_1),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP, 1, 2, 4, 20, 4, 23, LPC24XX_IO_ALTERNATE_2),
+ 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),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 1, 1, 23, 0, 24, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 2, 2, 22, 2, 23, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 2, 2, 26, 2, 27, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_1, 0, 0, 6, 0, 9, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_1, 1, 0, 12, 0, 13, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_1, 1, 0, 14, 0, 14, LPC24XX_IO_ALTERNATE_2),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_1, 1, 1, 31, 1, 31, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_1, 2, 4, 20, 4, 23, LPC24XX_IO_ALTERNATE_2),
/* USB */
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_USB, 0, 0, 0, 29, 0, 30, LPC24XX_IO_ALTERNATE_0),
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_USB, 0, 0, 1, 19, 1, 19, LPC24XX_IO_ALTERNATE_1),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_USB, 0, 0, 29, 0, 30, LPC24XX_IO_ALTERNATE_0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_USB, 0, 1, 19, 1, 19, LPC24XX_IO_ALTERNATE_1),
/* Terminate */
- LPC24XX_IO_ENTRY(LPC24XX_MODULE_COUNT, 0, 0, 0, 0, 0, 0, 0),
+ LPC24XX_IO_ENTRY(LPC24XX_MODULE_COUNT, 0, 0, 0, 0, 0, 0),
};
static rtems_status_code lpc24xx_io_iterate(
lpc24xx_module module,
- unsigned index,
unsigned config,
lpc24xx_io_iterate_routine routine
)
@@ -120,7 +117,7 @@ static rtems_status_code lpc24xx_io_iterate(
const lpc24xx_io_entry *e = &lpc24xx_io_config_table [0];
while (e->module != LPC24XX_MODULE_COUNT) {
- if (e->module == module && e->index == index && e->config == config) {
+ if (e->module == module && e->config == config) {
unsigned pin = e->pin_begin;
unsigned last = e->pin_last;
unsigned function = e->pin_function;
@@ -172,20 +169,18 @@ static void lpc24xx_io_do_release(unsigned pin, unsigned function)
rtems_status_code lpc24xx_io_config(
lpc24xx_module module,
- unsigned index,
unsigned config
)
{
- return lpc24xx_io_iterate(module, index, config, lpc24xx_io_do_config);
+ return lpc24xx_io_iterate(module, config, lpc24xx_io_do_config);
}
rtems_status_code lpc24xx_io_release(
lpc24xx_module module,
- unsigned index,
unsigned config
)
{
- return lpc24xx_io_iterate(module, index, config, lpc24xx_io_do_release);
+ return lpc24xx_io_iterate(module, config, lpc24xx_io_do_release);
}
rtems_status_code lpc24xx_gpio_config(
@@ -239,197 +234,102 @@ rtems_status_code lpc24xx_gpio_config(
return RTEMS_SUCCESSFUL;
}
+#define LPC24XX_MODULE_ENTRY(mod, pwr, clk, idx) \
+ [mod] = { \
+ .power = pwr, \
+ .clock = clk, \
+ .index = idx \
+ }
+
+typedef struct {
+ unsigned char power : 1;
+ unsigned char clock : 1;
+ unsigned char index : 6;
+} lpc24xx_module_entry;
+
+static const lpc24xx_module_entry lpc24xx_module_table [] = {
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_ACF, 0, 1, 15),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_ADC, 1, 1, 12),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_BAT_RAM, 0, 1, 16),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_CAN_0, 1, 1, 13),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_CAN_1, 1, 1, 14),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_DAC, 0, 1, 11),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_EMC, 1, 0, 11),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_ETHERNET, 1, 0, 30),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_GPDMA, 1, 1, 29),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_GPIO, 0, 1, 17),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2C_0, 1, 1, 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_MCI, 1, 1, 28),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PCB, 0, 1, 18),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PWM_0, 1, 1, 5),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PWM_1, 1, 1, 6),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_RTC, 1, 1, 9),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_SPI, 1, 1, 8),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_SSP_0, 1, 1, 21),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_SSP_1, 1, 1, 10),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_SYSCON, 0, 1, 30),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_TIMER_0, 1, 1, 1),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_TIMER_1, 1, 1, 2),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_TIMER_2, 1, 1, 22),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_TIMER_3, 1, 1, 23),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_UART_0, 1, 1, 3),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_UART_1, 1, 1, 4),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_UART_2, 1, 1, 24),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_UART_3, 1, 1, 25),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_USB, 1, 0, 31),
+ LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_WDT, 0, 1, 0)
+};
+
static rtems_status_code lpc24xx_module_do_enable(
lpc24xx_module module,
- unsigned index,
lpc24xx_module_clock clock,
bool enable
)
{
- const unsigned NO_POWER = 32U;
- const unsigned INVALID = 33U;
- unsigned power_bit = INVALID;
- unsigned clock_shift = INVALID;
-
- /* Check clock value */
- if ((clock & ~LPC24XX_MODULE_CLOCK_MASK) != 0U) {
- return RTEMS_INVALID_NUMBER;
- }
+ rtems_interrupt_level level;
+ bool has_power = false;
+ bool has_clock = false;
+ unsigned index = 0;
- /* Get power bit */
- switch (module) {
- case LPC24XX_MODULE_ACF:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 30U;
- }
- break;
- case LPC24XX_MODULE_ADC:
- if (index == 0) {
- power_bit = 12U;
- }
- break;
- case LPC24XX_MODULE_BAT_RAM:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 32U;
- }
- break;
- case LPC24XX_MODULE_CAN:
- if (index < 2) {
- power_bit = 13U + index;
- }
- break;
- case LPC24XX_MODULE_DAC:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 22U;
- }
- break;
- case LPC24XX_MODULE_EMC:
- if (index == 0) {
- power_bit = 11U;
- }
- break;
- case LPC24XX_MODULE_ETHERNET:
- if (index == 0) {
- power_bit = 30U;
- }
- break;
- case LPC24XX_MODULE_GPDMA:
- if (index == 0) {
- power_bit = 29U;
- }
- break;
- case LPC24XX_MODULE_GPIO:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 34U;
- }
- break;
- case LPC24XX_MODULE_I2C:
- switch (index) {
- case 0U:
- power_bit = 7U;
- break;
- case 1U:
- power_bit = 19U;
- break;
- case 2U:
- power_bit = 26U;
- break;
- }
- break;
- case LPC24XX_MODULE_I2S:
- if (index == 0) {
- power_bit = 27U;
- }
- break;
- case LPC24XX_MODULE_LCD:
- if (index == 0) {
- power_bit = 20U;
- }
- break;
- case LPC24XX_MODULE_MCI:
- if (index == 0) {
- power_bit = 28U;
- }
- break;
- case LPC24XX_MODULE_PCB:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 36U;
- }
- break;
- case LPC24XX_MODULE_PWM:
- if (index < 2) {
- power_bit = 5U + index;
- }
- break;
- case LPC24XX_MODULE_RTC:
- if (index == 0) {
- power_bit = 9U;
- }
- break;
- case LPC24XX_MODULE_SPI:
- if (index == 0) {
- power_bit = 8U;
- }
- break;
- case LPC24XX_MODULE_SSP:
- switch (index) {
- case 0U:
- power_bit = 21U;
- break;
- case 1U:
- power_bit = 10U;
- break;
- }
- break;
- case LPC24XX_MODULE_SYSCON:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 60U;
- }
- break;
- case LPC24XX_MODULE_TIMER:
- if (index < 2) {
- power_bit = 1U + index;
- } else if (index < 4) {
- power_bit = 20U + index;
- }
- break;
- case LPC24XX_MODULE_UART:
- if (index < 2) {
- power_bit = 3U + index;
- } else if (index < 4) {
- power_bit = 22U + index;
- }
- break;
- case LPC24XX_MODULE_USB:
- if (index == 0) {
- power_bit = 31U;
- }
- break;
- case LPC24XX_MODULE_WDT:
- if (index == 0) {
- power_bit = NO_POWER;
- clock_shift = 0U;
- }
- break;
- default:
+ if ((unsigned) module >= LPC24XX_MODULE_COUNT) {
return RTEMS_INVALID_ID;
}
- /* Check power bit */
- if (power_bit == INVALID) {
- return RTEMS_INVALID_ID;
+ if ((clock & ~LPC24XX_MODULE_CLOCK_MASK) != 0U) {
+ return RTEMS_INVALID_NUMBER;
}
- /* Get clock shift */
- if (clock_shift == INVALID) {
- clock_shift = power_bit << 1U;
- }
+ has_power = lpc24xx_module_table [module].power;
+ has_clock = lpc24xx_module_table [module].clock;
+ index = lpc24xx_module_table [module].index;
/* Enable or disable module */
if (enable) {
- rtems_interrupt_level level;
-
- rtems_interrupt_disable(level);
- PCONP |= 1U << power_bit;
- rtems_interrupt_enable(level);
+ if (has_power) {
+ rtems_interrupt_disable(level);
+ PCONP |= 1U << index;
+ rtems_interrupt_enable(level);
+ }
if (module != LPC24XX_MODULE_USB) {
- rtems_interrupt_disable(level);
- if (clock_shift < 32U) {
- PCLKSEL0 = (PCLKSEL0 & ~(LPC24XX_MODULE_CLOCK_MASK << clock_shift))
- | (clock << clock_shift);
- } else {
- clock_shift -= 32U;
- PCLKSEL1 = (PCLKSEL1 & ~(LPC24XX_MODULE_CLOCK_MASK << clock_shift))
- | (clock << clock_shift);
+ if (has_clock) {
+ unsigned clock_shift = 2U * index;
+
+ rtems_interrupt_disable(level);
+ if (clock_shift < 32U) {
+ PCLKSEL0 = (PCLKSEL0 & ~(LPC24XX_MODULE_CLOCK_MASK << clock_shift))
+ | (clock << clock_shift);
+ } else {
+ clock_shift -= 32U;
+ PCLKSEL1 = (PCLKSEL1 & ~(LPC24XX_MODULE_CLOCK_MASK << clock_shift))
+ | (clock << clock_shift);
+ }
+ rtems_interrupt_enable(level);
}
- rtems_interrupt_enable(level);
} else {
unsigned pllclk = lpc24xx_pllclk();
unsigned usbsel = pllclk / 48000000U - 1U;
@@ -441,11 +341,11 @@ static rtems_status_code lpc24xx_module_do_enable(
USBCLKCFG = usbsel;
}
} else {
- rtems_interrupt_level level;
-
- rtems_interrupt_disable(level);
- PCONP &= ~(1U << power_bit);
- rtems_interrupt_enable(level);
+ if (has_power) {
+ rtems_interrupt_disable(level);
+ PCONP &= ~(1U << index);
+ rtems_interrupt_enable(level);
+ }
}
return RTEMS_SUCCESSFUL;
@@ -453,17 +353,15 @@ static rtems_status_code lpc24xx_module_do_enable(
rtems_status_code lpc24xx_module_enable(
lpc24xx_module module,
- unsigned index,
lpc24xx_module_clock clock
)
{
- return lpc24xx_module_do_enable(module, index, clock, true);
+ return lpc24xx_module_do_enable(module, clock, true);
}
rtems_status_code lpc24xx_module_disable(
- lpc24xx_module module,
- unsigned index
+ lpc24xx_module module
)
{
- return lpc24xx_module_do_enable(module, index, 0U, false);
+ return lpc24xx_module_do_enable(module, 0U, false);
}
diff --git a/c/src/lib/libbsp/arm/lpc24xx/misc/timer.c b/c/src/lib/libbsp/arm/lpc24xx/misc/timer.c
index e9d44312ab..73ec32693e 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/misc/timer.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/misc/timer.c
@@ -49,7 +49,7 @@ uint32_t benchmark_timer_read(void)
}
}
-void benchmark_timer_disable_subtracting_average_overhead( bool find_average_overhead )
+void benchmark_timer_disable_subtracting_average_overhead(bool find_average_overhead )
{
benchmark_timer_find_average_overhead = find_average_overhead;
}
diff --git a/c/src/lib/libbsp/arm/lpc24xx/network/network.c b/c/src/lib/libbsp/arm/lpc24xx/network/network.c
index 43a73a1240..2941aeaf6b 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/network/network.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/network/network.c
@@ -899,15 +899,14 @@ static void lpc24xx_eth_interface_init(void *arg)
/* Enable module power */
lpc24xx_module_enable(
LPC24XX_MODULE_ETHERNET,
- 0,
LPC24XX_MODULE_PCLK_DEFAULT
);
/* Module IO configuration */
#ifdef LPC24XX_ETHERNET_RMII
- lpc24xx_io_config(LPC24XX_MODULE_ETHERNET, 0, 0);
+ lpc24xx_io_config(LPC24XX_MODULE_ETHERNET, 0);
#else
- lpc24xx_io_config(LPC24XX_MODULE_ETHERNET, 0, 1);
+ lpc24xx_io_config(LPC24XX_MODULE_ETHERNET, 1);
#endif
/* Soft reset */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/preinstall.am b/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
index ce8a124ff2..3b145cd6a0 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
@@ -81,6 +81,10 @@ $(PROJECT_INCLUDE)/bsp/start.h: ../shared/include/start.h $(PROJECT_INCLUDE)/bsp
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/start.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/start.h
+$(PROJECT_INCLUDE)/bsp/lpc-timer.h: ../shared/lpc/include/lpc-timer.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-timer.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-timer.h
+
$(PROJECT_INCLUDE)/bsp/irq-config.h: include/irq-config.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq-config.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq-config.h
@@ -113,6 +117,10 @@ $(PROJECT_INCLUDE)/bsp/io.h: include/io.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/io.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/io.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
+
$(PROJECT_INCLUDE)/tm27.h: ../../shared/include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
diff --git a/c/src/lib/libbsp/arm/lpc24xx/rtc/rtc-config.c b/c/src/lib/libbsp/arm/lpc24xx/rtc/rtc-config.c
index e2cec3132a..e44797e075 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/rtc/rtc-config.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/rtc/rtc-config.c
@@ -25,10 +25,10 @@
#define LPC24XX_RTC_NUMBER 1
-static void lpc24xx_rtc_initialize( int minor)
+static void lpc24xx_rtc_initialize(int minor)
{
/* Enable module power */
- lpc24xx_module_enable( LPC24XX_MODULE_RTC, 0, LPC24XX_MODULE_PCLK_DEFAULT);
+ lpc24xx_module_enable(LPC24XX_MODULE_RTC, LPC24XX_MODULE_PCLK_DEFAULT);
/* Enable the RTC and use external clock */
RTC_CCR = RTC_CCR_CLKEN | RTC_CCR_CLKSRC;
@@ -42,7 +42,7 @@ static void lpc24xx_rtc_initialize( int minor)
RTC_ILR = RTC_ILR_RTCCIF | RTC_ILR_RTCALF | RTC_ILR_RTSSF;
}
-static int lpc24xx_rtc_get_time( int minor, rtems_time_of_day *tod)
+static int lpc24xx_rtc_get_time(int minor, rtems_time_of_day *tod)
{
tod->ticks = 0;
tod->second = RTC_SEC;
@@ -55,7 +55,7 @@ static int lpc24xx_rtc_get_time( int minor, rtems_time_of_day *tod)
return 0;
}
-static int lpc24xx_rtc_set_time( int minor, const rtems_time_of_day *tod)
+static int lpc24xx_rtc_set_time(int minor, const rtems_time_of_day *tod)
{
RTC_SEC = tod->second;
RTC_MIN = tod->minute;
@@ -67,7 +67,7 @@ static int lpc24xx_rtc_set_time( int minor, const rtems_time_of_day *tod)
return 0;
}
-static bool lpc24xx_rtc_probe( int minor)
+static bool lpc24xx_rtc_probe(int minor)
{
return true;
}
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
index fb3eaa7b4b..f38ce1a46c 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspreset.c
@@ -23,11 +23,11 @@
#include <bsp/bootcard.h>
#include <bsp/lpc24xx.h>
-void bsp_reset( void)
+void bsp_reset(void)
{
rtems_interrupt_level level;
- rtems_interrupt_disable( level);
+ rtems_interrupt_disable(level);
/* Trigger watchdog reset */
WDCLKSEL = 0;
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c
index 6090cce8ea..76e1aa79aa 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstart.c
@@ -33,15 +33,15 @@
void bsp_start(void)
{
/* Initialize Timer 1 */
- lpc24xx_module_enable(LPC24XX_MODULE_TIMER, 1, LPC24XX_MODULE_CCLK);
+ lpc24xx_module_enable(LPC24XX_MODULE_TIMER_1, LPC24XX_MODULE_CCLK);
/* Initialize standard timer */
lpc24xx_timer_initialize();
/* Initialize console */
#ifdef LPC24XX_CONFIG_CONSOLE
- lpc24xx_module_enable(LPC24XX_MODULE_UART, 0, LPC24XX_MODULE_CCLK);
- lpc24xx_io_config(LPC24XX_MODULE_UART, 0, LPC24XX_CONFIG_CONSOLE);
+ lpc24xx_module_enable(LPC24XX_MODULE_UART_0, LPC24XX_MODULE_CCLK);
+ lpc24xx_io_config(LPC24XX_MODULE_UART_0, LPC24XX_CONFIG_CONSOLE);
U0LCR = 0;
U0IER = 0;
U0LCR = 0x80;
@@ -60,23 +60,25 @@ void bsp_start(void)
lpc24xx_dma_initialize();
/* Task stacks */
- bsp_stack_initialize(
- bsp_section_stack_begin,
- (uintptr_t) bsp_section_stack_size
- );
+ #ifdef LPC24XX_SPECIAL_TASK_STACKS_SUPPORT
+ bsp_stack_initialize(
+ bsp_section_stack_begin,
+ (uintptr_t) bsp_section_stack_size
+ );
+ #endif
/* UART configurations */
#ifdef LPC24XX_CONFIG_UART_1
- lpc24xx_module_enable(LPC24XX_MODULE_UART, 1, LPC24XX_MODULE_CCLK);
- lpc24xx_io_config(LPC24XX_MODULE_UART, 1, LPC24XX_CONFIG_UART_1);
+ lpc24xx_module_enable(LPC24XX_MODULE_UART_1, LPC24XX_MODULE_CCLK);
+ lpc24xx_io_config(LPC24XX_MODULE_UART_1, LPC24XX_CONFIG_UART_1);
#endif
#ifdef LPC24XX_CONFIG_UART_2
- lpc24xx_module_enable(LPC24XX_MODULE_UART, 2, LPC24XX_MODULE_CCLK);
- lpc24xx_io_config(LPC24XX_MODULE_UART, 2, LPC24XX_CONFIG_UART_2);
+ lpc24xx_module_enable(LPC24XX_MODULE_UART_2, LPC24XX_MODULE_CCLK);
+ lpc24xx_io_config(LPC24XX_MODULE_UART_2, LPC24XX_CONFIG_UART_2);
#endif
#ifdef LPC24XX_CONFIG_UART_3
- lpc24xx_module_enable(LPC24XX_MODULE_UART, 3, LPC24XX_MODULE_CCLK);
- lpc24xx_io_config(LPC24XX_MODULE_UART, 3, LPC24XX_CONFIG_UART_3);
+ lpc24xx_module_enable(LPC24XX_MODULE_UART_3, LPC24XX_MODULE_CCLK);
+ lpc24xx_io_config(LPC24XX_MODULE_UART_3, LPC24XX_CONFIG_UART_3);
#endif
}
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c
index 1c899a00ad..732d30ddf5 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c
@@ -26,8 +26,10 @@
#include <bsp/lpc24xx.h>
#include <bsp/linker-symbols.h>
+#define BSP_START_SECTION __attribute__((section(".bsp_start")))
+
#ifdef LPC24XX_EMC_MICRON
- static void __attribute__((section(".bsp_start"))) lpc24xx_ram_test_32(void)
+ static void BSP_START_SECTION lpc24xx_ram_test_32(void)
{
#ifdef LPC24XX_EMC_TEST
int *begin = (int *) 0xa0000000;
@@ -51,7 +53,7 @@
#endif
}
- static void __attribute__((section(".bsp_start"))) lpc24xx_cpu_delay(
+ static void BSP_START_SECTION lpc24xx_cpu_delay(
unsigned ticks
)
{
@@ -69,7 +71,7 @@
/**
* @brief EMC initialization hook 0.
*/
-static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_0(void)
+static void BSP_START_SECTION lpc24xx_init_emc_0(void)
{
#ifdef LPC24XX_EMC_NUMONYX
/*
@@ -131,7 +133,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_0(void)
/**
* @brief EMC initialization hook 1.
*/
-static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_1(void)
+static void BSP_START_SECTION lpc24xx_init_emc_1(void)
{
/* Use normal memory map */
EMC_CTRL = CLEAR_FLAG(EMC_CTRL, 0x2);
@@ -234,7 +236,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_init_emc_1(void)
#endif
}
-static void __attribute__((section(".bsp_start"))) lpc24xx_pll_config(
+static void BSP_START_SECTION lpc24xx_pll_config(
uint32_t val
)
{
@@ -257,7 +259,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_pll_config(
* @param cclksel Selects the divide value for creating the CPU clock (CCLK)
* from the PLL output.
*/
-static void __attribute__((section(".bsp_start"))) lpc24xx_set_pll(
+static void BSP_START_SECTION lpc24xx_set_pll(
unsigned clksrc,
unsigned nsel,
unsigned msel,
@@ -313,7 +315,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_set_pll(
lpc24xx_pll_config(PLLCON_PLLE | PLLCON_PLLC);
}
-static void __attribute__((section(".bsp_start"))) lpc24xx_init_pll(void)
+static void BSP_START_SECTION lpc24xx_init_pll(void)
{
/* Enable main oscillator */
if (IS_FLAG_CLEARED(SCS, 0x40)) {
@@ -327,7 +329,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_init_pll(void)
lpc24xx_set_pll(1, 0, 11, 3);
}
-static void __attribute__((section(".bsp_start"))) lpc24xx_clear_bss(void)
+static void BSP_START_SECTION lpc24xx_clear_bss(void)
{
const int *end = (const int *) bsp_section_bss_end;
int *out = (int *) bsp_section_bss_begin;
@@ -339,7 +341,7 @@ static void __attribute__((section(".bsp_start"))) lpc24xx_clear_bss(void)
}
}
-void __attribute__((section(".bsp_start"))) bsp_start_hook_0(void)
+void BSP_START_SECTION bsp_start_hook_0(void)
{
/* Initialize PLL */
lpc24xx_init_pll();
@@ -348,7 +350,7 @@ void __attribute__((section(".bsp_start"))) bsp_start_hook_0(void)
lpc24xx_init_emc_0();
}
-void __attribute__((section(".bsp_start"))) bsp_start_hook_1(void)
+void BSP_START_SECTION bsp_start_hook_1(void)
{
/* Re-map interrupt vectors to internal RAM */
MEMMAP = SET_MEMMAP_MAP(MEMMAP, 2);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
index ca6b52a4fe..afad88d747 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
@@ -21,7 +21,7 @@
*
* <table>
* <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
- * <tr><td>.start</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.start</td><td>RAM_EXT</td><td></td></tr>
* <tr><td>.vector</td><td>RAM_INT</td><td></td></tr>
* <tr><td>.text</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
* <tr><td>.rodata</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
index 5322c7a725..c3f908b907 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
@@ -21,7 +21,7 @@
*
* <table>
* <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
- * <tr><td>.start</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.start</td><td>RAM_EXT</td><td></td></tr>
* <tr><td>.vector</td><td>RAM_INT</td><td></td></tr>
* <tr><td>.text</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
* <tr><td>.rodata</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
index f4518090d4..d35d8cd10d 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
@@ -23,7 +23,7 @@
*
* <table>
* <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
- * <tr><td>.start</td><td>ROM_BOOT</td><td>ROM_BOOT</td></tr>
+ * <tr><td>.start</td><td>ROM_BOOT</td><td></td></tr>
* <tr><td>.vector</td><td>RAM_INT</td><td></td></tr>
* <tr><td>.text</td><td>RAM_EXT</td><td>ROM_EXT</td></tr>
* <tr><td>.rodata</td><td>RAM_EXT</td><td>ROM_EXT</td></tr>
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
index a46145d333..044131ba30 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
@@ -23,7 +23,7 @@
*
* <table>
* <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
- * <tr><td>.start</td><td>ROM_INT</td><td>ROM_INT</td></tr>
+ * <tr><td>.start</td><td>ROM_INT</td><td></td></tr>
* <tr><td>.vector</td><td>RAM_VEC</td><td></td></tr>
* <tr><td>.text</td><td>ROM_INT</td><td>ROM_INT</td></tr>
* <tr><td>.rodata</td><td>ROM_INT</td><td>ROM_INT</td></tr>