소스 검색

Add force init option to DMAChannel begin()

main
PaulStoffregen 10 년 전
부모
커밋
dc356076ed
2개의 변경된 파일5개의 추가작업 그리고 5개의 파일을 삭제
  1. +4
    -4
      teensy3/DMAChannel.cpp
  2. +1
    -1
      teensy3/DMAChannel.h

+ 4
- 4
teensy3/DMAChannel.cpp 파일 보기

@@ -4,14 +4,14 @@
// so C-only code can reserve DMA channels
uint16_t dma_channel_allocated_mask = 0;

void DMAChannel::begin(void)
void DMAChannel::begin(bool force_initialization)
{
uint32_t ch = 0;

__disable_irq();
if (TCD && ch < DMA_NUM_CHANNELS
&& (dma_channel_allocated_mask & (1 << ch))
&& (uint32_t)TCD == (0x40009000 + ch * 32)) {
if (!force_initialization && TCD && channel < DMA_NUM_CHANNELS
&& (dma_channel_allocated_mask & (1 << channel))
&& (uint32_t)TCD == (0x40009000 + channel * 32)) {
// DMA channel already allocated
__enable_irq();
return;

+ 1
- 1
teensy3/DMAChannel.h 파일 보기

@@ -396,7 +396,7 @@ public:
~DMAChannel() {
release();
}
void begin(void);
void begin(bool force_initialization = false);
private:
void release(void);


Loading…
취소
저장