/** ****************************************************************************** * @file Project/STM32F4xx_StdPeriph_Templates/stm32f4xx_it.c * @author MCD Application Team * @version V1.5.0 * @date 06-March-2015 * @brief Main Interrupt Service Routines. * This file provides template for all exceptions handler and * peripherals interrupt service routine. ****************************************************************************** * @attention * *

© COPYRIGHT 2015 STMicroelectronics

* * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_it.h" #include "includes.h" #include "lwip_eth.h" #include "stm32f4x7_eth.h" #include "stm32f4xx.h" extern OS_EVENT *g_enet_rx_sem; /** @addtogroup Template_Project * @{ */ /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /******************************************************************************/ /* Cortex-M4 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) { } /** * @brief This function handles PendSVC exception. * @param None * @retval None */ // void PendSV_Handler(void) // { // } /** * @brief This function handles SysTick Handler. * @param None * @retval None */ // void SysTick_Handler(void) // { // // TimingDelay_Decrement(); // } /******************************************************************************/ /* STM32F4xx 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_stm32f4xx.s). */ /******************************************************************************/ /** * @brief This function handles PPP interrupt request. * @param None * @retval None */ /*void PPP_IRQHandler(void) { }*/ /** * @} */ #ifdef USE_ETH_INTERRUPT /*! \brief this function handles ethernet interrupt request \param[in] none \param[out] none \retval none */ void ETH_IRQHandler(void) { OSIntEnter(); /* frame received */ if (SET == ETH_GetDMAITStatus(ETH_DMA_FLAG_R)) { /* clear the enet DMA Rx interrupt pending bits */ ETH_DMAClearITPendingBit(ETH_DMA_FLAG_R); ETH_DMAClearITPendingBit(ETH_DMA_FLAG_NIS); /* give the semaphore to wakeup LwIP task */ OSSemPost(g_enet_rx_sem); } OSIntExit(); } #endif /* USE_ETH_INTERRUPT */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/