BOSCH_SCU.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .text 000000ca 00000000 00000000 00000054 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .debug_aranges 00000020 00000000 00000000 0000011e 2**0 CONTENTS, READONLY, DEBUGGING 2 .debug_pubnames 00000040 00000000 00000000 0000013e 2**0 CONTENTS, READONLY, DEBUGGING 3 .debug_info 00000110 00000000 00000000 0000017e 2**0 CONTENTS, READONLY, DEBUGGING 4 .debug_abbrev 000000e0 00000000 00000000 0000028e 2**0 CONTENTS, READONLY, DEBUGGING 5 .debug_line 0000016a 00000000 00000000 0000036e 2**0 CONTENTS, READONLY, DEBUGGING 6 .debug_frame 00000050 00000000 00000000 000004d8 2**2 CONTENTS, READONLY, DEBUGGING 7 .debug_str 00000088 00000000 00000000 00000528 2**0 CONTENTS, READONLY, DEBUGGING 8 .debug_loc 0000001e 00000000 00000000 000005b0 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 <__vectors>: 0: 0e c0 rjmp .+28 ; 0x1e <__ctors_end> 2: 26 c0 rjmp .+76 ; 0x50 <__bad_interrupt> 4: 25 c0 rjmp .+74 ; 0x50 <__bad_interrupt> 6: 24 c0 rjmp .+72 ; 0x50 <__bad_interrupt> 8: 23 c0 rjmp .+70 ; 0x50 <__bad_interrupt> a: 22 c0 rjmp .+68 ; 0x50 <__bad_interrupt> c: 21 c0 rjmp .+66 ; 0x50 <__bad_interrupt> e: 20 c0 rjmp .+64 ; 0x50 <__bad_interrupt> 10: 1f c0 rjmp .+62 ; 0x50 <__bad_interrupt> 12: 1e c0 rjmp .+60 ; 0x50 <__bad_interrupt> 14: 1d c0 rjmp .+58 ; 0x50 <__bad_interrupt> 16: 1c c0 rjmp .+56 ; 0x50 <__bad_interrupt> 18: 1b c0 rjmp .+54 ; 0x50 <__bad_interrupt> 1a: 1a c0 rjmp .+52 ; 0x50 <__bad_interrupt> 1c: 19 c0 rjmp .+50 ; 0x50 <__bad_interrupt> 0000001e <__ctors_end>: 1e: 11 24 eor r1, r1 20: 1f be out 0x3f, r1 ; 63 22: cf ed ldi r28, 0xDF ; 223 24: cd bf out 0x3d, r28 ; 61 00000026 <__do_copy_data>: 26: 10 e0 ldi r17, 0x00 ; 0 28: a0 e6 ldi r26, 0x60 ; 96 2a: b0 e0 ldi r27, 0x00 ; 0 2c: ea ec ldi r30, 0xCA ; 202 2e: f0 e0 ldi r31, 0x00 ; 0 30: 02 c0 rjmp .+4 ; 0x36 <.do_copy_data_start> 00000032 <.do_copy_data_loop>: 32: 05 90 lpm r0, Z+ 34: 0d 92 st X+, r0 00000036 <.do_copy_data_start>: 36: a0 36 cpi r26, 0x60 ; 96 38: b1 07 cpc r27, r17 3a: d9 f7 brne .-10 ; 0x32 <.do_copy_data_loop> 0000003c <__do_clear_bss>: 3c: 10 e0 ldi r17, 0x00 ; 0 3e: a0 e6 ldi r26, 0x60 ; 96 40: b0 e0 ldi r27, 0x00 ; 0 42: 01 c0 rjmp .+2 ; 0x46 <.do_clear_bss_start> 00000044 <.do_clear_bss_loop>: 44: 1d 92 st X+, r1 00000046 <.do_clear_bss_start>: 46: a0 36 cpi r26, 0x60 ; 96 48: b1 07 cpc r27, r17 4a: e1 f7 brne .-8 ; 0x44 <.do_clear_bss_loop> 4c: 29 d0 rcall .+82 ; 0xa0
4e: 3b c0 rjmp .+118 ; 0xc6 <_exit> 00000050 <__bad_interrupt>: 50: d7 cf rjmp .-82 ; 0x0 <__vectors> 00000052 : Description: Initialise I/O Input: - Output: - ------------------------------------------------------------------------------------------------*/ void initIO (void){ 52: 82 e0 ldi r24, 0x02 ; 2 54: 87 bd out 0x27, r24 ; 39 /* Start PLL */ PLLCSR = (1< PLLCSR |= (1<: Description: Reading value from distance-sensor Input: - Output: - ------------------------------------------------------------------------------------------------*/ unsigned char readSensor (void){ 7e: 36 9a sbi 0x06, 6 ; 6 ADCSRA |= (1< return ADCH; 84: 85 b1 in r24, 0x05 ; 5 } 86: 08 95 ret 00000088 : Description: Set PMW output Input: - Output: - ------------------------------------------------------------------------------------------------*/ void setPWM (unsigned char pwmValue){ 88: 98 2f mov r25, r24 if(pwmValue < 255 && pwmValue > 70) 8a: 87 54 subi r24, 0x47 ; 71 8c: 88 3b cpi r24, 0xB8 ; 184 8e: 10 f4 brcc .+4 ; 0x94 { pwmValue = pwmValue - 70; 90: 96 54 subi r25, 0x46 ; 70 92: 04 c0 rjmp .+8 ; 0x9c OCR1A = pwmValue; } else if(pwmValue <= 70) 94: 97 34 cpi r25, 0x47 ; 71 96: 10 f4 brcc .+4 ; 0x9c { OCR1A = 0; 98: 1e bc out 0x2e, r1 ; 46 9a: 08 95 ret } else { OCR1A = pwmValue; 9c: 9e bd out 0x2e, r25 ; 46 9e: 08 95 ret 000000a0
: } /*================================================================================================ Main ================================================================================================*/ int main (void){ a0: f8 94 cli unsigned char tmp = 0; cli(); // Disable global interrupt initIO(); a2: d7 df rcall .-82 ; 0x52 sei(); // Enable global interrupt a4: 78 94 sei Input: - Output: - ------------------------------------------------------------------------------------------------*/ unsigned char readSensor (void){ ADCSRA |= (1< return ADCH; ac: 95 b1 in r25, 0x05 ; 5 Input: - Output: - ------------------------------------------------------------------------------------------------*/ void setPWM (unsigned char pwmValue){ if(pwmValue < 255 && pwmValue > 70) ae: 89 2f mov r24, r25 b0: 87 54 subi r24, 0x47 ; 71 b2: 88 3b cpi r24, 0xB8 ; 184 b4: 10 f4 brcc .+4 ; 0xba { pwmValue = pwmValue - 70; b6: 96 54 subi r25, 0x46 ; 70 b8: 04 c0 rjmp .+8 ; 0xc2 OCR1A = pwmValue; } else if(pwmValue <= 70) ba: 97 34 cpi r25, 0x47 ; 71 bc: 10 f4 brcc .+4 ; 0xc2 { OCR1A = 0; be: 1e bc out 0x2e, r1 ; 46 c0: f2 cf rjmp .-28 ; 0xa6 } else { OCR1A = pwmValue; c2: 9e bd out 0x2e, r25 ; 46 c4: f0 cf rjmp .-32 ; 0xa6 000000c6 <_exit>: c6: f8 94 cli 000000c8 <__stop_program>: c8: ff cf rjmp .-2 ; 0xc8 <__stop_program>