내 UART Rx 및 Tx 용 DMA를 사용하려고합니다. 지금까지 프리랜서 버전의 시리얼 데모가 정상적으로 작동했습니다. 여전히 잘 작동합니다. 그러나 예제 프로젝트의 UART DMA 예제를 통합했습니다. 코드는 조건부로 컴파일되므로 스위치가 _HAS_DMA == 1 일 때만 DMA 엔진이 구성되고 RAM 버퍼가 구성되며 FreeRTOS 데모에서 요구하는대로 기본 UART ISR이 제거됩니다.DSPIC33F UART DMA 작동하지 않는 예제
이 시점에서 직렬 바이트 스트림을 보낼 때마다 실행중인 프로젝트가 단순히 재설정됩니다.
저는 MPLAB IDE 8.92, XC16 v1.20, Explorer-16 플랫폼, dspic33fj256gp710 부분을 사용하고 있습니다.
포함 된 DMA 코드는 FreeRTOS API 호출을 사용하지 않습니다. FreeRTOS 구성 옵션을 사용하여 StackOverflow가 감지되도록 프로젝트를 설정했습니다. 그러나 코드는 Stackoverflow 후크 기능에 도달하지 않습니다. 또한 들어오는 바이트가 잘 들어오는 지 확인하기 위해 U2ErrInterrupt ISR을 포함 시켰지만 그 인터럽트에도 도달하지는 않습니다.
이전에 직면 한 사람이 있습니까? 흥미롭게도 MPLAB C30 컴파일러를 사용하는 마이크로 칩 웹 사이트의 UART DMA 루프백 예제는 제 보드에서 잘 작동합니다.
이 포인터에 대한 포인터가 있습니까? FreeRTOS 포럼에서 UART 용 DMA를 사용하는 방법에 대한 코드 예제를 찾을 수는 없었지만 효율성을 위해 프로덕션 코드에서이 방법을 사용하는 것이 좋습니다.
도움이 필요하십니까?
감사와 안부, 이씨