; generated by ARM C/C++ Compiler, 4.1 [Build 894]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\STM324xG_EVAL\stm32f4xx_crc.o --asm_dir=.\STM324xG_EVAL\ --list_dir=.\STM324xG_EVAL\ --depend=.\STM324xG_EVAL\stm32f4xx_crc.d --cpu=Cortex-M4.fp --apcs=interwork -O0 -Otime -I..\ -I..\..\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include -I..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\..\..\Utilities\STM32_EVAL\Common -I..\..\..\Utilities\STM32_EVAL\STM3240_41_G_EVAL -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -IC:\Keil\ARM\Inc\ST\STM32F4xx -D__MICROLIB -DUSE_STM324xG_EVAL -DSTM32F4XX -DUSE_STDPERIPH_DRIVER --omf_browse=.\STM324xG_EVAL\stm32f4xx_crc.crf ..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c]
                          THUMB

                          AREA ||i.CRC_CalcBlockCRC||, CODE, READONLY, ALIGN=2

                  CRC_CalcBlockCRC PROC
;;;73       */
;;;74     uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
000000  b510              PUSH     {r4,lr}
;;;75     {
000002  4602              MOV      r2,r0
000004  460b              MOV      r3,r1
;;;76       uint32_t index = 0;
000006  2100              MOVS     r1,#0
;;;77       
;;;78       for(index = 0; index < BufferLength; index++)
000008  bf00              NOP      
00000a  e004              B        |L1.22|
                  |L1.12|
;;;79       {
;;;80         CRC->DR = pBuffer[index];
00000c  f8520021          LDR      r0,[r2,r1,LSL #2]
000010  4c03              LDR      r4,|L1.32|
000012  6020              STR      r0,[r4,#0]
000014  1c49              ADDS     r1,r1,#1              ;78
                  |L1.22|
000016  4299              CMP      r1,r3                 ;78
000018  d3f8              BCC      |L1.12|
;;;81       }
;;;82       return (CRC->DR);
00001a  4801              LDR      r0,|L1.32|
00001c  6800              LDR      r0,[r0,#0]
;;;83     }
00001e  bd10              POP      {r4,pc}
;;;84     
                          ENDP

                  |L1.32|
                          DCD      0x40023000

                          AREA ||i.CRC_CalcCRC||, CODE, READONLY, ALIGN=2

                  CRC_CalcCRC PROC
;;;60       */
;;;61     uint32_t CRC_CalcCRC(uint32_t Data)
000000  4601              MOV      r1,r0
;;;62     {
;;;63       CRC->DR = Data;
000002  4802              LDR      r0,|L2.12|
000004  6001              STR      r1,[r0,#0]
;;;64       
;;;65       return (CRC->DR);
000006  6800              LDR      r0,[r0,#0]
;;;66     }
000008  4770              BX       lr
;;;67     
                          ENDP

00000a  0000              DCW      0x0000
                  |L2.12|
                          DCD      0x40023000

                          AREA ||i.CRC_GetCRC||, CODE, READONLY, ALIGN=2

                  CRC_GetCRC PROC
;;;89       */
;;;90     uint32_t CRC_GetCRC(void)
000000  4801              LDR      r0,|L3.8|
;;;91     {
;;;92       return (CRC->DR);
000002  6800              LDR      r0,[r0,#0]
;;;93     }
000004  4770              BX       lr
;;;94     
                          ENDP

000006  0000              DCW      0x0000
                  |L3.8|
                          DCD      0x40023000

                          AREA ||i.CRC_GetIDRegister||, CODE, READONLY, ALIGN=2

                  CRC_GetIDRegister PROC
;;;109      */
;;;110    uint8_t CRC_GetIDRegister(void)
000000  4801              LDR      r0,|L4.8|
;;;111    {
;;;112      return (CRC->IDR);
000002  7900              LDRB     r0,[r0,#4]
;;;113    }
000004  4770              BX       lr
;;;114    
                          ENDP

000006  0000              DCW      0x0000
                  |L4.8|
                          DCD      0x40023000

                          AREA ||i.CRC_ResetDR||, CODE, READONLY, ALIGN=2

                  CRC_ResetDR PROC
;;;49       */
;;;50     void CRC_ResetDR(void)
000000  2001              MOVS     r0,#1
;;;51     {
;;;52       /* Reset CRC generator */
;;;53       CRC->CR = CRC_CR_RESET;
000002  4901              LDR      r1,|L5.8|
000004  6088              STR      r0,[r1,#8]
;;;54     }
000006  4770              BX       lr
;;;55     
                          ENDP

                  |L5.8|
                          DCD      0x40023000

                          AREA ||i.CRC_SetIDRegister||, CODE, READONLY, ALIGN=2

                  CRC_SetIDRegister PROC
;;;99       */
;;;100    void CRC_SetIDRegister(uint8_t IDValue)
000000  4901              LDR      r1,|L6.8|
;;;101    {
;;;102      CRC->IDR = IDValue;
000002  7108              STRB     r0,[r1,#4]
;;;103    }
000004  4770              BX       lr
;;;104    
                          ENDP

000006  0000              DCW      0x0000
                  |L6.8|
                          DCD      0x40023000

;*** Start embedded assembler ***

#line 1 "..\\..\\..\\Libraries\\STM32F4xx_StdPeriph_Driver\\src\\stm32f4xx_crc.c"
	AREA ||.rev16_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___15_stm32f4xx_crc_c_eea4c7d3____REV16|
#line 114 "C:\\Keil\\ARM\\CMSIS\\Include\\core_cmInstr.h"
|__asm___15_stm32f4xx_crc_c_eea4c7d3____REV16| PROC
#line 115

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE, READONLY
	THUMB
	EXPORT |__asm___15_stm32f4xx_crc_c_eea4c7d3____REVSH|
#line 128
|__asm___15_stm32f4xx_crc_c_eea4c7d3____REVSH| PROC
#line 129

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
