source: rtems/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h @ 991fdb33

4.115
Last change on this file since 991fdb33 was 6ec438e, checked in by Sebastian Huber <sebastian.huber@…>, on Oct 7, 2014 at 6:29:16 AM

libchip/serial: Add alternative NS16550 driver

Use the Termios device API.

  • Property mode set to 100644
File size: 2.6 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup lpc24xx
5 *
6 * @brief Global BSP definitions.
7 */
8
9/*
10 * Copyright (c) 2008-2014 embedded brains GmbH.  All rights reserved.
11 *
12 *  embedded brains GmbH
13 *  Dornierstr. 4
14 *  82178 Puchheim
15 *  Germany
16 *  <rtems@embedded-brains.de>
17 *
18 * The license and distribution terms for this file may be
19 * found in the file LICENSE in this distribution or at
20 * http://www.rtems.org/license/LICENSE.
21 */
22
23#ifndef LIBBSP_ARM_LPC24XX_BSP_H
24#define LIBBSP_ARM_LPC24XX_BSP_H
25
26#include <bspopts.h>
27
28#define BSP_FEATURE_IRQ_EXTENSION
29
30#define LPC24XX_PCLK (LPC24XX_CCLK / LPC24XX_PCLKDIV)
31
32#define LPC24XX_EMCCLK (LPC24XX_CCLK / LPC24XX_EMCCLKDIV)
33
34#define LPC24XX_MPU_REGION_COUNT 8
35
36#define BSP_ARMV7M_IRQ_PRIORITY_DEFAULT (29 << 3)
37
38#define BSP_ARMV7M_SYSTICK_PRIORITY (30 << 3)
39
40#define BSP_ARMV7M_SYSTICK_FREQUENCY LPC24XX_CCLK
41
42#ifndef ASM
43
44#include <rtems.h>
45#include <rtems/console.h>
46#include <rtems/clockdrv.h>
47
48#include <bsp/default-initial-extension.h>
49
50#ifdef __cplusplus
51extern "C" {
52#endif /* __cplusplus */
53
54struct rtems_bsdnet_ifconfig;
55
56struct rtems_termios_device_context;
57
58/**
59 * @defgroup lpc24xx LPC24XX Support
60 *
61 * @ingroup bsp_arm
62 *
63 * @brief LPC24XX support package.
64 *
65 * @{
66 */
67
68/**
69 * @brief Network driver attach and detach function.
70 */
71int lpc_eth_attach_detach(
72  struct rtems_bsdnet_ifconfig *config,
73  int attaching
74);
75
76/**
77 * @brief Standard network driver attach and detach function.
78 */
79#define RTEMS_BSP_NETWORK_DRIVER_ATTACH lpc_eth_attach_detach
80
81/**
82 * @brief Standard network driver name.
83 */
84#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
85
86/**
87 * @brief Optimized idle task.
88 *
89 * This idle task sets the power mode to idle.  This causes the processor clock
90 * to be stopped, while on-chip peripherals remain active.  Any enabled
91 * interrupt from a peripheral or an external interrupt source will cause the
92 * processor to resume execution.
93 *
94 * To enable the idle task use the following in the system configuration:
95 *
96 * @code
97 * #include <bsp.h>
98 *
99 * #define CONFIGURE_INIT
100 *
101 * #define CONFIGURE_IDLE_TASK_BODY bsp_idle_thread
102 *
103 * #include <confdefs.h>
104 * @endcode
105 */
106void *bsp_idle_thread(uintptr_t ignored);
107
108#ifdef ARM_MULTILIB_ARCH_V4
109  #define BSP_CONSOLE_UART_BASE 0xe000c000
110#else
111  #define BSP_CONSOLE_UART_BASE 0x4000c000
112#endif
113
114void bsp_restart(void *addr);
115
116bool lpc24xx_uart_probe_1(struct rtems_termios_device_context *context);
117
118bool lpc24xx_uart_probe_2(struct rtems_termios_device_context *context);
119
120bool lpc24xx_uart_probe_3(struct rtems_termios_device_context *context);
121
122/** @} */
123
124#ifdef __cplusplus
125}
126#endif /* __cplusplus */
127
128#endif /* ASM */
129
130#endif /* LIBBSP_ARM_LPC24XX_BSP_H */
Note: See TracBrowser for help on using the repository browser.