David Fletcher / Mbed 2 deprecated cc3100_Test_websock_Camera_CM4F

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dflet
Date:
Tue Jul 07 22:56:31 2015 +0000
Parent:
10:f2447c682c0f
Child:
12:7d75ba5deed1
Commit message:
WIP commit 12

Changed in this revision

camera_app/camera_app.cpp Show annotated file Show diff for this revision Revisions of this file
camera_app/httpserverapp/httpserverapp.cpp Show annotated file Show diff for this revision Revisions of this file
http/server/HttpCore.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
utils/app_config.h Show annotated file Show diff for this revision Revisions of this file
--- a/camera_app/camera_app.cpp	Mon Jul 06 23:20:14 2015 +0000
+++ b/camera_app/camera_app.cpp	Tue Jul 07 22:56:31 2015 +0000
@@ -326,29 +326,32 @@
 //!                               
 //
 //*****************************************************************************
-DCMI_HandleTypeDef phdcmi;
-DMA_HandleTypeDef hdma_dcmi;
 static unsigned short CaptureImage(char** WriteBuffer)
 {
+	DCMI_HandleTypeDef phdcmi;
+    DMA_HandleTypeDef hdma_dcmi;
 //    Uart_Write((uint8_t*)"CaptureImage \n\r");
-//    memset(g_image.g_image_buffer,0xF80F,sizeof(g_image.g_image_buffer));
-    memset(g_image.g_image_buffer,0x0F,sizeof(g_image.g_image_buffer));
+    memset(g_image.g_image_buffer,0xF80F,sizeof(g_image.g_image_buffer));
+//    memset(g_image.g_image_buffer,0x0F,sizeof(g_image.g_image_buffer));
     p_buffer = &(g_image.g_image_buffer[0]);
     
     DMAConfig();
-    
+
     //
     // Perform Image Capture 
     //
 //    wait_ms(500);
+#ifdef ENABLE_JPEG
     HAL_DCMI_Start_DMA(&phdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)p_buffer, NUM_OF_4B_CHUNKS);
-//    HAL_DCMI_Start_DMA(&phdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)p_buffer, FRAME_SIZE_IN_BYTES/4); 
+#else
+    HAL_DCMI_Start_DMA(&phdcmi, DCMI_MODE_CONTINUOUS, (uint32_t)p_buffer, NUM_OF_4B_CHUNKS);
+#endif
+    HttpDebug("CaptureImage Complete\n\r");    
     g_frame_end = 1;
  
-    /* Read the number of data items transferred (4 x uints = bytes)*/
-//    g_frame_size_in_bytes = (FRAME_SIZE_IN_BYTES - (hdma_dcmi.Instance->NDTR*4));
+    /* Read the number of data items transferred (4 x uint = 4 bytes) */
     g_frame_size_in_bytes = 4*(NUM_OF_4B_CHUNKS - hdma_dcmi.Instance->NDTR);
