123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- /**
- ******************************************************************************
- * @file stm32f4xx_it.c
- * @author MCD Application Team
- * @version V1.0.0
- * @date 31-October-2011
- * @brief Main Interrupt Service Routines.
- * This file provides template for all exceptions handler and
- * peripherals interrupt service routine.
- ******************************************************************************
- * @attention
- *
- * 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>© Portions COPYRIGHT 2011 STMicroelectronics</center></h2>
- ******************************************************************************
- */
- /**
- ******************************************************************************
- * <h2><center>© Portions COPYRIGHT 2012 Embest Tech. Co., Ltd.</center></h2>
- * @file stm32f4xx_it.c
- * @author CMP Team
- * @version V1.0.0
- * @date 28-December-2012
- * @brief Main Interrupt Service Routines.
- * This file provides template for all exceptions handler and
- * peripherals interrupt service routine.
- * Modified to support the STM32F4DISCOVERY, STM32F4DIS-BB and
- * STM32F4DIS-LCD modules.
- ******************************************************************************
- * @attention
- *
- * 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, Embest 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.
- ******************************************************************************
- */
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f4xx_it.h"
- #include "main.h"
- #include "stm32f4x7_eth.h"
- /* Scheduler includes */
- #include "FreeRTOS.h"
- #include "task.h"
- #include "queue.h"
- /* lwip includes */
- #include "sys.h"
- //#include "led.h"
- //#include <stdio.h>
- /* Private typedef -----------------------------------------------------------*/
- /* Private define ------------------------------------------------------------*/
- /* Private macro -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- extern SemaphoreHandle_t s_xSemaphore;
- /* Private function prototypes -----------------------------------------------*/
- extern void xPortSysTickHandler(void);
- /* Private functions ---------------------------------------------------------*/
- /******************************************************************************/
- /* Cortex-M4 Processor Exceptions Handlers */
- /******************************************************************************/
- /**
- * @brief This function handles NMI exception.
- * @param None
- * @retval None
- */
- void NMI_Handler(void)
- {
- // LED_On(RED_STATUS);
-
- /* Сбросить флаг системы контроля CSS */
- if (RCC->CIR & RCC_CIR_CSSF) RCC->CIR |= RCC_CIR_CSSC;
-
- // DBG printf("NMI exception\r\n");
- vTaskDelay(1010);
- NVIC_SystemReset();
-
- }
- /**
- * @brief This function handles Hard Fault exception.
- * @param None
- * @retval None
- */
- void HardFault_Handler(void)
- {
- DBG printf("Hardfault\r\n");
- /* Блокируем управление ключем на тау секунд*/
- /* TODO Remove if tested. Not sure why we need gpio control here */
- /* vTaskDelay shouldn't be used in ISR */
- //IO_KeyBlockOn();
- //vTaskDelay(1010);
- //NVIC_SystemReset();
- /* Go to infinite loop when Hard Fault exception occurs */
-
- /* Print SCB register */
- /* DBG printf("SCB: 0x%x\n\r", SCB->CFSR);
- DBG printf("UFSR: 0x%x\n\r", (SCB->CFSR & SCB_CFSR_USGFAULTSR_Msk) >> SCB_CFSR_USGFAULTSR_Pos);
- DBG printf("BFSR: 0x%x\n\r", (SCB->CFSR & SCB_CFSR_BUSFAULTSR_Msk) >> SCB_CFSR_BUSFAULTSR_Pos);
- DBG printf("MMFSR: 0x%x\n\r", (SCB->CFSR & SCB_CFSR_MEMFAULTSR_Msk) >> SCB_CFSR_MEMFAULTSR_Pos);*/
-
- 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 Debug Monitor exception.
- * @param None
- * @retval None
- */
- void DebugMon_Handler(void)
- {
- }
- /**
- * @brief This function handles ethernet DMA interrupt request.
- * @param None
- * @retval None
- */
- void ETH_IRQHandler(void)
- {
- #if 1
- portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
- /* Frame received */
- if ( ETH_GetDMAFlagStatus(ETH_DMA_FLAG_R) == SET)
- {
- /* Give the semaphore to wakeup LwIP task */
- xSemaphoreGiveFromISR( s_xSemaphore, &xHigherPriorityTaskWoken );
- }
-
- /* Clear the interrupt flags. */
- /* Clear the Eth DMA Rx IT pending bits */
- ETH_DMAClearITPendingBit(ETH_DMA_IT_R);
- ETH_DMAClearITPendingBit(ETH_DMA_IT_NIS);
-
- // Switch tasks if necessary. */
- if( xHigherPriorityTaskWoken != pdFALSE )
- {
- portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );
- }
- #endif
- }
- /******************************************************************************/
- /* 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)
- {
- }*/
- /*********** Portions COPYRIGHT 2012 Embest Tech. Co., Ltd.*****END OF FILE****/
|