2022-06-21 03:09 AM
2022-06-21 03:14 AM
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
2022-06-21 03:14 AM
I WANT PUT IN RANFUNC FOR NOT TALL BUS WHEN WRITE IN FLASH.
2022-06-21 04:06 AM
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);
}
}