summaryrefslogtreecommitdiff
path: root/bsp
diff options
context:
space:
mode:
Diffstat (limited to 'bsp')
-rw-r--r--bsp/stm3210/project_107/startup.c24
-rw-r--r--bsp/stm3210/project_107/stm32f10x_it.c73
-rw-r--r--bsp/stm3210/project_107/stm32f10x_it.h6
-rw-r--r--bsp/stm3210/project_filesystem/application.c100
-rw-r--r--bsp/stm3210/project_filesystem/rtconfig.h9
-rw-r--r--bsp/stm3210/project_filesystem/startup.c3
-rw-r--r--bsp/stm3210/project_filesystem/stm32f10x_it.c341
-rw-r--r--bsp/stm3210/project_finsh/rtconfig.h8
-rw-r--r--bsp/stm3210/project_finsh/startup.c9
-rw-r--r--bsp/stm3210/project_finsh/stm32f10x_it.c348
-rw-r--r--bsp/stm3210/project_lwip/application.c73
-rw-r--r--bsp/stm3210/project_lwip/rtconfig.h18
-rw-r--r--bsp/stm3210/project_lwip/startup.c23
-rw-r--r--bsp/stm3210/project_lwip/stm32f10x_it.c320
14 files changed, 811 insertions, 544 deletions
diff --git a/bsp/stm3210/project_107/startup.c b/bsp/stm3210/project_107/startup.c
index 0ee8ddbde4..b6c561fc25 100644
--- a/bsp/stm3210/project_107/startup.c
+++ b/bsp/stm3210/project_107/startup.c
@@ -25,22 +25,12 @@
/*@{*/
-#ifdef RT_USING_LWIP
-#ifdef STM32F10X_CL
- extern void rt_hw_stm32_eth_init(void);
-#else
- #include "enc28j60.h"
-#endif
-#include <netif/ethernetif.h>
-#endif
-
extern int rt_application_init(void);
#ifdef RT_USING_FINSH
extern void finsh_system_init(void);
extern void finsh_set_device(const char* device);
#endif
-/* bss end definitions for heap init */
#ifdef __CC_ARM
extern int Image$$RW_IRAM1$$ZI$$Limit;
#elif __ICCARM__
@@ -119,17 +109,6 @@ void rtthread_startup(void)
#endif
#endif
-#ifdef RT_USING_LWIP
- eth_system_device_init();
-
- /* register ethernetif device */
-#ifdef STM32F10X_CL
- rt_hw_stm32_eth_init();
-#else
- rt_hw_enc28j60_init();
-#endif
-#endif
-
rt_hw_rtc_init();
/* init all device */
@@ -144,6 +123,9 @@ void rtthread_startup(void)
finsh_set_device(FINSH_DEVICE_NAME);
#endif
+ /* init timer thread */
+ rt_system_timer_thread_init();
+
/* init idle thread */
rt_thread_idle_init();
diff --git a/bsp/stm3210/project_107/stm32f10x_it.c b/bsp/stm3210/project_107/stm32f10x_it.c
index 26447a8f27..8411987ae9 100644
--- a/bsp/stm3210/project_107/stm32f10x_it.c
+++ b/bsp/stm3210/project_107/stm32f10x_it.c
@@ -1,11 +1,11 @@
/**
******************************************************************************
- * @file Project/Template/stm32f10x_it.c
+ * @file Project/Template/stm32f10x_it.c
* @author MCD Application Team
* @version V3.1.0
* @date 06/19/2009
* @brief Main Interrupt Service Routines.
- * This file provides template for all exceptions handler and
+ * This file provides template for all exceptions handler and
* peripherals interrupt service routine.
******************************************************************************
* @copy
@@ -18,12 +18,12 @@
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
- */
+ */
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_it.h"
+#include <board.h>
#include <rtthread.h>
-#include "board.h"
/** @addtogroup Template_Project
* @{
@@ -168,7 +168,7 @@ void USART1_IRQHandler(void)
#ifdef RT_USING_UART1
extern struct rt_device uart1_device;
extern void rt_hw_serial_isr(struct rt_device *device);
-
+
/* enter interrupt */
rt_interrupt_enter();
@@ -225,6 +225,7 @@ void USART3_IRQHandler(void)
#endif
}
+#if defined(RT_USING_DFS) && STM32_USE_SDIO
/*******************************************************************************
* Function Name : SDIO_IRQHandler
* Description : This function handles SDIO global interrupt request.
@@ -234,7 +235,6 @@ void USART3_IRQHandler(void)
*******************************************************************************/
void SDIO_IRQHandler(void)
{
-#if defined(RT_USING_DFS) && STM32_USE_SDIO
extern int SD_ProcessIRQSrc(void);
/* enter interrupt */
@@ -245,9 +245,32 @@ void SDIO_IRQHandler(void)
/* leave interrupt */
rt_interrupt_leave();
-#endif
}
+#endif
+
+#ifdef RT_USING_LWIP
+#ifdef STM32F10X_CL
+/*******************************************************************************
+* Function Name : ETH_IRQHandler
+* Description : This function handles ETH interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void ETH_IRQHandler(void)
+{
+ extern void rt_hw_stm32_eth_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_stm32_eth_isr();
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#else
+#if (STM32_ETH_IF == 0)
/*******************************************************************************
* Function Name : EXTI0_IRQHandler
* Description : This function handles External interrupt Line 0 request.
@@ -257,7 +280,6 @@ void SDIO_IRQHandler(void)
*******************************************************************************/
void EXTI0_IRQHandler(void)
{
-#if defined(RT_USING_LWIP) && !defined(STM32F10X_CL)
extern void enc28j60_isr(void);
/* enter interrupt */
@@ -270,34 +292,39 @@ void EXTI0_IRQHandler(void)
/* leave interrupt */
rt_interrupt_leave();
-#endif
}
+#endif
+#if (STM32_ETH_IF == 1)
/*******************************************************************************
-* Function Name : ETH_IRQHandler
-* Description : This function handles ETH interrupt request.
+* Function Name : EXTI9_5_IRQHandler
+* Description : This function handles External lines 9 to 5 interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
-void ETH_IRQHandler(void)
+void EXTI9_5_IRQHandler(void)
{
-#if defined(RT_USING_LWIP) && defined(STM32F10X_CL)
- extern void rt_hw_stm32_eth_isr(void);
-
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_stm32_eth_isr();
+ extern void rt_dm9000_isr(void);
- /* leave interrupt */
- rt_interrupt_leave();
-#endif
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_dm9000_isr();
+
+ /* Clear the Key Button EXTI line pending bit */
+ EXTI_ClearITPendingBit(EXTI_Line7);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
}
+#endif
+#endif
+#endif /* end of RT_USING_LWIP */
/**
* @}
- */
+ */
/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm3210/project_107/stm32f10x_it.h b/bsp/stm3210/project_107/stm32f10x_it.h
index ad935ba382..fd60234ba0 100644
--- a/bsp/stm3210/project_107/stm32f10x_it.h
+++ b/bsp/stm3210/project_107/stm32f10x_it.h
@@ -1,6 +1,6 @@
/**
******************************************************************************
- * @file Project/Template/stm32f10x_it.h
+ * @file Project/Template/stm32f10x_it.h
* @author MCD Application Team
* @version V3.1.0
* @date 06/19/2009
@@ -16,7 +16,7 @@
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
* <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
- */
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F10x_IT_H
@@ -24,7 +24,7 @@
#ifdef __cplusplus
extern "C" {
-#endif
+#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
diff --git a/bsp/stm3210/project_filesystem/application.c b/bsp/stm3210/project_filesystem/application.c
index 01488661ef..9258aa0449 100644
--- a/bsp/stm3210/project_filesystem/application.c
+++ b/bsp/stm3210/project_filesystem/application.c
@@ -1,32 +1,30 @@
-/*
- * File : application.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Development Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
- *
- * Change Logs:
- * Date Author Notes
- * 2009-01-05 Bernard the first version
- */
-
-/**
- * @addtogroup STM32
- */
-/*@{*/
-
+/*
+ * File : application.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006, RT-Thread Development Team
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rt-thread.org/license/LICENSE
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2009-01-05 Bernard the first version
+ */
+
+/**
+ * @addtogroup STM32
+ */
+/*@{*/
+
#include <rtthread.h>
-
-#ifdef RT_USING_DFS
-/* dfs init */
-#include <dfs_init.h>
-/* dfs filesystem:FAT filesystem init */
-#include <dfs_fat.h>
-/* dfs filesystem:EFS filesystem init */
-#include <dfs_efs.h>
-/* dfs Filesystem APIs */
+
+#ifdef RT_USING_DFS
+/* dfs init */
+#include <dfs_init.h>
+/* dfs filesystem:EFS filesystem init */
+#include <dfs_efs.h>
+/* dfs Filesystem APIs */
#include <dfs_fs.h>
#endif
@@ -73,42 +71,42 @@ void rt_init_thread_entry(void* parameter)
/* Filesystem Initialization */
#ifdef RT_USING_DFS
{
- /* init the device filesystem */
- dfs_init();
- /* init the efsl filesystam*/
- efsl_init();
-
- /* mount sd card fat partition 1 as root directory */
+ /* init the device filesystem */
+ dfs_init();
+ /* init the efsl filesystam*/
+ efsl_init();
+
+ /* mount sd card fat partition 1 as root directory */
if (dfs_mount("sd0", "/", "efs", 0, 0) == 0)
- {
+ {
rt_kprintf("File System initialized!\n");
ls_root();
}
else
rt_kprintf("File System init failed!\n");
-
+
}
#endif
}
-
-int rt_application_init()
-{
- rt_thread_t init_thread;
-
+
+int rt_application_init()
+{
+ rt_thread_t init_thread;
+
#if (RT_THREAD_PRIORITY_MAX == 32)
- init_thread = rt_thread_create("init",
- rt_init_thread_entry, RT_NULL,
+ init_thread = rt_thread_create("init",
+ rt_init_thread_entry, RT_NULL,
2048, 8, 20);
#else
- init_thread = rt_thread_create("init",
- rt_init_thread_entry, RT_NULL,
+ init_thread = rt_thread_create("init",
+ rt_init_thread_entry, RT_NULL,
2048, 80, 20);
#endif
- if (init_thread != RT_NULL)
+ if (init_thread != RT_NULL)
rt_thread_startup(init_thread);
-
- return 0;
-}
-
-/*@}*/
+
+ return 0;
+}
+
+/*@}*/
diff --git a/bsp/stm3210/project_filesystem/rtconfig.h b/bsp/stm3210/project_filesystem/rtconfig.h
index a9013d312a..d97832256e 100644
--- a/bsp/stm3210/project_filesystem/rtconfig.h
+++ b/bsp/stm3210/project_filesystem/rtconfig.h
@@ -24,6 +24,12 @@
/* Using Hook */
#define RT_USING_HOOK
+/* Using Software Timer */
+/* #define RT_USING_TIMER_SOFT */
+#define RT_TIMER_THREAD_PRIO 4
+#define RT_TIMER_THREAD_STACK_SIZE 512
+#define RT_TIMER_TICK_PER_SECOND 10
+
/* SECTION: IPC */
/* Using Semaphore*/
#define RT_USING_SEMAPHORE
@@ -61,6 +67,9 @@
/* SECTION: device filesystem */
#define RT_USING_DFS
+#define RT_USING_DFS_EFSL
+/* #define RT_USING_DFS_ELMFAT */
+
/* the max number of mounted filesystem */
#define DFS_FILESYSTEMS_MAX 2
/* the max number of opened files */
diff --git a/bsp/stm3210/project_filesystem/startup.c b/bsp/stm3210/project_filesystem/startup.c
index f899c3ac66..36fe4b37a0 100644
--- a/bsp/stm3210/project_filesystem/startup.c
+++ b/bsp/stm3210/project_filesystem/startup.c
@@ -117,6 +117,9 @@ void rtthread_startup(void)
finsh_set_device("uart1");
#endif
+ /* init timer thread */
+ rt_system_timer_thread_init();
+
/* init idle thread */
rt_thread_idle_init();
diff --git a/bsp/stm3210/project_filesystem/stm32f10x_it.c b/bsp/stm3210/project_filesystem/stm32f10x_it.c
index 07be702146..5b131ea50f 100644
--- a/bsp/stm3210/project_filesystem/stm32f10x_it.c
+++ b/bsp/stm3210/project_filesystem/stm32f10x_it.c
@@ -1,130 +1,131 @@
-/**
- ******************************************************************************
- * @file Project/Template/stm32f10x_it.c
- * @author MCD Application Team
- * @version V3.1.0
- * @date 06/19/2009
- * @brief Main Interrupt Service Routines.
- * This file provides template for all exceptions handler and
- * peripherals interrupt service routine.
- ******************************************************************************
- * @copy
- *
- * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
- * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
- * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
- * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
- * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
- * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x_it.h"
+/**
+ ******************************************************************************
+ * @file Project/Template/stm32f10x_it.c
+ * @author MCD Application Team
+ * @version V3.1.0
+ * @date 06/19/2009
+ * @brief Main Interrupt Service Routines.
+ * This file provides template for all exceptions handler and
+ * peripherals interrupt service routine.
+ ******************************************************************************
+ * @copy
+ *
+ * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
+ * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
+ * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
+ * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
+ * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
+ * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+ *
+ * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f10x_it.h"
+#include <board.h>
#include <rtthread.h>
-
-/** @addtogroup Template_Project
- * @{
- */
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/******************************************************************************/
-/* Cortex-M3 Processor Exceptions Handlers */
-/******************************************************************************/
-
-/**
- * @brief This function handles NMI exception.
- * @param None
- * @retval None
- */
-void NMI_Handler(void)
-{
-}
-
-/**
- * @brief This function handles Hard Fault exception.
- * @param None
- * @retval None
- */
-void HardFault_Handler(void)
-{
- /* Go to infinite loop when Hard Fault exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles Memory Manage exception.
- * @param None
- * @retval None
- */
-void MemManage_Handler(void)
-{
- /* Go to infinite loop when Memory Manage exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles Bus Fault exception.
- * @param None
- * @retval None
- */
-void BusFault_Handler(void)
-{
- /* Go to infinite loop when Bus Fault exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles Usage Fault exception.
- * @param None
- * @retval None
- */
-void UsageFault_Handler(void)
-{
- /* Go to infinite loop when Usage Fault exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles SVCall exception.
- * @param None
- * @retval None
- */
-void SVC_Handler(void)
-{
-}
-
-/**
- * @brief This function handles Debug Monitor exception.
- * @param None
- * @retval None
- */
-void DebugMon_Handler(void)
-{
-}
-
-/******************************************************************************/
-/* STM32F10x Peripherals Interrupt Handlers */
-/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
-/* available peripheral interrupt handler's name please refer to the startup */
-/* file (startup_stm32f10x_xx.s). */
+
+/** @addtogroup Template_Project
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+/* Cortex-M3 Processor Exceptions Handlers */
/******************************************************************************/
-
+
+/**
+ * @brief This function handles NMI exception.
+ * @param None
+ * @retval None
+ */
+void NMI_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Hard Fault exception.
+ * @param None
+ * @retval None
+ */
+void HardFault_Handler(void)
+{
+ /* Go to infinite loop when Hard Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Memory Manage exception.
+ * @param None
+ * @retval None
+ */
+void MemManage_Handler(void)
+{
+ /* Go to infinite loop when Memory Manage exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Bus Fault exception.
+ * @param None
+ * @retval None
+ */
+void BusFault_Handler(void)
+{
+ /* Go to infinite loop when Bus Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Usage Fault exception.
+ * @param None
+ * @retval None
+ */
+void UsageFault_Handler(void)
+{
+ /* Go to infinite loop when Usage Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles SVCall exception.
+ * @param None
+ * @retval None
+ */
+void SVC_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Debug Monitor exception.
+ * @param None
+ * @retval None
+ */
+void DebugMon_Handler(void)
+{
+}
+
+/******************************************************************************/
+/* STM32F10x Peripherals Interrupt Handlers */
+/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
+/* available peripheral interrupt handler's name please refer to the startup */
+/* file (startup_stm32f10x_xx.s). */
+/******************************************************************************/
+
/*******************************************************************************
* Function Name : DMA1_Channel2_IRQHandler
* Description : This function handles DMA1 Channel 2 interrupt request.
@@ -249,6 +250,7 @@ void USART3_IRQHandler(void)
#endif
}
+#if defined(RT_USING_DFS) && STM32_USE_SDIO
/*******************************************************************************
* Function Name : SDIO_IRQHandler
* Description : This function handles SDIO global interrupt request.
@@ -258,7 +260,6 @@ void USART3_IRQHandler(void)
*******************************************************************************/
void SDIO_IRQHandler(void)
{
-#ifdef RT_USING_DFS
extern int SD_ProcessIRQSrc(void);
/* enter interrupt */
@@ -269,12 +270,86 @@ void SDIO_IRQHandler(void)
/* leave interrupt */
rt_interrupt_leave();
+}
+#endif
+
+#ifdef RT_USING_LWIP
+#ifdef STM32F10X_CL
+/*******************************************************************************
+* Function Name : ETH_IRQHandler
+* Description : This function handles ETH interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void ETH_IRQHandler(void)
+{
+ extern void rt_hw_stm32_eth_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_stm32_eth_isr();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#else
+#if (STM32_ETH_IF == 0)
+/*******************************************************************************
+* Function Name : EXTI0_IRQHandler
+* Description : This function handles External interrupt Line 0 request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void EXTI0_IRQHandler(void)
+{
+ extern void enc28j60_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ enc28j60_isr();
+
+ /* Clear the Key Button EXTI line pending bit */
+ EXTI_ClearITPendingBit(EXTI_Line0);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
#endif
+
+#if (STM32_ETH_IF == 1)
+/*******************************************************************************
+* Function Name : EXTI9_5_IRQHandler
+* Description : This function handles External lines 9 to 5 interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void EXTI9_5_IRQHandler(void)
+{
+ extern void rt_dm9000_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_dm9000_isr();
+
+ /* Clear the Key Button EXTI line pending bit */
+ EXTI_ClearITPendingBit(EXTI_Line7);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
}
-
-/**
- * @}
- */
-
-
-/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
+#endif
+#endif
+#endif /* end of RT_USING_LWIP */
+
+/**
+ * @}
+ */
+
+
+/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm3210/project_finsh/rtconfig.h b/bsp/stm3210/project_finsh/rtconfig.h
index 98b50b8404..910edd4bf0 100644
--- a/bsp/stm3210/project_finsh/rtconfig.h
+++ b/bsp/stm3210/project_finsh/rtconfig.h
@@ -24,6 +24,12 @@
/* Using Hook */
#define RT_USING_HOOK
+/* Using Software Timer */
+/* #define RT_USING_TIMER_SOFT */
+#define RT_TIMER_THREAD_PRIO 4
+#define RT_TIMER_THREAD_STACK_SIZE 512
+#define RT_TIMER_TICK_PER_SECOND 10
+
/* SECTION: IPC */
/* Using Semaphore*/
#define RT_USING_SEMAPHORE
@@ -59,7 +65,7 @@
/* the buffer size of console*/
#define RT_CONSOLEBUF_SIZE 128
-/* SECTION: finsh shell */
+/* SECTION: finsh, a C-Express shell */
#define RT_USING_FINSH
/* Using symbol table */
#define FINSH_USING_SYMTAB
diff --git a/bsp/stm3210/project_finsh/startup.c b/bsp/stm3210/project_finsh/startup.c
index f0ce276b4f..c0b5b3a25e 100644
--- a/bsp/stm3210/project_finsh/startup.c
+++ b/bsp/stm3210/project_finsh/startup.c
@@ -25,10 +25,10 @@
/*@{*/
extern int rt_application_init(void);
-#ifdef RT_USING_FINSH
+#ifdef RT_USING_FINSH
extern void finsh_system_init(void);
extern void finsh_set_device(const char* device);
-#endif
+#endif
#ifdef __CC_ARM
extern int Image$$RW_IRAM1$$ZI$$Limit;
@@ -108,7 +108,10 @@ void rtthread_startup(void)
/* init finsh */
finsh_system_init();
finsh_set_device("uart1");
-#endif
+#endif
+
+ /* init timer thread */
+ rt_system_timer_thread_init();
/* init idle thread */
rt_thread_idle_init();
diff --git a/bsp/stm3210/project_finsh/stm32f10x_it.c b/bsp/stm3210/project_finsh/stm32f10x_it.c
index 8ea8c7a710..dbbe524b86 100644
--- a/bsp/stm3210/project_finsh/stm32f10x_it.c
+++ b/bsp/stm3210/project_finsh/stm32f10x_it.c
@@ -22,7 +22,8 @@
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_it.h"
-#include <rtthread.h>
+#include <board.h>
+#include <rtthread.h>
/** @addtogroup Template_Project
* @{
@@ -124,130 +125,227 @@ void DebugMon_Handler(void)
/* available peripheral interrupt handler's name please refer to the startup */
/* file (startup_stm32f10x_xx.s). */
/******************************************************************************/
-
-/*******************************************************************************
-* Function Name : DMA1_Channel2_IRQHandler
-* Description : This function handles DMA1 Channel 2 interrupt request.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-void DMA1_Channel2_IRQHandler(void)
-{
-#ifdef RT_USING_UART3
- extern struct rt_device uart3_device;
- extern void rt_hw_serial_dma_tx_isr(struct rt_device *device);
-
- /* enter interrupt */
- rt_interrupt_enter();
-
- if (DMA_GetITStatus(DMA1_IT_TC2))
- {
- /* transmission complete, invoke serial dma tx isr */
- rt_hw_serial_dma_tx_isr(&uart3_device);
- }
-
- /* clear DMA flag */
- DMA_ClearFlag(DMA1_FLAG_TC2 | DMA1_FLAG_TE2);
-
- /* leave interrupt */
- rt_interrupt_leave();
-#endif
-}
-
-/*******************************************************************************
-* Function Name : DMA1_Channel6_IRQHandler
-* Description : This function handles DMA1 Channel 6 interrupt request.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-void DMA1_Channel6_IRQHandler(void)
-{
-#ifdef RT_USING_UART2
- extern struct rt_device uart2_device;
- extern void rt_hw_serial_dma_rx_isr(struct rt_device *device);
-
- /* enter interrupt */
- rt_interrupt_enter();
-
- /* clear DMA flag */
- DMA_ClearFlag(DMA1_FLAG_TC6 | DMA1_FLAG_TE6);
- rt_hw_serial_dma_rx_isr(&uart2_device);
-
- /* leave interrupt */
- rt_interrupt_leave();
-#endif
-}
-
-/*******************************************************************************
-* Function Name : USART1_IRQHandler
-* Description : This function handles USART1 global interrupt request.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-void USART1_IRQHandler(void)
-{
-#ifdef RT_USING_UART1
- extern struct rt_device uart1_device;
- extern void rt_hw_serial_isr(struct rt_device *device);
-
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_serial_isr(&uart1_device);
-
- /* leave interrupt */
- rt_interrupt_leave();
-#endif
-}
-
-/*******************************************************************************
-* Function Name : USART2_IRQHandler
-* Description : This function handles USART2 global interrupt request.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-void USART2_IRQHandler(void)
-{
-#ifdef RT_USING_UART2
- extern struct rt_device uart2_device;
- extern void rt_hw_serial_isr(struct rt_device *device);
-
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_serial_isr(&uart2_device);
-
- /* leave interrupt */
- rt_interrupt_leave();
-#endif
-}
-
-/*******************************************************************************
-* Function Name : USART3_IRQHandler
-* Description : This function handles USART3 global interrupt request.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-void USART3_IRQHandler(void)
-{
-#ifdef RT_USING_UART3
- extern struct rt_device uart3_device;
- extern void rt_hw_serial_isr(struct rt_device *device);
-
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_hw_serial_isr(&uart3_device);
-
- /* leave interrupt */
- rt_interrupt_leave();
-#endif
-}
+
+/*******************************************************************************
+* Function Name : DMA1_Channel2_IRQHandler
+* Description : This function handles DMA1 Channel 2 interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void DMA1_Channel2_IRQHandler(void)
+{
+#ifdef RT_USING_UART3
+ extern struct rt_device uart3_device;
+ extern void rt_hw_serial_dma_tx_isr(struct rt_device *device);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ if (DMA_GetITStatus(DMA1_IT_TC2))
+ {
+ /* transmission complete, invoke serial dma tx isr */
+ rt_hw_serial_dma_tx_isr(&uart3_device);
+ }
+
+ /* clear DMA flag */
+ DMA_ClearFlag(DMA1_FLAG_TC2 | DMA1_FLAG_TE2);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+#endif
+}
+
+/*******************************************************************************
+* Function Name : DMA1_Channel6_IRQHandler
+* Description : This function handles DMA1 Channel 6 interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void DMA1_Channel6_IRQHandler(void)
+{
+#ifdef RT_USING_UART2
+ extern struct rt_device uart2_device;
+ extern void rt_hw_serial_dma_rx_isr(struct rt_device *device);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ /* clear DMA flag */
+ DMA_ClearFlag(DMA1_FLAG_TC6 | DMA1_FLAG_TE6);
+ rt_hw_serial_dma_rx_isr(&uart2_device);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+#endif
+}
+
+/*******************************************************************************
+* Function Name : USART1_IRQHandler
+* Description : This function handles USART1 global interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void USART1_IRQHandler(void)
+{
+#ifdef RT_USING_UART1
+ extern struct rt_device uart1_device;
+ extern void rt_hw_serial_isr(struct rt_device *device);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_serial_isr(&uart1_device);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+#endif
+}
+
+/*******************************************************************************
+* Function Name : USART2_IRQHandler
+* Description : This function handles USART2 global interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void USART2_IRQHandler(void)
+{
+#ifdef RT_USING_UART2
+ extern struct rt_device uart2_device;
+ extern void rt_hw_serial_isr(struct rt_device *device);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_serial_isr(&uart2_device);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+#endif
+}
+
+/*******************************************************************************
+* Function Name : USART3_IRQHandler
+* Description : This function handles USART3 global interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void USART3_IRQHandler(void)
+{
+#ifdef RT_USING_UART3
+ extern struct rt_device uart3_device;
+ extern void rt_hw_serial_isr(struct rt_device *device);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_serial_isr(&uart3_device);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+#endif
+}
+
+#if defined(RT_USING_DFS) && STM32_USE_SDIO
+/*******************************************************************************
+* Function Name : SDIO_IRQHandler
+* Description : This function handles SDIO global interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void SDIO_IRQHandler(void)
+{
+ extern int SD_ProcessIRQSrc(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ /* Process All SDIO Interrupt Sources */
+ SD_ProcessIRQSrc();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif
+
+#ifdef RT_USING_LWIP
+#ifdef STM32F10X_CL
+/*******************************************************************************
+* Function Name : ETH_IRQHandler
+* Description : This function handles ETH interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void ETH_IRQHandler(void)
+{
+ extern void rt_hw_stm32_eth_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_stm32_eth_isr();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#else
+#if (STM32_ETH_IF == 0)
+/*******************************************************************************
+* Function Name : EXTI0_IRQHandler
+* Description : This function handles External interrupt Line 0 request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void EXTI0_IRQHandler(void)
+{
+ extern void enc28j60_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ enc28j60_isr();
+
+ /* Clear the Key Button EXTI line pending bit */
+ EXTI_ClearITPendingBit(EXTI_Line0);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif
+
+#if (STM32_ETH_IF == 1)
+/*******************************************************************************
+* Function Name : EXTI9_5_IRQHandler
+* Description : This function handles External lines 9 to 5 interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void EXTI9_5_IRQHandler(void)
+{
+ extern void rt_dm9000_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_dm9000_isr();
+
+ /* Clear the Key Button EXTI line pending bit */
+ EXTI_ClearITPendingBit(EXTI_Line7);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#endif
+#endif
+#endif /* end of RT_USING_LWIP */
/**
* @}
diff --git a/bsp/stm3210/project_lwip/application.c b/bsp/stm3210/project_lwip/application.c
index b1830132ef..13a2ee511a 100644
--- a/bsp/stm3210/project_lwip/application.c
+++ b/bsp/stm3210/project_lwip/application.c
@@ -17,43 +17,62 @@
*/
/*@{*/
-#include <rtthread.h>
-
-#ifdef RT_USING_LWIP
-#include <lwip/sys.h>
-#include <lwip/api.h>
-#endif
-
-void rt_init_thread_entry(void* parameter)
-{
-/* LwIP Initialization */
-#ifdef RT_USING_LWIP
- {
- extern void lwip_sys_init(void);
-
- /* init lwip system */
- lwip_sys_init();
- rt_kprintf("TCP/IP initialized!\n");
- }
-#endif
-}
+#include <board.h>
+#include <rtthread.h>
+
+#ifdef RT_USING_LWIP
+#include <lwip/sys.h>
+#include <lwip/api.h>
+#include <netif/ethernetif.h>
+#endif
+
+void rt_init_thread_entry(void* parameter)
+{
+/* LwIP Initialization */
+#ifdef RT_USING_LWIP
+ {
+ extern void lwip_sys_init(void);
+
+ /* register ethernetif device */
+ eth_system_device_init();
+
+#ifdef STM32F10X_CL
+ rt_hw_stm32_eth_init();
+#else
+ /* STM32F103 */
+ #if STM32_ETH_IF == 0
+ rt_hw_enc28j60_init();
+ #elif STM32_ETH_IF == 1
+ rt_hw_dm9000_init();
+ #endif
+#endif
+
+ /* re-init device driver */
+ rt_device_init_all();
+
+ /* init lwip system */
+ lwip_sys_init();
+ rt_kprintf("TCP/IP initialized!\n");
+ }
+#endif
+}
int rt_application_init()
{
rt_thread_t init_thread;
-#if (RT_THREAD_PRIORITY_MAX == 32)
+#if (RT_THREAD_PRIORITY_MAX == 32)
init_thread = rt_thread_create("init",
rt_init_thread_entry, RT_NULL,
- 2048, 8, 20);
-#else
+ 2048, 8, 20);
+#else
init_thread = rt_thread_create("init",
rt_init_thread_entry, RT_NULL,
- 2048, 80, 20);
-#endif
-
+ 2048, 80, 20);
+#endif
+
if (init_thread != RT_NULL)
- rt_thread_startup(init_thread);
+ rt_thread_startup(init_thread);
return 0;
}
diff --git a/bsp/stm3210/project_lwip/rtconfig.h b/bsp/stm3210/project_lwip/rtconfig.h
index 6eb4764008..e05e2a719e 100644
--- a/bsp/stm3210/project_lwip/rtconfig.h
+++ b/bsp/stm3210/project_lwip/rtconfig.h
@@ -24,6 +24,12 @@
/* Using Hook */
#define RT_USING_HOOK
+/* Using Software Timer */
+/* #define RT_USING_TIMER_SOFT */
+#define RT_TIMER_THREAD_PRIO 4
+#define RT_TIMER_THREAD_STACK_SIZE 512
+#define RT_TIMER_TICK_PER_SECOND 10
+
/* SECTION: IPC */
/* Using Semaphore*/
#define RT_USING_SEMAPHORE
@@ -57,23 +63,23 @@
/* SECTION: Console options */
/* the buffer size of console*/
-#define RT_CONSOLEBUF_SIZE 128
-
+#define RT_CONSOLEBUF_SIZE 128
+
/* SECTION: lwip, a lighwight TCP/IP protocol stack */
#define RT_USING_LWIP
-
+
/* Enable ICMP protocol*/
#define RT_LWIP_ICMP
/* Enable UDP protocol*/
#define RT_LWIP_UDP
/* Enable TCP protocol*/
-#define RT_LWIP_TCP
+#define RT_LWIP_TCP
/* Enable DNS */
#define RT_LWIP_DNS
-
+
/* the number of simulatenously active TCP connections*/
#define RT_LWIP_TCP_PCB_NUM 5
-
+
/* ip address of target*/
#define RT_LWIP_IPADDR0 192
#define RT_LWIP_IPADDR1 168
diff --git a/bsp/stm3210/project_lwip/startup.c b/bsp/stm3210/project_lwip/startup.c
index d509da099b..0c452762d7 100644
--- a/bsp/stm3210/project_lwip/startup.c
+++ b/bsp/stm3210/project_lwip/startup.c
@@ -23,17 +23,12 @@
*/
/*@{*/
-
-#ifdef RT_USING_LWIP
-#include "enc28j60.h"
-#include <netif/ethernetif.h>
-#endif
extern int rt_application_init(void);
-#ifdef RT_USING_FINSH
+#ifdef RT_USING_FINSH
extern void finsh_system_init(void);
extern void finsh_set_device(const char* device);
-#endif
+#endif
#ifdef __CC_ARM
extern int Image$$RW_IRAM1$$ZI$$Limit;
@@ -102,14 +97,7 @@ void rtthread_startup(void)
rt_system_scheduler_init();
/* init hardware serial device */
- rt_hw_usart_init();
-
-#ifdef RT_USING_LWIP
- eth_system_device_init();
-
- /* register ethernetif device */
- rt_hw_enc28j60_init();
-#endif
+ rt_hw_usart_init();
/* init all device */
rt_device_init_all();
@@ -121,7 +109,10 @@ void rtthread_startup(void)
/* init finsh */
finsh_system_init();
finsh_set_device("uart1");
-#endif
+#endif
+
+ /* init timer thread */
+ rt_system_timer_thread_init();
/* init idle thread */
rt_thread_idle_init();
diff --git a/bsp/stm3210/project_lwip/stm32f10x_it.c b/bsp/stm3210/project_lwip/stm32f10x_it.c
index 361e4e2cbc..5b131ea50f 100644
--- a/bsp/stm3210/project_lwip/stm32f10x_it.c
+++ b/bsp/stm3210/project_lwip/stm32f10x_it.c
@@ -1,130 +1,131 @@
-/**
- ******************************************************************************
- * @file Project/Template/stm32f10x_it.c
- * @author MCD Application Team
- * @version V3.1.0
- * @date 06/19/2009
- * @brief Main Interrupt Service Routines.
- * This file provides template for all exceptions handler and
- * peripherals interrupt service routine.
- ******************************************************************************
- * @copy
- *
- * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
- * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
- * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
- * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
- * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
- * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32f10x_it.h"
+/**
+ ******************************************************************************
+ * @file Project/Template/stm32f10x_it.c
+ * @author MCD Application Team
+ * @version V3.1.0
+ * @date 06/19/2009
+ * @brief Main Interrupt Service Routines.
+ * This file provides template for all exceptions handler and
+ * peripherals interrupt service routine.
+ ******************************************************************************
+ * @copy
+ *
+ * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
+ * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
+ * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
+ * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
+ * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
+ * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+ *
+ * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f10x_it.h"
+#include <board.h>
#include <rtthread.h>
-
-/** @addtogroup Template_Project
- * @{
- */
-
-/* Private typedef -----------------------------------------------------------*/
-/* Private define ------------------------------------------------------------*/
-/* Private macro -------------------------------------------------------------*/
-/* Private variables ---------------------------------------------------------*/
-/* Private function prototypes -----------------------------------------------*/
-/* Private functions ---------------------------------------------------------*/
-
-/******************************************************************************/
-/* Cortex-M3 Processor Exceptions Handlers */
-/******************************************************************************/
-
-/**
- * @brief This function handles NMI exception.
- * @param None
- * @retval None
- */
-void NMI_Handler(void)
-{
-}
-
-/**
- * @brief This function handles Hard Fault exception.
- * @param None
- * @retval None
- */
-void HardFault_Handler(void)
-{
- /* Go to infinite loop when Hard Fault exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles Memory Manage exception.
- * @param None
- * @retval None
- */
-void MemManage_Handler(void)
-{
- /* Go to infinite loop when Memory Manage exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles Bus Fault exception.
- * @param None
- * @retval None
- */
-void BusFault_Handler(void)
-{
- /* Go to infinite loop when Bus Fault exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles Usage Fault exception.
- * @param None
- * @retval None
- */
-void UsageFault_Handler(void)
-{
- /* Go to infinite loop when Usage Fault exception occurs */
- while (1)
- {
- }
-}
-
-/**
- * @brief This function handles SVCall exception.
- * @param None
- * @retval None
- */
-void SVC_Handler(void)
-{
-}
-
-/**
- * @brief This function handles Debug Monitor exception.
- * @param None
- * @retval None
- */
-void DebugMon_Handler(void)
-{
-}
-
-/******************************************************************************/
-/* STM32F10x Peripherals Interrupt Handlers */
-/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
-/* available peripheral interrupt handler's name please refer to the startup */
-/* file (startup_stm32f10x_xx.s). */
+
+/** @addtogroup Template_Project
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+/* Cortex-M3 Processor Exceptions Handlers */
/******************************************************************************/
-
+
+/**
+ * @brief This function handles NMI exception.
+ * @param None
+ * @retval None
+ */
+void NMI_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Hard Fault exception.
+ * @param None
+ * @retval None
+ */
+void HardFault_Handler(void)
+{
+ /* Go to infinite loop when Hard Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Memory Manage exception.
+ * @param None
+ * @retval None
+ */
+void MemManage_Handler(void)
+{
+ /* Go to infinite loop when Memory Manage exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Bus Fault exception.
+ * @param None
+ * @retval None
+ */
+void BusFault_Handler(void)
+{
+ /* Go to infinite loop when Bus Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Usage Fault exception.
+ * @param None
+ * @retval None
+ */
+void UsageFault_Handler(void)
+{
+ /* Go to infinite loop when Usage Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles SVCall exception.
+ * @param None
+ * @retval None
+ */
+void SVC_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Debug Monitor exception.
+ * @param None
+ * @retval None
+ */
+void DebugMon_Handler(void)
+{
+}
+
+/******************************************************************************/
+/* STM32F10x Peripherals Interrupt Handlers */
+/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
+/* available peripheral interrupt handler's name please refer to the startup */
+/* file (startup_stm32f10x_xx.s). */
+/******************************************************************************/
+
/*******************************************************************************
* Function Name : DMA1_Channel2_IRQHandler
* Description : This function handles DMA1 Channel 2 interrupt request.
@@ -249,6 +250,7 @@ void USART3_IRQHandler(void)
#endif
}
+#if defined(RT_USING_DFS) && STM32_USE_SDIO
/*******************************************************************************
* Function Name : SDIO_IRQHandler
* Description : This function handles SDIO global interrupt request.
@@ -258,7 +260,6 @@ void USART3_IRQHandler(void)
*******************************************************************************/
void SDIO_IRQHandler(void)
{
-#ifdef RT_USING_DFS
extern int SD_ProcessIRQSrc(void);
/* enter interrupt */
@@ -269,9 +270,32 @@ void SDIO_IRQHandler(void)
/* leave interrupt */
rt_interrupt_leave();
-#endif
}
+#endif
+#ifdef RT_USING_LWIP
+#ifdef STM32F10X_CL
+/*******************************************************************************
+* Function Name : ETH_IRQHandler
+* Description : This function handles ETH interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void ETH_IRQHandler(void)
+{
+ extern void rt_hw_stm32_eth_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_hw_stm32_eth_isr();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+#else
+#if (STM32_ETH_IF == 0)
/*******************************************************************************
* Function Name : EXTI0_IRQHandler
* Description : This function handles External interrupt Line 0 request.
@@ -281,7 +305,6 @@ void SDIO_IRQHandler(void)
*******************************************************************************/
void EXTI0_IRQHandler(void)
{
-#ifdef RT_USING_LWIP
extern void enc28j60_isr(void);
/* enter interrupt */
@@ -294,12 +317,39 @@ void EXTI0_IRQHandler(void)
/* leave interrupt */
rt_interrupt_leave();
+}
#endif
+
+#if (STM32_ETH_IF == 1)
+/*******************************************************************************
+* Function Name : EXTI9_5_IRQHandler
+* Description : This function handles External lines 9 to 5 interrupt request.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+void EXTI9_5_IRQHandler(void)
+{
+ extern void rt_dm9000_isr(void);
+
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_dm9000_isr();
+
+ /* Clear the Key Button EXTI line pending bit */
+ EXTI_ClearITPendingBit(EXTI_Line7);
+
+ /* leave interrupt */
+ rt_interrupt_leave();
}
-
-/**
- * @}
- */
-
-
-/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
+#endif
+#endif
+#endif /* end of RT_USING_LWIP */
+
+/**
+ * @}
+ */
+
+
+/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/