cancel
Showing results for 
Search instead for 
Did you mean: 

CIMSIS 5.9 (Source) - missing dependencies

CBerg
Senior

Hello Community!

I just started a new project and wanted to use CMSIS 5.9 - as it finally can be installed from the package without errors.

Until now I only used CMSIS 5.7 als library, which worked pretty well. Unfortunately since 5.9 there is no library availiable, which could be included so I had to select "source" in the CubeMX Setup:

CubeMX CMSIS SetupCubeMX CMSIS Setup

The only difference to CMSIS 5.7 as I used it previously is, that I selected "source" for the DSP component and of course the version 5.9

I wrote a simple test programm and tried to compile it. The result is a lot of missing dependencies:

console outputconsole output

it is e.g. complaining about:

./Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/SupportFunctions.c:29:10: fatal error: arm_barycenter_f32.c: No such file or directory 

or

../Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/SupportFunctions/SupportFunctionsF16.c:29:10: fatal error: arm_copy_f16.c: No such file or directory

 

project treeproject tree

if I open one of these files, it is just the tip of the iceberg, there are lots of missing dependencies:

a2.png

StatisticsFunctions.c e.g. wants to include lots of *.c files, which are non existant in the project.

I have added ../Middlewares/Thrid_Party/ARM_CMSIS/CMSIS to the incude directories in the Project setup, with no result - which is obvious because the included files do not exist in the project folder.

Where can I find the missing files?

Do I have to manually downlowad CMSIS 5.9 and copy it into the "CMSIS" folder of the project? Or something like that? It's obvious that there is something at the lowest level, but I have no experience at all with including the CMSIS sources and I have no idea where to start my search.

Can anyone point me in the right direction?

By the way: if I select CMSIS in the CubeMX Project Setup, it automatically creates a link to the source folder "CMSIS" in the project path, but the folder is not created. So at the first start of a project with CMSIS a problem notification pops up. My solution so far was to create an empty folder named CMSIS, then the problem notification disappeared. Does this eventually mean CubeMX / CubeIDE expects me to add my version of CMSIS manually to the project? I'd expect that CubeMX would do this automatically, if I select CMSIS Base and DPS in the Setup. But you never know ...

My fallback solution would be to go back to CMSIS 5.7 and use the library as I always did before. But I'd really like to understand what the issue is so I can find a solution.

Thanks in advance!

2 REPLIES 2
CBerg
Senior

Update 1: nope, downloading CMSIS 5.9 and adding the source files to the project does not solve the missing dependencies.

Why the heck is the source code - downloaded "fresh" from github - contain missing dependencies? I am not the only one who uses this packae?... strange

CBerg
Senior

Update 2: downloading the CMSIS_DSP-main from github and linking it to the project solved most of the missing dependency issues, but

  • arm_barycenter_f32.c is missing in "SupportFunctions.c"
  • arm_bitreversal.c is missing in "TransformFunctions.c"
  • arm_entropy_f32.c is missing in "StatisticsFunctions.c"

and I get a bunch of warnings like

CMSIS_DSP/Testing/cmsis_build/RTE/Device/ARMCM35P_DSP_FP/subdir.mk:30: warning: overriding recipe for target 'CMSIS_DSP/Testing/cmsis_build/RTE/Device/ARMCM35P_DSP_FP/startup_ARMCM35P.o'

 

What's also somewhat strange is that it seems there are running two comples. Eventually because in the github repository there is a makefile included?