Re: nRF9160 CMSIS DSP code bloat

Stephanos Ioannidis



By default, CONFIG_CMSIS_DSP_FASTMATH and CONFIG_CMSIS_DSP_TRANSFORM pulls in many big tables:


Try the following:



2. Select only the tables you need.


Also you can play with the configs in menuconfig and try getting the image size down.




From: devel@... <devel@...> On Behalf Of DKaplan via
Sent: Monday, August 16, 2021 3:02 PM
To: devel@...
Subject: [Zephyr-devel] nRF9160 CMSIS DSP code bloat


Using SES v1.6.1 with the nRF9160 module, I added the necessary CMSIS DSP defines for my project. This adds a quite a lot of files and it does not look like the linker includes only files used.

My code size has went over 466Kb. After adding more unrelated features, the code went over the 512Kb mark after which I remark part of the added code since I do not want to get into adjusting boot loader defines yet (a learning curve also there).

 We need the CMSIS libraries (only a few functions) and the calculations seems to work but it looks like the linker adds a ton of files and functions that are not even called.
 Is there a way that the linker will remove them or should I just select all of the files I need in a new directory (bad I know).  How can I determine which files are used or not?

I thought maybe to try to build a CMSIS DSP library that I would add to my Nordic CONNECT project that would pull in only files and tables that are used.
I saw the sdk-zephyr/samples/application_development/external_lib/ example but I just got a build error without any explanation of the problem.

I also saw a CMakeLists.txt directive that also did not work.
   target_link_libraries(app your_lib_name)

Can anyone help me on this or suggest what is the correct way to include only the used CMSIS DSP code?
Thanks David




Join to automatically receive all group messages.