cancel
Showing results for 
Search instead for 
Did you mean: 

how put UART DMA IN RAM?

jdo
Associate II
 
3 REPLIES 3
jdo
Associate II

I AM THE LINKER, I NEED PUT UART DMA IN RAM, BECAUSE I AM WRITTING IN FLASH, AND THIS DO TALL BUS WHEN I WRITE IN FLASH IN REAL TIME. I AM USING UART DMA, BUT COMUNICATION NOT IS VERY GOOD.

I AM USING DMA: HAL_UARTEx_ReceiveToIdle_DMA(&huart1,Rx_data,Rx_Buff_size);

I HAVE TOO 3 TIMER INTERRUPT, AND 1 EXTERNT INTERRUP.

/* Initialized data sections into "RAM" Ram type memory */
  .data :
  {
    . = ALIGN(4);
    _sdata = .;        /* create a global symbol at data start */
    *(.data)           /* .data sections */
    *(.data*)          /* .data* sections */
    *(.RamFunc)        /* .RamFunc sections */
    *(.RamFunc*)       /* .RamFunc* sections */
 
    . = ALIGN(4);
    _edata = .;        /* define a global symbol at data end */
 
  } >RAM AT> FLASH

jdo
Associate II

I WANT PUT IN RANFUNC FOR NOT TALL BUS WHEN WRITE IN FLASH.

jdo
Associate II

i am using DMA uart rx:

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
 
{
 
	if(huart->Instance==USART1)
 
	{
 
		memcpy(main_Buff,Rx_data,Size);
 
		HAL_UARTEx_ReceiveToIdle_DMA(&huart1,Rx_data,Rx_Buff_size);
 
		findString();
 
		__HAL_DMA_DISABLE_IT(&hdma_usart1_rx,DMA_IT_HT);
 
	}
 
}