FreeRTOS httpserver connet with DAM

simonlee0311 wrote on Saturday, April 14, 2012:

Dear all:

My program was modify from ST official httpserver_netconn. Now it can connected with my iPad, then I try to compile with my CMOS sensor subroutine. (CMOS sensor subroutine can works.) Finally, I want show the image on web browser.

Tragedy was happened.
It can not responses my web request, and keeps in CMOS sensor action.
**Dose anyone has any suggestion? Please help, give me some advice. In the end how to do it more correct. **

The below is parts of my program.

int main(void)
{
 
  SRAM_Init();
  Reset_OV9655_Config();//reset OV9655
  LCD_LED_Init(); /*Initialize LCD and Leds */
  ETH_BSP_Config(); /* configure ethernet (GPIOs, clocks, MAC, DMA) */ 
  LwIP_Init(); /* Initilaize the LwIP stack */
  http_server_netconn_init(); /* Initialize webserver */

#ifdef USE_DHCP
  xTaskCreate(LwIP_DHCP_task, “DHCPClient”, configMINIMAL_STACK_SIZE, NULL,DHCP_TASK_PRIO, NULL); /* Start DHCPClient */
#endif  
  xTaskCreate(ToggleLed4, “LED1”, configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL); /* Start toogleLed4 task : Toggle LED4  every 250ms */

  xTaskCreate(DCMI_OV9655_Start, “DCMI_OV9655_Start”, configMINIMAL_STACK_SIZE, NULL, DCMI_TASK_PRIO, NULL); 

  /* Start scheduler */
  vTaskStartScheduler();

  /* We should never get here as control is now taken by the scheduler */
  for( ;; );

}

void DCMI_OV9655_Start((void * pvParameters)
  /* Configures the DMA2 to transfer Data from DCMI to the LCD ****************/
  /* Enable DMA2 clock */
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); 
 
  /* DMA2 Stream1 Configuration */ 
  DMA_DeInit(DMA2_Stream1);

  DMA_InitStructure.DMA_Channel = DMA_Channel_1;// in reference maual only DMA2_Stream1/Channel1 can for DCMI function
  DMA_InitStructure.DMA_PeripheralBaseAddr = DCMI_DR_ADDRESS;
  DMA_InitStructure.DMA_Memory0BaseAddr = FSMC_LCD_ADDRESS;
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
  DMA_InitStructure.DMA_BufferSize = 100;//BufferSize = 1 by PeripheralDataSize_Word(32b) =32b=4B=2pixel. means 4byte transfers one time
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//external address increase disable
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; //RAM address increase disable
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//DMA_Mode_Normal ;
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
  DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;        
  DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
  DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
  DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
    
  DMA_Init(DMA2_Stream1, &DMA_InitStructure);
}

simonlee0311 wrote on Saturday, April 14, 2012:

I forgot to say, that my platform is STM32F207.
Friends please provide me some advice. Very grateful.

Simon. Lee

rtel wrote on Saturday, April 14, 2012:

My program was modify from ST official httpserver_netconn.

Sorry,  I cannot support other peoples code.

Friends please provide me some advice.

If you have a problem with ST code, ask on an ST forum.

Regards.

simonlee0311 wrote on Saturday, April 14, 2012:

Dear Richard:

Thanks for your kindly reply.
Ok, I will try it by myself.

Best regards,

Simon