We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello I tried to compile and run arm_fft_bin_example of the cmsis package but there is a problem. The problem is in the arm_bitreversal2.s file that can't be compiled by keil. Is there any workaround and solution? Thanks.
Hello Here is the modified and working code for cortex-m4:
AREA ||.text||, CODE, READONLY, ALIGN=2 THUMB ;/* ;* @brief In-place bit reversal function. ;* @param[in, out] *pSrc points to the in-place buffer of unknown 32-bit data type. ;* @param[in] bitRevLen bit reversal table length ;* @param[in] *pBitRevTab points to bit reversal table. ;* @return none. ;*/ EXPORT arm_bitreversal_32 EXPORT arm_bitreversal_16 arm_bitreversal_32 PROC ADDS r3,r1,#1 CMP r3,#1 IT LS BXLS lr PUSH {r4-r9} ADDS r1,r2,#2 LSRS r3,r3,#2 arm_bitreversal_32_0 ;/* loop unrolled by 2 */ LDRH r8,[r1,#4] LDRH r9,[r1,#2] LDRH r2,[r1,#0] LDRH r12,[r1,#-2] ADD r8,r0,r8 ADD r9,r0,r9 ADD r2,r0,r2 ADD r12,r0,r12 LDR r7,[r9,#0] LDR r6,[r8,#0] LDR r5,[r2,#0] LDR r4,[r12,#0] STR r6,[r9,#0] STR r7,[r8,#0] STR r5,[r12,#0] STR r4,[r2,#0] LDR r7,[r9,#4] LDR r6,[r8,#4] LDR r5,[r2,#4] LDR r4,[r12,#4] STR r6,[r9,#4] STR r7,[r8,#4] STR r5,[r12,#4] STR r4,[r2,#4] ADDS r1,r1,#8 SUBS r3,r3,#1 BNE arm_bitreversal_32_0 POP {r4-r9} BX lr ENDP arm_bitreversal_16 PROC ADDS r3,r1,#1 CMP r3,#1 IT LS BXLS lr PUSH {r4-r9} ADDS r1,r2,#2 LSRS r3,r3,#2 arm_bitreversal_16_0 ;/* loop unrolled by 2 */ LDRH r8,[r1,#4] LDRH r9,[r1,#2] LDRH r2,[r1,#0] LDRH r12,[r1,#-2] ADD r8,r0,r8,LSR #1 ADD r9,r0,r9,LSR #1 ADD r2,r0,r2,LSR #1 ADD r12,r0,r12,LSR #1 LDR r7,[r9,#0] LDR r6,[r8,#0] LDR r5,[r2,#0] LDR r4,[r12,#0] STR r6,[r9,#0] STR r7,[r8,#0] STR r5,[r12,#0] STR r4,[r2,#0] ADDS r1,r1,#8 SUBS r3,r3,#1 BNE arm_bitreversal_16_0 POP {r4-r9} BX lr ENDP END
by defining the following expression in the options for target->Asm->Misc Controls, problem will be solved.
--cpreproc