![]() |
|
|||
File indexing completed on 2025-05-11 08:23:03
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /** 0004 * @file 0005 * 0006 * @ingroup RTEMSBSPsARMLPC24XX 0007 * 0008 * @brief Global BSP definitions. 0009 */ 0010 0011 /* 0012 * Copyright (C) 2008, 2014 embedded brains GmbH & Co. KG 0013 * 0014 * Redistribution and use in source and binary forms, with or without 0015 * modification, are permitted provided that the following conditions 0016 * are met: 0017 * 1. Redistributions of source code must retain the above copyright 0018 * notice, this list of conditions and the following disclaimer. 0019 * 2. Redistributions in binary form must reproduce the above copyright 0020 * notice, this list of conditions and the following disclaimer in the 0021 * documentation and/or other materials provided with the distribution. 0022 * 0023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0024 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0025 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0026 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0027 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0028 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0029 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0030 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0031 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0032 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0033 * POSSIBILITY OF SUCH DAMAGE. 0034 */ 0035 0036 #ifndef LIBBSP_ARM_LPC24XX_BSP_H 0037 #define LIBBSP_ARM_LPC24XX_BSP_H 0038 0039 /** 0040 * @defgroup RTEMSBSPsARMLPC24XX NXP LPC17XX, LPC23XX, LPC24XX and LPC40XX 0041 * 0042 * @ingroup RTEMSBSPsARM 0043 * 0044 * @brief NXP LPC17XX, LPC23XX, LPC24XX and LPC40XX Board Support Package. 0045 * 0046 * @{ 0047 */ 0048 0049 #include <bspopts.h> 0050 0051 #define BSP_FEATURE_IRQ_EXTENSION 0052 0053 #define LPC24XX_PCLK (LPC24XX_CCLK / LPC24XX_PCLKDIV) 0054 0055 #define LPC24XX_EMCCLK (LPC24XX_CCLK / LPC24XX_EMCCLKDIV) 0056 0057 #define LPC24XX_MPU_REGION_COUNT 8 0058 0059 #define BSP_ARMV7M_IRQ_PRIORITY_DEFAULT (29 << 3) 0060 0061 #define BSP_ARMV7M_SYSTICK_PRIORITY (30 << 3) 0062 0063 #define BSP_ARMV7M_SYSTICK_FREQUENCY LPC24XX_CCLK 0064 0065 #ifndef ASM 0066 0067 #include <rtems.h> 0068 0069 #include <bsp/default-initial-extension.h> 0070 0071 #ifdef __cplusplus 0072 extern "C" { 0073 #endif /* __cplusplus */ 0074 0075 struct rtems_bsdnet_ifconfig; 0076 0077 struct rtems_termios_device_context; 0078 0079 /** 0080 * @brief Network driver attach and detach function. 0081 */ 0082 int lpc_eth_attach_detach( 0083 struct rtems_bsdnet_ifconfig *config, 0084 int attaching 0085 ); 0086 0087 /** 0088 * @brief Standard network driver attach and detach function. 0089 */ 0090 #define RTEMS_BSP_NETWORK_DRIVER_ATTACH lpc_eth_attach_detach 0091 0092 /** 0093 * @brief Standard network driver name. 0094 */ 0095 #define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0" 0096 0097 /** 0098 * @brief Optimized idle task. 0099 * 0100 * This idle task sets the power mode to idle. This causes the processor clock 0101 * to be stopped, while on-chip peripherals remain active. Any enabled 0102 * interrupt from a peripheral or an external interrupt source will cause the 0103 * processor to resume execution. 0104 * 0105 * To enable the idle task use the following in the system configuration: 0106 * 0107 * @code 0108 * #include <bsp.h> 0109 * 0110 * #define CONFIGURE_INIT 0111 * 0112 * #define CONFIGURE_IDLE_TASK_BODY bsp_idle_thread 0113 * 0114 * #include <confdefs.h> 0115 * @endcode 0116 */ 0117 void *bsp_idle_thread(uintptr_t ignored); 0118 0119 #ifdef ARM_MULTILIB_ARCH_V4 0120 #define BSP_CONSOLE_UART_BASE 0xe000c000 0121 #else 0122 #define BSP_CONSOLE_UART_BASE 0x4000c000 0123 #endif 0124 0125 void bsp_restart(void *addr); 0126 0127 bool lpc24xx_uart_probe_1(struct rtems_termios_device_context *context); 0128 0129 bool lpc24xx_uart_probe_2(struct rtems_termios_device_context *context); 0130 0131 bool lpc24xx_uart_probe_3(struct rtems_termios_device_context *context); 0132 0133 #ifdef __cplusplus 0134 } 0135 #endif /* __cplusplus */ 0136 0137 #endif /* ASM */ 0138 0139 /** @} */ 0140 0141 #endif /* LIBBSP_ARM_LPC24XX_BSP_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |