CMSIS RFFT works on 1.48, broken on 1.53?

Status
Not open for further replies.

highly

Active member
Working on a Teensy 4.0, Windows 10 (2 different machines)
I made a copy of my Arduino 1.8.9 directory and installed 1.53 over 1.48 in one instance.
Opened some code I've been working on in 1.53 and compiled, the Teensy flashed code then did not boot. Reflashing required a manual button press.

After stripping the sketch down to the test posted below, if I instantiate and initialize a Real FFT (I haven't tried other FFTs from the CMSIS library), then the Teensy will not boot when compiled under 1.53 but runs fine when compuled under 1.48.
The stripped down sketch runs in 1.8.9/1.48 but not 1.8.9/1.53 or a freshly installed 1.8.13/1.53 on another machine.


Code:
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <arm_math.h>
#include <arm_const_structs.h> 


// GUItool: begin automatically generated code
AudioInputTDM            tdmIn;          //xy=74,427
AudioOutputTDM           tdmOut;         //xy=1060,688
AudioConnection          patchCord1(tdmIn, 0, tdmOut, 0);
AudioConnection          patchCord2(tdmIn, 2, tdmOut, 2);
AudioControlCS42448      cs42448;        //xy=250,765
// GUItool: end automatically generated code

  // REAL FFT instance
static arm_rfft_fast_instance_f32 *S;

void setup() {
  Serial.begin(115200);
  delay(10);
  AudioMemory(200);
  // REAL FFT Initialization
  // Uncommenting this prevents the Teensy from booting.
  //arm_rfft_fast_init_f32( S, 32 );
  pinMode(13,1);
  digitalWrite(13,1);
  cs42448.enable();

}

void loop() {
  delay(250);
  digitalWrite(13,1);
  delay(250);
  Serial.println("Running");
  Serial.println(AudioMemoryUsage());
  digitalWrite(13,0);
}

I didn't find anything after some searching, so maybe someone can point me in the right direction.

Thanks!
 
Typically more like this:

arm_rfft_fast_instance_f32 S;
arm_rfft_fast_init_f32(&S, 32);

Be careful, as I recall, the real fft had a funky format for the results.
 
Typically more like this:

arm_rfft_fast_instance_f32 S;
arm_rfft_fast_init_f32(&S, 32);

Be careful, as I recall, the real fft had a funky format for the results.

Thanks. I'd been doing that incorrectly for a very long time and it had worked - leading me to believe I was doing it right. I appreciate the correction!
 
Status
Not open for further replies.
Back
Top