; generated by Component: ARM Compiler 5.05 update 1 (build 106) Tool: ArmCC [4d0efa]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\flash\obj\bsp_channel_realy.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_channel_realy.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Device\ST\STM32F10x\Include -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Libraries\STM32_USB-FS-Device_Driver\inc -I..\..\Libraries\CMSIS\Include -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\app\inc -IC:\Keil_v5\ARM\RV31\INC -IC:\Keil_v5\ARM\CMSIS\Include -IC:\Keil_v5\ARM\Inc\ST\STM32F10x -D__MICROLIB -D__UVISION_VERSION=514 -DUSE_STDPERIPH_DRIVER -DSTM32F10X_HD --omf_browse=.\flash\obj\bsp_channel_realy.crf ..\..\User\bsp\src\bsp_channel_realy.c]
                          THUMB

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

                  bsp_InitChannelRelay PROC
;;;39     
;;;40     void bsp_InitChannelRelay(void)
000000  b508              PUSH     {r3,lr}
;;;41     {
;;;42       GPIO_InitTypeDef GPIO_InitStructure;
;;;43     
;;;44     	// 打开GPIO时钟
;;;45     	RCC_APB2PeriphClockCmd(RCC_ALL_RELAY, ENABLE);
000002  2101              MOVS     r1,#1
000004  2048              MOVS     r0,#0x48
000006  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;46     
;;;47     	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
00000a  2003              MOVS     r0,#3
00000c  f88d0002          STRB     r0,[sp,#2]
;;;48     	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	/* 推挽输出模式 */
000010  2010              MOVS     r0,#0x10
000012  f88d0003          STRB     r0,[sp,#3]
;;;49       
;;;50     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY1;
000016  2008              MOVS     r0,#8
000018  f8ad0000          STRH     r0,[sp,#0]
;;;51     	GPIO_Init(GPIO_PORT_RELAY1, &GPIO_InitStructure);
00001c  4669              MOV      r1,sp
00001e  4814              LDR      r0,|L1.112|
000020  f7fffffe          BL       GPIO_Init
;;;52     
;;;53     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY2;
000024  f44f7080          MOV      r0,#0x100
000028  f8ad0000          STRH     r0,[sp,#0]
;;;54     	GPIO_Init(GPIO_PORT_RELAY2, &GPIO_InitStructure);
00002c  4669              MOV      r1,sp
00002e  4811              LDR      r0,|L1.116|
000030  f7fffffe          BL       GPIO_Init
;;;55     
;;;56     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY3;
000034  2004              MOVS     r0,#4
000036  f8ad0000          STRH     r0,[sp,#0]
;;;57     	GPIO_Init(GPIO_PORT_RELAY3, &GPIO_InitStructure);
00003a  4669              MOV      r1,sp
00003c  480c              LDR      r0,|L1.112|
00003e  f7fffffe          BL       GPIO_Init
;;;58     
;;;59     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY4;
000042  f44f7000          MOV      r0,#0x200
000046  f8ad0000          STRH     r0,[sp,#0]
;;;60     	GPIO_Init(GPIO_PORT_RELAY4, &GPIO_InitStructure);
00004a  4669              MOV      r1,sp
00004c  4809              LDR      r0,|L1.116|
00004e  f7fffffe          BL       GPIO_Init
;;;61     
;;;62     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY5;
000052  2002              MOVS     r0,#2
000054  f8ad0000          STRH     r0,[sp,#0]
;;;63     	GPIO_Init(GPIO_PORT_RELAY5, &GPIO_InitStructure);
000058  4669              MOV      r1,sp
00005a  4805              LDR      r0,|L1.112|
00005c  f7fffffe          BL       GPIO_Init
;;;64     
;;;65     	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_RELAY6;
000060  2001              MOVS     r0,#1
000062  f8ad0000          STRH     r0,[sp,#0]
;;;66     	GPIO_Init(GPIO_PORT_RELAY6, &GPIO_InitStructure);
000066  4669              MOV      r1,sp
000068  4801              LDR      r0,|L1.112|
00006a  f7fffffe          BL       GPIO_Init
;;;67     
;;;68     }
00006e  bd08              POP      {r3,pc}
;;;69     
                          ENDP

                  |L1.112|
                          DCD      0x40011800
                  |L1.116|
                          DCD      0x40010c00

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

                  bsp_RealyAllOff PROC
;;;69     
;;;70     void bsp_RealyAllOff(void)
000000  2008              MOVS     r0,#8
;;;71     {
;;;72       GPIO_PORT_RELAY1->BRR = GPIO_PIN_RELAY1;
000002  4908              LDR      r1,|L2.36|
000004  6008              STR      r0,[r1,#0]
;;;73       GPIO_PORT_RELAY2->BRR = GPIO_PIN_RELAY2;
000006  0140              LSLS     r0,r0,#5
000008  4907              LDR      r1,|L2.40|
00000a  6008              STR      r0,[r1,#0]
;;;74       GPIO_PORT_RELAY3->BRR = GPIO_PIN_RELAY3;
00000c  2004              MOVS     r0,#4
00000e  4905              LDR      r1,|L2.36|
000010  6008              STR      r0,[r1,#0]
;;;75       GPIO_PORT_RELAY4->BRR = GPIO_PIN_RELAY4;
000012  01c0              LSLS     r0,r0,#7
000014  4904              LDR      r1,|L2.40|
000016  6008              STR      r0,[r1,#0]
;;;76       GPIO_PORT_RELAY5->BRR = GPIO_PIN_RELAY5;
000018  2002              MOVS     r0,#2
00001a  4902              LDR      r1,|L2.36|
00001c  6008              STR      r0,[r1,#0]
;;;77       GPIO_PORT_RELAY6->BRR = GPIO_PIN_RELAY6;
00001e  2001              MOVS     r0,#1
000020  6008              STR      r0,[r1,#0]
;;;78     }
000022  4770              BX       lr
;;;79     
                          ENDP

                  |L2.36|
                          DCD      0x40011814
                  |L2.40|
                          DCD      0x40010c14

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

                  bsp_RelayOn PROC
;;;85     //------------------------------------------------------------------------------
;;;86     void bsp_RelayOn(uint8_t _ch)
000000  2108              MOVS     r1,#8
;;;87     {  
;;;88       GPIO_PORT_RELAY1->BRR = GPIO_PIN_RELAY1;
000002  4a1d              LDR      r2,|L3.120|
000004  6011              STR      r1,[r2,#0]
;;;89       GPIO_PORT_RELAY2->BRR = GPIO_PIN_RELAY2;
000006  0149              LSLS     r1,r1,#5
000008  4a1c              LDR      r2,|L3.124|
00000a  6011              STR      r1,[r2,#0]
;;;90       GPIO_PORT_RELAY3->BRR = GPIO_PIN_RELAY3;
00000c  2104              MOVS     r1,#4
00000e  4a1a              LDR      r2,|L3.120|
000010  6011              STR      r1,[r2,#0]
;;;91       GPIO_PORT_RELAY4->BRR = GPIO_PIN_RELAY4;
000012  01c9              LSLS     r1,r1,#7
000014  4a19              LDR      r2,|L3.124|
000016  6011              STR      r1,[r2,#0]
;;;92       GPIO_PORT_RELAY5->BRR = GPIO_PIN_RELAY5;
000018  2102              MOVS     r1,#2
00001a  4a17              LDR      r2,|L3.120|
00001c  6011              STR      r1,[r2,#0]
;;;93       GPIO_PORT_RELAY6->BRR = GPIO_PIN_RELAY6;
00001e  2101              MOVS     r1,#1
000020  6011              STR      r1,[r2,#0]
;;;94       
;;;95       switch(_ch)
000022  2807              CMP      r0,#7
000024  d225              BCS      |L3.114|
000026  e8dff000          TBB      [pc,r0]
00002a  2404              DCB      0x24,0x04
00002c  090f141a          DCB      0x09,0x0f,0x14,0x1a
000030  1f00              DCB      0x1f,0x00
;;;96       {
;;;97         case 1: GPIO_PORT_RELAY1->BSRR = GPIO_PIN_RELAY1; break;
000032  2108              MOVS     r1,#8
000034  4a10              LDR      r2,|L3.120|
000036  1f12              SUBS     r2,r2,#4
000038  6011              STR      r1,[r2,#0]
00003a  e01b              B        |L3.116|
;;;98         case 2: GPIO_PORT_RELAY2->BSRR = GPIO_PIN_RELAY2; break;
00003c  f44f7180          MOV      r1,#0x100
000040  4a0e              LDR      r2,|L3.124|
000042  1f12              SUBS     r2,r2,#4
000044  6011              STR      r1,[r2,#0]
000046  e015              B        |L3.116|
;;;99         case 3: GPIO_PORT_RELAY3->BSRR = GPIO_PIN_RELAY3; break;
000048  2104              MOVS     r1,#4
00004a  4a0b              LDR      r2,|L3.120|
00004c  1f12              SUBS     r2,r2,#4
00004e  6011              STR      r1,[r2,#0]
000050  e010              B        |L3.116|
;;;100        case 4: GPIO_PORT_RELAY4->BSRR = GPIO_PIN_RELAY4; break;
000052  f44f7100          MOV      r1,#0x200
000056  4a09              LDR      r2,|L3.124|
000058  1f12              SUBS     r2,r2,#4
00005a  6011              STR      r1,[r2,#0]
00005c  e00a              B        |L3.116|
;;;101        case 5: GPIO_PORT_RELAY5->BSRR = GPIO_PIN_RELAY5; break;
00005e  2102              MOVS     r1,#2
000060  4a05              LDR      r2,|L3.120|
000062  1f12              SUBS     r2,r2,#4
000064  6011              STR      r1,[r2,#0]
000066  e005              B        |L3.116|
;;;102        case 6: GPIO_PORT_RELAY6->BSRR = GPIO_PIN_RELAY6; break;
000068  2101              MOVS     r1,#1
00006a  4a03              LDR      r2,|L3.120|
00006c  1f12              SUBS     r2,r2,#4
00006e  6011              STR      r1,[r2,#0]
000070  e000              B        |L3.116|
                  |L3.114|
;;;103        default: break;
000072  bf00              NOP      
                  |L3.116|
000074  bf00              NOP                            ;97
;;;104      }
;;;105    }
000076  4770              BX       lr
;;;106    
                          ENDP

                  |L3.120|
                          DCD      0x40011814
                  |L3.124|
                          DCD      0x40010c14

;*** Start embedded assembler ***

#line 1 "..\\..\\User\\bsp\\src\\bsp_channel_realy.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___19_bsp_channel_realy_c_4e9aa111____REV16|
#line 114 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|__asm___19_bsp_channel_realy_c_4e9aa111____REV16| PROC
#line 115

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
