https://forum.pjrc.com/threads/61412teensy4-core
p->update(); | p->update(); | ||||
// TODO: traverse inputQueueArray and release | // TODO: traverse inputQueueArray and release | ||||
// any input blocks that weren't consumed? | // any input blocks that weren't consumed? | ||||
cycles = (ARM_DWT_CYCCNT - cycles) >> 4; | |||||
cycles = (ARM_DWT_CYCCNT - cycles) >> 6; | |||||
p->cpu_cycles = cycles; | p->cpu_cycles = cycles; | ||||
if (cycles > p->cpu_cycles_max) p->cpu_cycles_max = cycles; | if (cycles > p->cpu_cycles_max) p->cpu_cycles_max = cycles; | ||||
} | } | ||||
} | } | ||||
//digitalWriteFast(2, LOW); | //digitalWriteFast(2, LOW); | ||||
totalcycles = (ARM_DWT_CYCCNT - totalcycles) >> 4;; | |||||
totalcycles = (ARM_DWT_CYCCNT - totalcycles) >> 6; | |||||
AudioStream::cpu_cycles_total = totalcycles; | AudioStream::cpu_cycles_total = totalcycles; | ||||
if (totalcycles > AudioStream::cpu_cycles_total_max) | if (totalcycles > AudioStream::cpu_cycles_total_max) | ||||
AudioStream::cpu_cycles_total_max = totalcycles; | AudioStream::cpu_cycles_total_max = totalcycles; |
AudioStream::initialize_memory(data, num); \ | AudioStream::initialize_memory(data, num); \ | ||||
}) | }) | ||||
#define CYCLE_COUNTER_APPROX_PERCENT(n) (((n) + (F_CPU_ACTUAL / 32 / AUDIO_SAMPLE_RATE * AUDIO_BLOCK_SAMPLES / 100)) / (F_CPU_ACTUAL / 16 / AUDIO_SAMPLE_RATE * AUDIO_BLOCK_SAMPLES / 100)) | |||||
#define CYCLE_COUNTER_APPROX_PERCENT(n) (((n) + (F_CPU_ACTUAL / 128 / AUDIO_SAMPLE_RATE * AUDIO_BLOCK_SAMPLES / 100)) / (F_CPU_ACTUAL / 64 / AUDIO_SAMPLE_RATE * AUDIO_BLOCK_SAMPLES / 100)) | |||||
#define AudioProcessorUsage() (CYCLE_COUNTER_APPROX_PERCENT(AudioStream::cpu_cycles_total)) | #define AudioProcessorUsage() (CYCLE_COUNTER_APPROX_PERCENT(AudioStream::cpu_cycles_total)) | ||||
#define AudioProcessorUsageMax() (CYCLE_COUNTER_APPROX_PERCENT(AudioStream::cpu_cycles_total_max)) | #define AudioProcessorUsageMax() (CYCLE_COUNTER_APPROX_PERCENT(AudioStream::cpu_cycles_total_max)) |