-    if(NUM_OF_4B_CHUNKS == hdma_dcmi.Instance->NDTR){
+    if(g_frame_size_in_bytes <= 0){
     	HttpDebug("\r\nFailed to capture any data, check camera connections!\r\n");
     	HAL_DCMI_MspDeInit(&phdcmi);
     	while(1){
@@ -360,12 +363,12 @@
     
     HttpDebug("g_frame_size_in_bytes = 0x%x \r\n",g_frame_size_in_bytes);
     
-    uint8_t* Image_Array = reinterpret_cast<uint8_t*>(&g_image.g_image_buffer);
-#if 0    
+    uint8_t* Image = reinterpret_cast<uint8_t*>(&g_image.g_image_buffer);
+//#if 0    
     for(int i =0;i< 10;i++){
-    	HttpDebug("0x%x ",Image_Array[i]);
+    	HttpDebug("0x%x ",Image[i]);
     }
-#endif//if 0    
+//#endif//if 0    
     //
     // Create JPEG Header
     //
@@ -375,17 +378,17 @@
                                        PIXELS_IN_Y_AXIS, 0, 0x0020, 9);
 
     // This pushes the header to the start of the array so that the entire picture can be contiguous in memory
-    memcpy(Image_Array + g_header_length,Image_Array,g_frame_size_in_bytes);
-    memcpy(Image_Array,g_image.g_header,g_header_length);
+    memcpy(Image + g_header_length, Image, g_frame_size_in_bytes);
+    memcpy(Image, g_image.g_header, g_header_length);
 #if 0    
-    for(int i =625;i< 725;i++){
-    	HttpDebug("0x%x ",Image_Array[i]);
+    for(int i =624;i< 725;i++){
+    	HttpDebug("0x%x ",Image[i]);
     }	 
 #endif//if 0
 
 #endif//ENABLE_JPEG
 
-    *WriteBuffer = (char*)Image_Array;
+    *WriteBuffer = (char*)Image;
 
 	return(g_header_length + g_frame_size_in_bytes);
 }
@@ -400,6 +403,8 @@
 //*****************************************************************************
 static void DMAConfig()
 {
+	DCMI_HandleTypeDef phdcmi;
+    DMA_HandleTypeDef hdma_dcmi;
 //    Uart_Write((uint8_t*)"DMAConfig \n\r");
     
     /* Peripheral DMA init*/
@@ -410,20 +415,20 @@
     hdma_dcmi.Init.Direction           = DMA_PERIPH_TO_MEMORY;
     hdma_dcmi.Init.PeriphInc           = DMA_PINC_DISABLE;
     hdma_dcmi.Init.MemInc              = DMA_MINC_ENABLE;
-    hdma_dcmi.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;//Cam is 1 byte wide data (8 bits) should this be word as well?????
+    hdma_dcmi.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;//Cam is 1 byte wide data (8 bits) should this be word?????
     hdma_dcmi.Init.MemDataAlignment    = DMA_PDATAALIGN_WORD;//Memory is defined as uint (1 word)
     hdma_dcmi.Init.Mode                = DMA_CIRCULAR;
     hdma_dcmi.Init.Priority            = DMA_PRIORITY_HIGH;
-    hdma_dcmi.Init.FIFOMode            = DMA_FIFOMODE_ENABLE;
+    hdma_dcmi.Init.FIFOMode            = DMA_FIFOMODE_DISABLE;
     hdma_dcmi.Init.FIFOThreshold       = DMA_FIFO_THRESHOLD_FULL;
     hdma_dcmi.Init.MemBurst            = DMA_MBURST_SINGLE;
     hdma_dcmi.Init.PeriphBurst         = DMA_PBURST_SINGLE;
     hdma_dcmi.Instance                 = DMA2_Stream1;
     
-    __HAL_LINKDMA(&phdcmi,DMA_Handle,hdma_dcmi);
+    __HAL_LINKDMA(&phdcmi, DMA_Handle, hdma_dcmi);
     
      /* DMA interrupt init */
-    HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 1, 0);
+    HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 5, 0);
     HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
     
     /* Peripheral DCMI init*/
@@ -520,7 +525,7 @@
     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
 
   /* System interrupt init*/
-    HAL_NVIC_SetPriority(DCMI_IRQn, 1, 0);
+    HAL_NVIC_SetPriority(DCMI_IRQn, 5, 0);
     HAL_NVIC_EnableIRQ(DCMI_IRQn);
 
     HAL_DMA_Init(&hdma_dcmi);
--- a/camera_app/httpserverapp/httpserverapp.cpp	Mon Jul 06 23:20:14 2015 +0000
+++ b/camera_app/httpserverapp/httpserverapp.cpp	Tue Jul 07 22:56:31 2015 +0000
@@ -209,7 +209,8 @@
     Uart_Write((uint8_t*)"HttpServerAppTask \n\r");
 	//Run APPS HTTP Server
 	HttpServerInitAndRun(NULL);
-
+	
+    Uart_Write((uint8_t*)"HttpServerAppTask has returned for some reason\n\r");
 	LOOP_FOREVER();
 
 }
--- a/http/server/HttpCore.cpp	Mon Jul 06 23:20:14 2015 +0000
+++ b/http/server/HttpCore.cpp	Tue Jul 07 22:56:31 2015 +0000
@@ -143,10 +143,10 @@
  * This structure holds all of the global state of the HTTP server
  */
 //#ifdef __CCS__
-typedef struct __attribute__ ((__packed__)) HttpGlobalState
+//typedef struct __attribute__ ((__packed__)) HttpGlobalState
 //#elif __IAR_SYSTEMS_ICC__
 //#pragma pack(1)
-//typedef struct //HttpGlobalState
+struct HttpGlobalState
 //#endif
 {
     /// The listening socket
@@ -163,7 +163,7 @@
     UINT8 packetSend[HTTP_CORE_MAX_PACKET_SIZE_SEND];
     /// Size of data in the packet-send buffer
     UINT16 packetSendSize;
-}HttpGlobalState;
+};
 
 /// The global state of the HTTP server
  struct HttpGlobalState g_state;
@@ -219,7 +219,7 @@
     RunHttpServer();
 }
 
-void RunHttpServer(void)
+void RunHttpServer()
 {
   int iRecvLen = 0, sock = -1, uConnection = 0;
   struct HttpBlob blob;
@@ -327,7 +327,7 @@
         else if(g_state.uOpenConnections == 0)
         {
         	/* wait 500ms */
-        	wait(0.5);
+        	wait_ms(500);
 		}
       }
   }
