문제

STM32F4 시리즈의 DMA에는 몇 가지 고급 기능이 있으며 여기에서 설명을 요청할 수 있습니까?

  • 동시 스트림 : 두 개의 스트림이 동시에 데이터를 전송할 수 있습니까? 1 바이트 전송이 허용되므로. 버스 폭이 32 비트이면 4 개의 동시 전송이 가능합니다. BTW, STM32 용 AHB 버스의 폭은 무엇입니까?

  • FIFO 모드 : 동시 전송이 불가능한 경우 FIFO가 여기에서 사용될 수 있습니다. FIFO는 AHB 버스를 차지하지 않고 저속 주변 장치에서 DMA로 데이터를 대기하는 데 도움이됩니다. 일정량의 데이터가 준비되면 데이터 덩어리가 함께 메모리로 보내집니다. 내 이해가 맞습니까?

4 워드 깊이 32 FIFENT-IN, 스트림 당 첫 번째 메모리 버퍼 (FIFOS)

그게 무슨 뜻 이죠? FIFO에 얼마나 많은 데이터를 저장할 수 있습니까? 4 또는 4 * 32?

  • 버스트 모드 : 실제로 버스트 모드는 무엇을합니까? 데이터 시트에서 65535 데이터를 전송할 수 있습니다. 버스트 모드로 65535의 관계는 무엇입니까?

  • 이중 버퍼 모드 :

이중 버퍼 유형 트랜잭션 : 두 개의

이중 버퍼 전송 메모리에 대한 메모리 포인터 (DMA가 읽기 / 쓰기 중에있는 동안 또는 버퍼로, 응용 프로그램은 다른
완충기). ----- STM32F4의 참조 설명서에서

내 질문은 다음과 같습니다. DMA 전송 중에는 Cortex M4에서는 AHB 버스를 사용할 수 없으며 어떻게 응용 프로그램이 다른 버퍼에서 읽을 수 있습니까?

도움이 되었습니까?

해결책

일부 연구를 수행 한 후에, 여기에서 누군가가 필요할 수 있으면 찾은 것입니다.

  • 동시 스트림 : 하나의 DMA에서는 불가능합니다. DMA1, DMA2가 동시에 실행되도록 할 수 있습니다. 예 : F427은 동시에 수행 할 수 있습니다 :

    • 플래시에 대한 액세스 (읽기 코드)
    • DMA1 SRAM에 대한 액세스 (일부 버퍼 전송)
    • DMA2 SDRAM (다른 버퍼)
    • 에 대한 액세스
  • FIFO는 저속 장치에서 일시적으로 데이터를 저장하는 데 사용됩니다. 일정량의 데이터가 축적되었을 때 AHB의 자원을 저장하기 위해 버스트가 전송 될 수 있습니다. AHB가 DMAC에서 사용되는 경우, 프로세서에서는 사용할 수 없습니다. FIFO에는 4 * 32 비트 크기가 있습니다. 그것은 16 * 8 비트 (16 * 0NE 바이트)로 구성 할 수 있습니다.

  • 버스트 모드 : FIFO가 메모리를 말하고, 데이터 청크가 지속적으로 전송됩니다. AHB는 버스트가 발송되면 점령됩니다. 버스트 모드는 AHB의 자원을 저장하는 데 사용됩니다. 65535 데이터 크기 제한과 관련이 없습니다.
  • 이중 버퍼 : 이전에 알 수 있듯이 AHB는 데이터가 전송되는 경우에만 점유됩니다. 따라서 DMA가 AHB를 차지하지 않을 때 프로세서가 메모리에서 데이터를 가져올 수 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top