This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Why arm CMSIS library have arm_bitreversal2.asm

Hello,

         I am wondering why CMSIS library have arm_bitreversal2.asm file written in assembly code however it could be written in c as others are written. In description of file it says it written to gain for maximum speed of fft but when I use real fft it calls c function of bit reversal then why it is in c when I do real fft.

Parents
  • Hi,

    arm_bitreversal2.asm is in assembly because it is not possible to achieve the same speed results in C  (I hand optimized arm_bitreversal2.S).  The fft functions were a critical goal to optimize.

    In * $Revision:     V.1.4.5,  only arm_rfft_f32.c seems to still be using the c version of bit reversal (arm_bitreversal.c).  This was omitted simply as a matter of focusing optimizations on the fast version of rfft (arm_rfft_fast_f32.c).  The CMSIS library went through a few rounds of optimizations that each targeted different things.

Reply
  • Hi,

    arm_bitreversal2.asm is in assembly because it is not possible to achieve the same speed results in C  (I hand optimized arm_bitreversal2.S).  The fft functions were a critical goal to optimize.

    In * $Revision:     V.1.4.5,  only arm_rfft_f32.c seems to still be using the c version of bit reversal (arm_bitreversal.c).  This was omitted simply as a matter of focusing optimizations on the fast version of rfft (arm_rfft_fast_f32.c).  The CMSIS library went through a few rounds of optimizations that each targeted different things.

Children