new flow for CMSIS-DSP use in MCUXpresso SDK 2.12.x?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

new flow for CMSIS-DSP use in MCUXpresso SDK 2.12.x?

418 Views
variable_andrew
Senior Contributor I

The MCUXpresso SDK 2.11.x used to include a .a library file for the CMSIS DSP library.

Now it looks like it provides just source files, (many of which are SUPPOSED to be excluded from the project it seems)?

As there are no DSP demos in the SDK, I was hoping usage would be similar to before, but if I simply create a project using the CMSIS core + DSP source/headers... well it builds there. Then I actually use the DSP functions (including arm_math.h and using functions like arm_mat_init_f32 in c files), I get compiler/linker failures: "multiple definition of `arm_bitreversal_64 ", etc.

 

Anyone else experience this / have a solution?

Screen Shot 2022-11-15 at 10.44.53 AM.png

Tags (2)
0 Kudos
3 Replies

412 Views
variable_andrew
Senior Contributor I

i reverted JUST the CMSIS DSP library (as per the screen shot below, so back to 5.0.3 it seems), which means bringing back the .a binary lib file, updating the project to look for that lib file in the linker/asm project settings, and the project builds w/ the new 2.12.x SDK (but old CMSIS DSP) just fine, so it seems to me something may be broken in the new CMSIS DSP?

Screen Shot 2022-11-15 at 3.45.27 PM.png

0 Kudos

403 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @variable_andrew ,

Can you share your project?

 

Regards,

Jing

0 Kudos

342 Views
variable_andrew
Senior Contributor I

Coming back to this - to reproduce basic build problems w/ this SDK and ARM CMSIS DSP functions, start with a fresh project:

Screen Shot 2023-01-27 at 9.22.35 AM.pngScreen Shot 2023-01-27 at 9.22.46 AM.png

add in the CMSIS DSP library header... then verify what CMSIS components are included...

 

Screen Shot 2023-01-27 at 9.23.16 AM.png

I linked the application to RAM to avoid messing w/ any FLASH setup, etc etc, then FINISH creating the project:Screen Shot 2023-01-27 at 9.25.08 AM.png

 

Add the following to the main project to test the DSP availability (and call this function from main):

/* TODO: insert other include files here. */
#include "arm_math.h"

/* TODO: insert other definitions and declarations here. */
static void test_matrix_transpose();

static void test_matrix_transpose(){
  arm_matrix_instance_f32 A;      /* Matrix A Instance */
  arm_matrix_instance_f32 AT;     /* Matrix AT instance */
  arm_status status;

  float32_t A_f32[8*3] = {0};
  float32_t AT_f32[3*8];

  for (int i=0; i< 8; i++){
    A_f32[i * 3 + 0] = 1;
    A_f32[i * 3 + 1] = 2;
    A_f32[i * 3 + 2] = 3;
  }

  /* Initialize A Matrix Instance with numRows, numCols and data array */
  arm_mat_init_f32(&A, 8 /*rows*/, 3 /*cols*/, (float32_t *)A_f32);
  /* Initialize Matrix Instance AT with numRows, numCols and data */
  arm_mat_init_f32(&AT, 3, 8, AT_f32);
  /* calculation of A transpose */
  status = arm_mat_trans_f32(&A, &AT);

  if (status != ARM_MATH_SUCCESS) {
    while (1);
  }
}

 

Then, try and build - see errors:

build fails despite includint arm_math.h which includes the specified matrix functionsbuild fails despite includint arm_math.h which includes the specified matrix functions

 

 

If i just include the library headers in the project and not the source, before this would include the actual .a file (the compiled library itself), but if you go to project settings, linker, library: the library is no where to be found.

 

no library anymoreno library anymore

0 Kudos