main: 080005ec: push {r7, lr} main: 080005ed: push {r7, lr} 33 { 080005ee: add r7, sp, #0 35 init_GPIO(); 080005f0: bl 0x80001d8 47 led_Ax(4,TOGGLE); 080005f4: movs r1, #2 080005f6: movs r0, #4 080005f8: bl 0x8000240 48 delay(500000); 080005fc: ldr r0, [pc, #4] ; (0x8000604 ) 080005fe: bl 0x80005c4 47 led_Ax(4,TOGGLE); 08000602: b.n 0x80005f4 init_GPIO: 080001d8: push {r7} init_GPIO: 080001d9: push {r7} 080001db: sub sp, #12 080001dd: add r7, sp, #0 080001df: ldr r3, [pc, #68] ; (0x8000224 ) 080001e1: str r3, [r7, #4] 080001e3: ldr r3, [r7, #4] 080001e5: movw r2, #8327 ; 0x2087 080001e9: str r2, [r3, #0] 080001eb: mov.w r3, #1207959552 ; 0x48000000 080001ef: str r3, [r7, #4] 080001f1: ldr r3, [r7, #4] 080001f3: ldr r2, [pc, #52] ; (0x8000228 ) 080001f5: str r2, [r3, #0] 110 pointer=(uint32_t *)GPIOA_BSRR; //reset outputs 080001f6: ldr r3, [pc, #52] ; (0x800022c ) 080001f8: str r3, [r7, #4] 111 *pointer=0x1F100000; 080001fa: ldr r3, [r7, #4] 080001fc: ldr r2, [pc, #48] ; (0x8000230 ) 080001fe: str r2, [r3, #0] 113 pointer=(uint32_t *)GPIOB_MODER; //PB3,PB5-PB9=digital inputs 08000200: ldr r3, [pc, #48] ; (0x8000234 ) 08000202: str r3, [r7, #4] 114 *pointer=0x200; //rest=digital input 0x280 08000204: ldr r3, [r7, #4] 08000206: mov.w r2, #512 ; 0x200 0800020a: str r2, [r3, #0] 116 pointer=(uint32_t *)GPIOB_PUPDR; 0800020c: ldr r3, [pc, #40] ; (0x8000238 ) 0800020e: str r3, [r7, #4] 117 *pointer=0x55454; //PB1-3,5-9 pull-ups on 08000210: ldr r3, [r7, #4] 08000212: ldr r2, [pc, #40] ; (0x800023c ) 08000214: str r2, [r3, #0] 118 } 08000216: nop 08000218: adds r7, #12 0800021a: mov sp, r7 0800021c: ldr.w r7, [sp], #4 08000220: bx lr led_Ax: 08000240: push {r7} 08000242: sub sp, #20 08000244: add r7, sp, #0 08000246: mov r3, r0 08000248: mov r2, r1 0800024a: strb r3, [r7, #7] 0800024c: mov r3, r2 0800024e: strb r3, [r7, #6] 124 pointer=(uint32_t *)GPIOA_ODR; 08000250: ldr r3, [pc, #92] ; (0x80002b0 ) 08000252: str r3, [r7, #8] 125 mask=*pointer; 08000254: ldr r3, [r7, #8] 08000256: ldr r3, [r3, #0] 08000258: str r3, [r7, #12] 126 if(state==ON) 0800025a: ldrb r3, [r7, #6] 0800025c: cmp r3, #1 0800025e: bne.n 0x8000270 127 mask=mask|(1< 129 mask=mask& (~(1< 131 mask=mask ^ (1<0;loop--){} 080005cc: ldr r3, [r7, #4] 080005ce: str r3, [r7, #12] 080005d0: b.n 0x80005d8 080005d2: ldr r3, [r7, #12] 080005d4: subs r3, #1 080005d6: str r3, [r7, #12] 080005d8: ldr r3, [r7, #12] 080005da: cmp r3, #0 080005dc: bne.n 0x80005d2 19 } 080005de: nop 080005e0: adds r7, #20 080005e2: mov sp, r7 080005e4: ldr.w r7, [sp], #4 080005e8: bx lr