DSP instructions for Mesh - CMSIS DSP library

Anyone have any insights into the specifics of the DSP instructions that are mentioned in the specs for the Particle Mesh devices?

Will this mean direct support of e.g. the CMSIS DSP math library that seems widely used on the M4 processors?

All the best,
Rasmus

I'll say maybe. From the nRF52840 datasheet:

The ARM® Cortex®-M4 processor with floating-point unit (FPU) has a 32-bit instruction set (Thumb®-2 technology) that implements a superset of 16 and 32-bit instructions to maximize code density and performance.
This processor implements several features that enable energy-efficient arithmetic and high-performance signal processing, including:
• Digital signal processing (DSP) instructions
• Single-cycle multiply and accumulate (MAC) instructions
• Hardware divide
• 8- and 16-bit single instruction multiple data (SIMD) instructions
• Single-precision floating-point unit (FPU)
The ARM® Cortex® Microcontroller Software Interface Standard (CMSIS) hardware abstraction layer for the ARM®Cortex® processor series is implemented and available for the M4 CPU.

That part is good, however the caveat is that you can't currently easily export nRF52 HAL and soft devices from the system firmware into user firmware space. You most likely would be able to do so using a monolithic build (system firmware and user firmware in one combined space) and a lightly modified system firmware.

But it will be open source (soon) so it certainly is theoretically possible.

4 Likes

That makes sense, thank you for your answer!

I will myself use some of the higher level libraries for fft analysis instead. In case others stumble upon this thread, I just want to point out that some people have discussed similar topics for the photon, e.g. Trying to use CMSIS DSP, and at least one person seems to have it working using Rick’s instructions with a monolithic build: Integrate CMSIS library into Firmware