Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Committer:
dflet
Date:
Tue Jul 07 22:56:31 2015 +0000
Revision:
11:404bd8bb7fa6
Parent:
9:b7c6e7303df5
Child:
12:7d75ba5deed1
WIP commit 12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 //*****************************************************************************
dflet 0:50cedd586816 2 // main.c
dflet 0:50cedd586816 3 //
dflet 0:50cedd586816 4 // Reference code to demonstrate getting the current time using an NTP server.
dflet 0:50cedd586816 5 //
dflet 0:50cedd586816 6 // Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
dflet 0:50cedd586816 7 //
dflet 0:50cedd586816 8 //
dflet 0:50cedd586816 9 // Redistribution and use in source and binary forms, with or without
dflet 0:50cedd586816 10 // modification, are permitted provided that the following conditions
dflet 0:50cedd586816 11 // are met:
dflet 0:50cedd586816 12 //
dflet 0:50cedd586816 13 // Redistributions of source code must retain the above copyright
dflet 0:50cedd586816 14 // notice, this list of conditions and the following disclaimer.
dflet 0:50cedd586816 15 //
dflet 0:50cedd586816 16 // Redistributions in binary form must reproduce the above copyright
dflet 0:50cedd586816 17 // notice, this list of conditions and the following disclaimer in the
dflet 0:50cedd586816 18 // documentation and/or other materials provided with the
dflet 0:50cedd586816 19 // distribution.
dflet 0:50cedd586816 20 //
dflet 0:50cedd586816 21 // Neither the name of Texas Instruments Incorporated nor the names of
dflet 0:50cedd586816 22 // its contributors may be used to endorse or promote products derived
dflet 0:50cedd586816 23 // from this software without specific prior written permission.
dflet 0:50cedd586816 24 //
dflet 0:50cedd586816 25 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
dflet 0:50cedd586816 26 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dflet 0:50cedd586816 27 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
dflet 0:50cedd586816 28 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
dflet 0:50cedd586816 29 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dflet 0:50cedd586816 30 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
dflet 0:50cedd586816 31 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
dflet 0:50cedd586816 32 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
dflet 0:50cedd586816 33 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
dflet 0:50cedd586816 34 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
dflet 0:50cedd586816 35 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dflet 0:50cedd586816 36 //
dflet 0:50cedd586816 37 //*****************************************************************************
dflet 0:50cedd586816 38
dflet 0:50cedd586816 39 //****************************************************************************
dflet 0:50cedd586816 40 //
dflet 0:50cedd586816 41 //! \addtogroup main
dflet 0:50cedd586816 42 //! @{
dflet 0:50cedd586816 43 //
dflet 0:50cedd586816 44 //****************************************************************************
dflet 0:50cedd586816 45
dflet 0:50cedd586816 46 #include "mbed.h"
dflet 0:50cedd586816 47
dflet 0:50cedd586816 48 // SimpleLink include
dflet 0:50cedd586816 49 #include "cc3100_simplelink.h"
dflet 0:50cedd586816 50 #include "cc3100.h"
dflet 0:50cedd586816 51
dflet 0:50cedd586816 52 #include "httpserverapp.h"
dflet 0:50cedd586816 53
dflet 4:c27adffcfec2 54 //#include "stm32f4xx_hal.h"
dflet 7:a069c1750fbc 55 #include "stm32f4xx_hal_rcc.h"
dflet 0:50cedd586816 56
dflet 0:50cedd586816 57 /* Free-RTOS includes */
dflet 0:50cedd586816 58 #include "osi.h"
dflet 0:50cedd586816 59
dflet 0:50cedd586816 60 #include "cli_uart.h"
dflet 0:50cedd586816 61 #include "app_config.h"
dflet 0:50cedd586816 62 #include "myBoardInit.h"
dflet 0:50cedd586816 63
dflet 0:50cedd586816 64 using namespace mbed_cc3100;
dflet 0:50cedd586816 65
dflet 0:50cedd586816 66 static void SystemClock_Config(void);
dflet 4:c27adffcfec2 67
dflet 4:c27adffcfec2 68 void DCMI_IRQHandler(void);
dflet 4:c27adffcfec2 69 void DMA2_Stream1_IRQHandler(void);
dflet 0:50cedd586816 70
dflet 0:50cedd586816 71 /** System Clock Configuration
dflet 0:50cedd586816 72 */
dflet 0:50cedd586816 73 static void SystemClock_Config(void)
dflet 0:50cedd586816 74 {
dflet 0:50cedd586816 75
dflet 4:c27adffcfec2 76 SystemCoreClockUpdate();
dflet 4:c27adffcfec2 77
dflet 0:50cedd586816 78 RCC_OscInitTypeDef RCC_OscInitStruct;
dflet 0:50cedd586816 79 RCC_ClkInitTypeDef RCC_ClkInitStruct;
dflet 11:404bd8bb7fa6 80 // RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;//Used for ov7670 test
dflet 3:7643714ec664 81
dflet 0:50cedd586816 82 __PWR_CLK_ENABLE();
dflet 7:a069c1750fbc 83 // __GPIOH_CLK_ENABLE(); //Enable HSE Clock 8MHz
dflet 0:50cedd586816 84 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
dflet 0:50cedd586816 85
dflet 0:50cedd586816 86 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
dflet 0:50cedd586816 87 RCC_OscInitStruct.HSEState = RCC_HSE_ON;
dflet 0:50cedd586816 88 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
dflet 0:50cedd586816 89 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
dflet 0:50cedd586816 90 RCC_OscInitStruct.PLL.PLLM = 8;
dflet 0:50cedd586816 91 RCC_OscInitStruct.PLL.PLLN = 336;
dflet 0:50cedd586816 92 RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
dflet 0:50cedd586816 93 RCC_OscInitStruct.PLL.PLLQ = 7;
dflet 0:50cedd586816 94 HAL_RCC_OscConfig(&RCC_OscInitStruct);
dflet 0:50cedd586816 95
dflet 0:50cedd586816 96 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1
dflet 0:50cedd586816 97 |RCC_CLOCKTYPE_PCLK2;
dflet 0:50cedd586816 98 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
dflet 0:50cedd586816 99 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
dflet 0:50cedd586816 100 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
dflet 0:50cedd586816 101 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
dflet 0:50cedd586816 102 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
dflet 0:50cedd586816 103
dflet 3:7643714ec664 104 //Used for ov7670 test
dflet 11:404bd8bb7fa6 105 // PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S;//|RCC_PERIPHCLK_I2S;
dflet 11:404bd8bb7fa6 106 // PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
dflet 11:404bd8bb7fa6 107 // PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
dflet 11:404bd8bb7fa6 108 // HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
dflet 3:7643714ec664 109
dflet 7:a069c1750fbc 110 /* RCC_MCODIV_5 33.6MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 111 /* RCC_MCODIV_4 42MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 112 /* RCC_MCODIV_3 56MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 113 // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_4);
dflet 4:c27adffcfec2 114
dflet 7:a069c1750fbc 115 /* RCC_MCODIV_1 16MHz mco1 output on pin PA_8 (cam xclk) */
dflet 11:404bd8bb7fa6 116 // HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
dflet 7:a069c1750fbc 117
dflet 7:a069c1750fbc 118 /* RCC_MCODIV_1 8MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 119 /* RCC_MCODIV_2 4MHz mco2 output on pin PC_9 (cam xclk) */
dflet 7:a069c1750fbc 120 /* RCC_MCODIV_4 2MHz mco2 output on pin PC_9 (cam xclk) */
dflet 11:404bd8bb7fa6 121 HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_HSE, RCC_MCODIV_4);
dflet 4:c27adffcfec2 122
dflet 3:7643714ec664 123 //Used for ov7670 test
dflet 7:a069c1750fbc 124 /* RCC_MCODIV_4 24MHz mco2 output on pin PC_9 (cam xclk) */
dflet 11:404bd8bb7fa6 125 // HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_PLLI2SCLK, RCC_MCODIV_4);
dflet 0:50cedd586816 126
dflet 0:50cedd586816 127 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
dflet 3:7643714ec664 128
dflet 4:c27adffcfec2 129 HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
dflet 4:c27adffcfec2 130
dflet 4:c27adffcfec2 131 /* STM32F405x/407x/415x/417x Revision Z devices: prefetch is supported */
dflet 4:c27adffcfec2 132 // if (HAL_GetREVID() == 0x1001)
dflet 4:c27adffcfec2 133 // {
dflet 4:c27adffcfec2 134 /* Enable the Flash prefetch */
dflet 4:c27adffcfec2 135 // __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
dflet 4:c27adffcfec2 136 // }
dflet 3:7643714ec664 137
dflet 0:50cedd586816 138 }
dflet 0:50cedd586816 139
dflet 1:1a80c1529aa3 140 /* Warning if pin changes are made below then the same changes have to be made in the following files.
dflet 0:50cedd586816 141 * httpserverapp.cpp
dflet 0:50cedd586816 142 * HttpCore.cpp
dflet 0:50cedd586816 143 * HttpSocket.cpp
dflet 0:50cedd586816 144 * HttpStatic.cpp
dflet 0:50cedd586816 145 * fPtr_func.cpp
dflet 0:50cedd586816 146 */
dflet 0:50cedd586816 147
dflet 0:50cedd586816 148 /* Off board leds */
dflet 0:50cedd586816 149 DigitalOut led1(PB_15);
dflet 0:50cedd586816 150 DigitalOut led2(PB_14);
dflet 9:b7c6e7303df5 151
dflet 0:50cedd586816 152 cc3100 _cc3100(NC, NC, PD_12, PD_13, PD_11, SPI(PB_5, PB_4, PB_3));//Seeed_Arch_Max irq, nHib, cs, mosi, miso, sck
dflet 0:50cedd586816 153
dflet 0:50cedd586816 154 void initLEDs(void);
dflet 0:50cedd586816 155 void toggleLed(int ind);
dflet 0:50cedd586816 156 static void DisplayBanner(char * AppName);
dflet 0:50cedd586816 157
dflet 0:50cedd586816 158 #define PRINT_BUF_LEN 128
dflet 0:50cedd586816 159 int8_t print_buf[PRINT_BUF_LEN];
dflet 0:50cedd586816 160
dflet 0:50cedd586816 161 //*****************************************************************************
dflet 0:50cedd586816 162 // LOCAL DEFINES
dflet 0:50cedd586816 163 //*****************************************************************************
dflet 0:50cedd586816 164 #define APP_NAME "WebSocket"
dflet 0:50cedd586816 165
dflet 0:50cedd586816 166 void initLEDs(void){
dflet 0:50cedd586816 167
dflet 0:50cedd586816 168 #if (THIS_BOARD == Seeed_Arch_Max)
dflet 0:50cedd586816 169 led1 = 0;
dflet 0:50cedd586816 170 led2 = 0;
dflet 0:50cedd586816 171 #endif
dflet 0:50cedd586816 172
dflet 0:50cedd586816 173 }
dflet 0:50cedd586816 174
dflet 0:50cedd586816 175 void toggleLed(int ind){
dflet 0:50cedd586816 176
dflet 0:50cedd586816 177 if(ind == 1){
dflet 0:50cedd586816 178 led1 = !led1;
dflet 0:50cedd586816 179 }
dflet 0:50cedd586816 180 if(ind == 2){
dflet 0:50cedd586816 181 led2 = !led2;
dflet 0:50cedd586816 182 }
dflet 0:50cedd586816 183
dflet 0:50cedd586816 184 }
dflet 0:50cedd586816 185
dflet 0:50cedd586816 186 //*****************************************************************************
dflet 0:50cedd586816 187 //
dflet 0:50cedd586816 188 //! Application startup display on UART
dflet 0:50cedd586816 189 //!
dflet 0:50cedd586816 190 //! \param none
dflet 0:50cedd586816 191 //!
dflet 0:50cedd586816 192 //! \return none
dflet 0:50cedd586816 193 //!
dflet 0:50cedd586816 194 //*****************************************************************************
dflet 0:50cedd586816 195
dflet 0:50cedd586816 196 //#ifndef NOTERM
dflet 0:50cedd586816 197 static void
dflet 0:50cedd586816 198 DisplayBanner(char * AppName)
dflet 0:50cedd586816 199 {
dflet 0:50cedd586816 200
dflet 0:50cedd586816 201 Report("\n\n\n\r");
dflet 0:50cedd586816 202 Report(" *************************************************\n\r");
dflet 0:50cedd586816 203 Report(" CC3100 %s Application \n\r", AppName);
dflet 0:50cedd586816 204 Report(" *************************************************\n\r");
dflet 0:50cedd586816 205 Report("\n\n\n\r");
dflet 0:50cedd586816 206 }
dflet 0:50cedd586816 207 //#endif
dflet 0:50cedd586816 208
dflet 0:50cedd586816 209 //****************************************************************************
dflet 0:50cedd586816 210 // MAIN FUNCTION
dflet 0:50cedd586816 211 //****************************************************************************
dflet 0:50cedd586816 212 int main(void) {
dflet 0:50cedd586816 213
dflet 0:50cedd586816 214 int rv = 0;
dflet 3:7643714ec664 215
dflet 4:c27adffcfec2 216 HAL_Init();
dflet 4:c27adffcfec2 217
dflet 0:50cedd586816 218 SystemClock_Config();
dflet 3:7643714ec664 219
dflet 0:50cedd586816 220 //
dflet 0:50cedd586816 221 // Configuring UART
dflet 0:50cedd586816 222 //
dflet 0:50cedd586816 223 CLI_Configure();
dflet 7:a069c1750fbc 224 initLEDs();
dflet 0:50cedd586816 225
dflet 4:c27adffcfec2 226 // toggleLed(1);
dflet 0:50cedd586816 227 //#ifndef NOTERM
dflet 0:50cedd586816 228
dflet 0:50cedd586816 229 //
dflet 0:50cedd586816 230 // Configuring UART
dflet 0:50cedd586816 231 //
dflet 0:50cedd586816 232 // CLI_Configure();
dflet 0:50cedd586816 233
dflet 0:50cedd586816 234 memset(print_buf, 0x00, PRINT_BUF_LEN);
dflet 0:50cedd586816 235 sprintf((char*) print_buf, " \r\nSystemCoreClock = %dMHz\r\n ", SystemCoreClock /1000000);
dflet 0:50cedd586816 236 rv = Uart_Write((uint8_t *) print_buf);
dflet 0:50cedd586816 237 if(rv < 0){
dflet 0:50cedd586816 238 while(1){
dflet 0:50cedd586816 239 toggleLed(1);
dflet 0:50cedd586816 240 wait(0.1);
dflet 0:50cedd586816 241 }
dflet 0:50cedd586816 242 }
dflet 0:50cedd586816 243
dflet 0:50cedd586816 244 //
dflet 0:50cedd586816 245 // Display Application Banner
dflet 0:50cedd586816 246 //
dflet 0:50cedd586816 247 DisplayBanner(APP_NAME);
dflet 0:50cedd586816 248
dflet 0:50cedd586816 249 //#endif
dflet 0:50cedd586816 250
dflet 0:50cedd586816 251 //
dflet 0:50cedd586816 252 // Start the SimpleLink Host
dflet 0:50cedd586816 253 //
dflet 0:50cedd586816 254 VStartSimpleLinkSpawnTask(SPAWN_TASK_PRIORITY);
dflet 0:50cedd586816 255 //
dflet 0:50cedd586816 256 // Start the HttpServer Task
dflet 0:50cedd586816 257 //
dflet 0:50cedd586816 258 //
dflet 0:50cedd586816 259
dflet 0:50cedd586816 260 osi_TaskCreate(HttpServerAppTask,
dflet 0:50cedd586816 261 "WebSocketApp",
dflet 0:50cedd586816 262 OSI_STACK_SIZE,
dflet 0:50cedd586816 263 NULL,
dflet 0:50cedd586816 264 HTTP_SERVER_APP_TASK_PRIORITY,
dflet 0:50cedd586816 265 NULL );
dflet 0:50cedd586816 266
dflet 0:50cedd586816 267 Uart_Write((uint8_t*)"HttpServerApp Initialized \n\r");
dflet 0:50cedd586816 268
dflet 0:50cedd586816 269 //
dflet 0:50cedd586816 270 // Start the task scheduler
dflet 0:50cedd586816 271 //
dflet 0:50cedd586816 272 osi_start();
dflet 0:50cedd586816 273
dflet 0:50cedd586816 274 return 0;
dflet 0:50cedd586816 275 }
dflet 0:50cedd586816 276
dflet 4:c27adffcfec2 277 /**
dflet 4:c27adffcfec2 278 * @brief This function handles Hard Fault exception.
dflet 4:c27adffcfec2 279 * @param None
dflet 4:c27adffcfec2 280 * @retval None
dflet 4:c27adffcfec2 281 */
dflet 4:c27adffcfec2 282 extern "C" void HardFault_Handler(void)
dflet 4:c27adffcfec2 283 {
dflet 4:c27adffcfec2 284 /* Go to infinite loop when Hard Fault exception occurs */
dflet 5:75fcfdb7cae7 285 printf("Hard Fault Register SCB->HSFR 0x%X \r\n",SCB->HFSR);
dflet 5:75fcfdb7cae7 286 printf("Call to Memory Address SCB->BFAR 0x%X ERROR!\r\n",SCB->BFAR);
dflet 5:75fcfdb7cae7 287 printf("Fault bits set SCB->CFSR 0x%X \r\n",SCB->CFSR);
dflet 5:75fcfdb7cae7 288 printf("Call to Memory Address SCB->MMFAR 0x%X ERROR!\r\n",SCB->MMFAR);
dflet 5:75fcfdb7cae7 289
dflet 4:c27adffcfec2 290 Uart_Write((uint8_t*)"HardFault_Handler \n\r");
dflet 4:c27adffcfec2 291 while (1)
dflet 4:c27adffcfec2 292 {
dflet 4:c27adffcfec2 293 }
dflet 4:c27adffcfec2 294 }
dflet 4:c27adffcfec2 295
dflet 4:c27adffcfec2 296 /**
dflet 4:c27adffcfec2 297 * @brief This function handles Memory Manage exception.
dflet 4:c27adffcfec2 298 * @param None
dflet 4:c27adffcfec2 299 * @retval None
dflet 4:c27adffcfec2 300 */
dflet 4:c27adffcfec2 301 extern "C" void MemManage_Handler(void)
dflet 4:c27adffcfec2 302 {
dflet 4:c27adffcfec2 303 Uart_Write((uint8_t*)"MemManage_Handler \n\r");
dflet 4:c27adffcfec2 304 /* Go to infinite loop when Memory Manage exception occurs */
dflet 4:c27adffcfec2 305 while (1)
dflet 4:c27adffcfec2 306 {
dflet 4:c27adffcfec2 307 }
dflet 4:c27adffcfec2 308 }
dflet 4:c27adffcfec2 309
dflet 4:c27adffcfec2 310 /**
dflet 4:c27adffcfec2 311 * @brief This function handles Bus Fault exception.
dflet 4:c27adffcfec2 312 * @param None
dflet 4:c27adffcfec2 313 * @retval None
dflet 4:c27adffcfec2 314 */
dflet 4:c27adffcfec2 315 extern "C" void BusFault_Handler(void)
dflet 4:c27adffcfec2 316 {
dflet 4:c27adffcfec2 317 Uart_Write((uint8_t*)"BusFault_Handler \n\r");
dflet 4:c27adffcfec2 318 /* Go to infinite loop when Bus Fault exception occurs */
dflet 4:c27adffcfec2 319 while (1)
dflet 4:c27adffcfec2 320 {
dflet 4:c27adffcfec2 321 }
dflet 4:c27adffcfec2 322 }
dflet 4:c27adffcfec2 323
dflet 4:c27adffcfec2 324 /**
dflet 4:c27adffcfec2 325 * @brief This function handles Usage Fault exception.
dflet 4:c27adffcfec2 326 * @param None
dflet 4:c27adffcfec2 327 * @retval None
dflet 4:c27adffcfec2 328 */
dflet 4:c27adffcfec2 329 extern "C" void UsageFault_Handler(void)
dflet 4:c27adffcfec2 330 {
dflet 4:c27adffcfec2 331 Uart_Write((uint8_t*)"UsageFault_Handler \n\r");
dflet 4:c27adffcfec2 332 /* Go to infinite loop when Usage Fault exception occurs */
dflet 4:c27adffcfec2 333 while (1)
dflet 4:c27adffcfec2 334 {
dflet 4:c27adffcfec2 335 }
dflet 4:c27adffcfec2 336 }
dflet 4:c27adffcfec2 337
dflet 4:c27adffcfec2 338 /**
dflet 4:c27adffcfec2 339 * @brief This function handles SVCall exception.
dflet 4:c27adffcfec2 340 * @param None
dflet 4:c27adffcfec2 341 * @retval None
dflet 4:c27adffcfec2 342 */
dflet 4:c27adffcfec2 343 /*
dflet 4:c27adffcfec2 344 extern "C" void SVC_Handler(void)
dflet 4:c27adffcfec2 345 {
dflet 4:c27adffcfec2 346 Uart_Write((uint8_t*)"SVC_Handler \n\r");
dflet 4:c27adffcfec2 347 }
dflet 4:c27adffcfec2 348 */
dflet 4:c27adffcfec2 349 /**
dflet 4:c27adffcfec2 350 * @brief This function handles Debug Monitor exception.
dflet 4:c27adffcfec2 351 * @param None
dflet 4:c27adffcfec2 352 * @retval None
dflet 4:c27adffcfec2 353 */
dflet 4:c27adffcfec2 354 extern "C" void DebugMon_Handler(void)
dflet 4:c27adffcfec2 355 {
dflet 4:c27adffcfec2 356 Uart_Write((uint8_t*)"DebugMon_Handler \n\r");
dflet 4:c27adffcfec2 357 }
dflet 4:c27adffcfec2 358
dflet 4:c27adffcfec2 359 /**
dflet 4:c27adffcfec2 360 * @brief This function handles PendSVC exception.
dflet 4:c27adffcfec2 361 * @param None
dflet 4:c27adffcfec2 362 * @retval None
dflet 4:c27adffcfec2 363 */
dflet 4:c27adffcfec2 364 /*
dflet 4:c27adffcfec2 365 extern "C" void PendSV_Handler(void)
dflet 4:c27adffcfec2 366 {
dflet 4:c27adffcfec2 367 Uart_Write((uint8_t*)"PendSV_Handler \n\r");
dflet 4:c27adffcfec2 368 }
dflet 4:c27adffcfec2 369 */
dflet 4:c27adffcfec2 370 /**
dflet 4:c27adffcfec2 371 * @brief This function handles SysTick Handler.
dflet 4:c27adffcfec2 372 * @param None
dflet 4:c27adffcfec2 373 * @retval None
dflet 4:c27adffcfec2 374 */
dflet 4:c27adffcfec2 375 /*
dflet 4:c27adffcfec2 376 extern "C" void SysTick_Handler(void)
dflet 4:c27adffcfec2 377 {
dflet 4:c27adffcfec2 378 Uart_Write((uint8_t*)"SysTick_Handler \n\r");
dflet 4:c27adffcfec2 379 HAL_IncTick();
dflet 4:c27adffcfec2 380 }
dflet 4:c27adffcfec2 381 */
dflet 4:c27adffcfec2 382 /**
dflet 4:c27adffcfec2 383 * @brief DMA interrupt handler.
dflet 4:c27adffcfec2 384 * @param None
dflet 4:c27adffcfec2 385 * @retval None
dflet 4:c27adffcfec2 386 */
dflet 11:404bd8bb7fa6 387 /*
dflet 4:c27adffcfec2 388 void DMA2_Stream1_IRQHandler(void)
dflet 4:c27adffcfec2 389 {
dflet 5:75fcfdb7cae7 390 DMA_HandleTypeDef hdma_dcmi;
dflet 4:c27adffcfec2 391 Uart_Write((uint8_t*)"DMA2_Stream1_IRQHandler \n\r");
dflet 4:c27adffcfec2 392 HAL_DMA_IRQHandler(&hdma_dcmi);
dflet 4:c27adffcfec2 393 }
dflet 11:404bd8bb7fa6 394 */
dflet 4:c27adffcfec2 395 /**
dflet 4:c27adffcfec2 396 * @brief DCMI interrupt handler.
dflet 4:c27adffcfec2 397 * @param None
dflet 4:c27adffcfec2 398 * @retval None
dflet 4:c27adffcfec2 399 */
dflet 11:404bd8bb7fa6 400 /*
dflet 4:c27adffcfec2 401 void DCMI_IRQHandler(void)
dflet 4:c27adffcfec2 402 {
dflet 5:75fcfdb7cae7 403 DCMI_HandleTypeDef hdcmi;
dflet 4:c27adffcfec2 404 Uart_Write((uint8_t*)"DCMI_IRQHandler \n\r");
dflet 4:c27adffcfec2 405 HAL_DCMI_IRQHandler(&hdcmi);
dflet 4:c27adffcfec2 406 }
dflet 11:404bd8bb7fa6 407 */
dflet 0:50cedd586816 408 //*****************************************************************************
dflet 0:50cedd586816 409 //
dflet 0:50cedd586816 410 // Close the Doxygen group.
dflet 0:50cedd586816 411 //! @}
dflet 0:50cedd586816 412 //
dflet 0:50cedd586816 413 //*****************************************************************************
dflet 0:50cedd586816 414