matlab pdm转pcm_PDM to PCM 代码

18028703418

.syntax unified

.cpu cortex-m4

.fpu fpv4-sp-d16

@;        .eabi_attribute 20, 1

@;        .eabi_attribute 21, 1

@;        .eabi_attribute 23, 3

@;        .eabi_attribute 24, 1

@;        .eabi_attribute 25, 1

@;        .eabi_attribute 26, 2

@;        .eabi_attribute 30, 2

@;        .eabi_attribute 18, 2

.thumb

@; ===========================================================================

@; Segment type:        Externs

@; ===========================================================================

.global __aeabi_fcmpeq

.global __aeabi_fmul

.global __aeabi_f2d

.global __aeabi_i2d

.global __aeabi_ddiv

.global __aeabi_dadd

.global __aeabi_d2uiz

.global __aeabi_dmul

@; ===========================================================================

.section .text.PDM_Filter_Init

.code 16

.weak PDM_Filter_Init

.type PDM_Filter_Init, %function

@; ===========================================================================

PDM_Filter_Init:

PUSH.W        {R3-R11,LR}

@;                LDR        R2, =0xF407A5C2 @test data

@;                LDR        R3, =0x40023000 @CRC BASE

MOV        R5, R0

@;                STR        R2, [R3] @load 0xF407A5C2 into crc data register

@;                LDR        R3, [R3] @get contents of crc data register

@;                LDR        R2, =0xB5E8B5CD @load control word

MOVS        R6, #0

@;                CMP        R3, R2 @compare crc32 and awaited result

@;                BNE        loc_42 @ Checking that it's really CPU, that manufatured by ST.

@;                LDR        R2, =stm32_crc @get contents of

LDR        R7, [R0,#4]                        @LP_HZ

ADD.W        R4, R0,        #0x10

@;                STR        R3, [R2] @save 0xB5E8B5CD into =stm32_crc variable

STR        R6, [R4,#0xC]

STR        R6, [R0,#0x10]

STR        R6, [R4,#8]

STR        R6, [R4,#4]

STR        R6, [R4,#0x18]

STR        R6, [R4,#0x14]

STR        R6, [R4,#0x10]

MOV        R0, R7

MOVS        R1, #0

BL        __aeabi_fcmpeq                @fcmpeq(LP_HZ, 0)

CBZ        R0, loc_44

B        loc_90

@; ---------------------------------------------------------------------------

@;

@;loc_42:

@;                B        loc_42

@; ---------------------------------------------------------------------------

loc_44:

MOV        R0, R7

MOV.W        R1, #0x43800000

BL        __aeabi_fmul

BL        __aeabi_f2d

MOV        R8, R0

MOV        R0, R7

MOV        R9, R1

BL        __aeabi_f2d

MOV        R6, R0

LDRH        R0, [R5]

MOV        R7, R1

BL        __aeabi_i2d

ADR        R3, dword_F8

LDRD.W        R2, R3,        [R3]

BL        __aeabi_ddiv

MOV        R2, R0

MOV        R3, R1

MOV        R0, R6

MOV        R1, R7

BL        __aeabi_dadd

MOV        R2, R0

MOV        R3, R1

MOV        R0, R8

MOV        R1, R9

BL        __aeabi_ddiv

BL        __aeabi_d2uiz

STRH        R0, [R4,#0x1C]

B        loc_92

@; ---------------------------------------------------------------------------

loc_90:

STRH        R6, [R4,#0x1C]

loc_92:

LDR        R7, [R5,#8]

MOVS        R1, #0

MOV        R0, R7

BL        __aeabi_fcmpeq

CBNZ        R0, loc_E4

LDRH        R6, [R5]

LSLS        R0, R6,        #8

BL        __aeabi_i2d

MOV        R10, R0

MOV        R0, R7

MOV        R11, R1

BL        __aeabi_f2d

ADR        R3, dword_F8

LDRD.W        R2, R3,        [R3]

BL        __aeabi_dmul

MOV        R8, R0

MOV        R0, R6

MOV        R9, R1

BL        __aeabi_i2d

MOV        R2, R0

MOV        R3, R1

MOV        R0, R8

MOV        R1, R9

BL        __aeabi_dadd

MOV        R2, R0

MOV        R3, R1

MOV        R0, R10

MOV        R1, R11

BL        __aeabi_ddiv

BL        __aeabi_d2uiz

STRH        R0, [R4,#0x1E]

B        loc_E8

@; ---------------------------------------------------------------------------

loc_E4:

MOVS        R3, #0

STRH        R3, [R4,#0x1E]

loc_E8:

LDRH        R2, [R5]

MOV.W     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值