@@ -1420,12 +1420,12 @@
 		HttpResponse_AddStringToResponseHeaders(EncOutKey, strlen(EncOutKey));
 		HttpResponse_AddStringToResponseHeaders(HTTP_HEADER_DELIMITER, strlen(HTTP_HEADER_DELIMITER));
 
-		// Server : CC3200
+		// Server : CC3100
 		// This field informs the client the server name
 		HttpResponse_AddStringToResponseHeaders("Server", strlen("Server"));
 		HttpResponse_AddCharToResponseHeaders(':');
 		HttpResponse_AddCharToResponseHeaders(' ');
-		HttpResponse_AddStringToResponseHeaders("CC3200", strlen("CC3200"));
+		HttpResponse_AddStringToResponseHeaders("CC3100", strlen("CC3100"));
 		HttpResponse_AddStringToResponseHeaders(HTTP_HEADER_DELIMITER, strlen(HTTP_HEADER_DELIMITER));
 
 		// This is the same origin supplied by the client. The origin tells the server whether the client is a browser or not.
--- a/main.cpp	Mon Jul 06 23:20:14 2015 +0000
+++ b/main.cpp	Tue Jul 07 22:56:31 2015 +0000
@@ -77,7 +77,7 @@
   
   RCC_OscInitTypeDef RCC_OscInitStruct;
   RCC_ClkInitTypeDef RCC_ClkInitStruct;
-  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;//Used for ov7670 test
+//  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;//Used for ov7670 test
   
   __PWR_CLK_ENABLE();
 //  __GPIOH_CLK_ENABLE(); //Enable HSE Clock 8MHz 
@@ -102,10 +102,10 @@
   HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
   
   //Used for ov7670 test
-  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S;//|RCC_PERIPHCLK_I2S;
-  PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
-  PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
-  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
+//  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_PLLI2S;//|RCC_PERIPHCLK_I2S;
+//  PeriphClkInitStruct.PLLI2S.PLLI2SN = 192;
+//  PeriphClkInitStruct.PLLI2S.PLLI2SR = 2;
+//  HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
   
   /* RCC_MCODIV_5 33.6MHz mco2 output on pin PC_9 (cam xclk) */
   /* RCC_MCODIV_4 42MHz mco2 output on pin PC_9 (cam xclk) */
@@ -113,16 +113,16 @@
 //  HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_SYSCLK, RCC_MCODIV_4);
 
   /* RCC_MCODIV_1 16MHz mco1 output on pin PA_8 (cam xclk) */
-  HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
+//  HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
 
   /* RCC_MCODIV_1 8MHz mco2 output on pin PC_9 (cam xclk) */ 
   /* RCC_MCODIV_2 4MHz mco2 output on pin PC_9 (cam xclk) */ 
   /* RCC_MCODIV_4 2MHz mco2 output on pin PC_9 (cam xclk) */  
-//  HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_HSE, RCC_MCODIV_1);
+  HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_HSE, RCC_MCODIV_4);
 
   //Used for ov7670 test
   /* RCC_MCODIV_4 24MHz mco2 output on pin PC_9 (cam xclk) */
-  HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_PLLI2SCLK, RCC_MCODIV_4);
+//  HAL_RCC_MCOConfig(RCC_MCO2, RCC_MCO2SOURCE_PLLI2SCLK, RCC_MCODIV_4);
 
   HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
   
@@ -384,27 +384,27 @@
   * @param  None
   * @retval None
   */
+/*  
 void DMA2_Stream1_IRQHandler(void)
 {
-  DCMI_HandleTypeDef hdcmi;
   DMA_HandleTypeDef hdma_dcmi;
   Uart_Write((uint8_t*)"DMA2_Stream1_IRQHandler \n\r");
   HAL_DMA_IRQHandler(&hdma_dcmi);  
 }
-
+*/
 /**
   * @brief  DCMI interrupt handler.
   * @param  None
   * @retval None
   */
+/*  
 void DCMI_IRQHandler(void)
 {
   DCMI_HandleTypeDef hdcmi;
-  DMA_HandleTypeDef hdma_dcmi;
   Uart_Write((uint8_t*)"DCMI_IRQHandler \n\r");
   HAL_DCMI_IRQHandler(&hdcmi);
 }
-
+*/
 //*****************************************************************************
 //
 // Close the Doxygen group.
--- a/utils/app_config.h	Mon Jul 06 23:20:14 2015 +0000
+++ b/utils/app_config.h	Tue Jul 07 22:56:31 2015 +0000
@@ -4,8 +4,8 @@
 
 
 #define SPAWN_TASK_PRIORITY            7//9
-#define HTTP_SERVER_APP_TASK_PRIORITY  2//1
-#define CAMERA_SERVICE_PRIORITY        2
+#define HTTP_SERVER_APP_TASK_PRIORITY  1//1
+#define CAMERA_SERVICE_PRIORITY        1
 #define OSI_STACK_SIZE                 2048