Просмотр исходного кода

Add force init option to DMAChannel begin()

teensy4-core
PaulStoffregen 10 лет назад
Родитель
Сommit
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);


Загрузка…
Отмена
Сохранить