Rev 182 | Blame | Last modification | View Log | Download
GAS LISTING /tmp/cc5q3bJ9.s page 11 .file "Utility.c"2 .arch atmega83 __SREG__ = 0x3f4 __SP_H__ = 0x3e5 __SP_L__ = 0x3d6 __tmp_reg__ = 07 __zero_reg__ = 18 .global __do_copy_data9 .global __do_clear_bss10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext011 .stabs "Utility.c",100,0,2,.Ltext012 .text13 .Ltext0:14 .stabs "gcc2_compiled.",60,0,0,015 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,016 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,017 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,018 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,019 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,020 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,022 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,023 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,024 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,025 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,026 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,027 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,028 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,029 .stabs "void:t(0,15)=(0,15)",128,0,0,030 .stabs "CommonDefs.h",130,0,0,031 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,032 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,033 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,034 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,035 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,036 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,037 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,038 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,039 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,040 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,041 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,042 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,043 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,044 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,045 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,046 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,047 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,048 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,049 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,050 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,051 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,052 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,053 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,054 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,055 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,056 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,057 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0GAS LISTING /tmp/cc5q3bJ9.s page 258 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,059 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,060 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,061 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,062 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,063 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,064 .stabn 162,0,0,065 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,066 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,067 .stabn 162,0,0,068 .stabn 162,0,0,069 .stabn 162,0,0,070 .stabn 162,0,0,071 .stabs "bool_t:t(1,1)=(0,11)",128,0,56,072 .stabn 162,0,0,073 .stabs "Utility_delay:F(0,15)",36,0,65,Utility_delay74 .stabs "numMs:P(0,9)",64,0,64,1875 .global Utility_delay76 .type Utility_delay, @function77 Utility_delay:78 .stabd 46,0,01:Utility.c **** /*2:Utility.c **** Copyright (C) 2004 John Orlando3:Utility.c ****4:Utility.c **** AVRcam: a small real-time image processing engine.5:Utility.c ****6:Utility.c **** This program is free software; you can redistribute it and/or7:Utility.c **** modify it under the terms of the GNU General Public8:Utility.c **** License as published by the Free Software Foundation; either9:Utility.c **** version 2 of the License, or (at your option) any later version.10:Utility.c ****11:Utility.c **** This program is distributed in the hope that it will be useful,12:Utility.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of13:Utility.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU14:Utility.c **** General Public License for more details.15:Utility.c ****16:Utility.c **** You should have received a copy of the GNU General Public17:Utility.c **** License along with this program; if not, write to the Free Software18:Utility.c **** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA19:Utility.c ****20:Utility.c **** For more information on the AVRcam, please contact:21:Utility.c ****22:Utility.c **** john@jrobot.net23:Utility.c ****24:Utility.c **** or go to www.jrobot.net for more details regarding the system.25:Utility.c **** */26:Utility.c **** /***********************************************************27:Utility.c **** Module Name: Utility.c28:Utility.c **** Module Date: 04/13/200429:Utility.c **** Module Auth: John Orlando30:Utility.c ****31:Utility.c **** Description: This module provides a basic set of32:Utility.c **** general purpose utilities that can be used by any33:Utility.c **** module needing them.34:Utility.c ****35:Utility.c **** Revision History:36:Utility.c **** Date Rel Ver. NotesGAS LISTING /tmp/cc5q3bJ9.s page 337:Utility.c **** 4/10/2004 0.1 Module created38:Utility.c **** 6/30/2004 1.0 Initial release for Circuit Cellar39:Utility.c **** contest.40:Utility.c **** ***********************************************************/41:Utility.c ****42:Utility.c **** /* Includes */43:Utility.c **** #include "CommonDefs.h"44:Utility.c ****45:Utility.c **** /* Local Variables */46:Utility.c ****47:Utility.c **** /* Local Structures and Typedefs */48:Utility.c ****49:Utility.c **** /* Extern Variables */50:Utility.c ****51:Utility.c **** /* Definitions */52:Utility.c ****53:Utility.c **** /***********************************************************54:Utility.c **** Function Name: Utility_delay55:Utility.c **** Function Description: This function provides a busy-wait56:Utility.c **** delay for a specified number of milliseconds.57:Utility.c **** Inputs: numMs - the number of milliseconds to delay58:Utility.c **** Outputs: none59:Utility.c **** NOTES: The delay_loop_1 and delay_loop_2 functions found60:Utility.c **** in avr/delay.h provide accurate 3 and 4 cycle delay loops61:Utility.c **** if needed...this isn't really a millisecond, so DON'T62:Utility.c **** depend on it for exact timing...63:Utility.c **** ***********************************************************/64:Utility.c **** void Utility_delay(unsigned short numMs)65:Utility.c **** {79 .stabn 68,0,65,.LM0-Utility_delay80 .LM0:81 /* prologue: frame size=4 */82 0000 CF93 push r2883 0002 DF93 push r2984 0004 CDB7 in r28,__SP_L__85 0006 DEB7 in r29,__SP_H__86 0008 2497 sbiw r28,487 000a 0FB6 in __tmp_reg__,__SREG__88 000c F894 cli89 000e DEBF out __SP_H__,r2990 0010 0FBE out __SREG__,__tmp_reg__91 0012 CDBF out __SP_L__,r2892 /* prologue end (size=10) */93 0014 9C01 movw r18,r2466:Utility.c **** volatile unsigned short i=0,j=0;94 .stabn 68,0,66,.LM1-Utility_delay95 .LM1:96 0016 1A82 std Y+2,__zero_reg__97 0018 1982 std Y+1,__zero_reg__98 001a 1C82 std Y+4,__zero_reg__99 001c 1B82 std Y+3,__zero_reg__67:Utility.c **** #ifndef SIMULATION68:Utility.c **** for (i=0; i<numMs; i++)100 .stabn 68,0,68,.LM2-Utility_delay101 .LM2:102 001e 1A82 std Y+2,__zero_reg__103 0020 1982 std Y+1,__zero_reg__GAS LISTING /tmp/cc5q3bJ9.s page 4104 0022 8981 ldd r24,Y+1105 0024 9A81 ldd r25,Y+2106 0026 8217 cp r24,r18107 0028 9307 cpc r25,r19108 002a E0F4 brsh .L6109 .L7:69:Utility.c **** {70:Utility.c **** for (j=0; j<1000; j++)110 .stabn 68,0,70,.LM3-Utility_delay111 .LM3:112 002c 1C82 std Y+4,__zero_reg__113 002e 1B82 std Y+3,__zero_reg__114 0030 8B81 ldd r24,Y+3115 0032 9C81 ldd r25,Y+4116 0034 885E subi r24,lo8(1000)117 0036 9340 sbci r25,hi8(1000)118 0038 58F4 brsh .L4119 .L8:71:Utility.c **** {72:Utility.c **** asm volatile("nop"::);120 .stabn 68,0,72,.LM4-Utility_delay121 .LM4:122 /* #APP */123 003a 0000 nop124 .stabn 68,0,70,.LM5-Utility_delay125 .LM5:126 /* #NOAPP */127 003c 8B81 ldd r24,Y+3128 003e 9C81 ldd r25,Y+4129 0040 0196 adiw r24,1130 0042 9C83 std Y+4,r25131 0044 8B83 std Y+3,r24132 0046 8B81 ldd r24,Y+3133 0048 9C81 ldd r25,Y+4134 004a 885E subi r24,lo8(1000)135 004c 9340 sbci r25,hi8(1000)136 004e A8F3 brlo .L8137 .L4:138 .stabn 68,0,68,.LM6-Utility_delay139 .LM6:140 0050 8981 ldd r24,Y+1141 0052 9A81 ldd r25,Y+2142 0054 0196 adiw r24,1143 0056 9A83 std Y+2,r25144 0058 8983 std Y+1,r24145 005a 8981 ldd r24,Y+1146 005c 9A81 ldd r25,Y+2147 005e 8217 cp r24,r18148 0060 9307 cpc r25,r19149 0062 20F3 brlo .L7150 .L6:151 /* epilogue: frame size=4 */152 0064 2496 adiw r28,4153 0066 0FB6 in __tmp_reg__,__SREG__154 0068 F894 cli155 006a DEBF out __SP_H__,r29156 006c 0FBE out __SREG__,__tmp_reg__GAS LISTING /tmp/cc5q3bJ9.s page 5157 006e CDBF out __SP_L__,r28158 0070 DF91 pop r29159 0072 CF91 pop r28160 0074 0895 ret161 /* epilogue end (size=9) */162 /* function Utility_delay size 62 (43) */163 .size Utility_delay, .-Utility_delay164 .stabs "i:(0,16)=B(0,9)",128,0,66,1165 .stabs "j:(0,16)",128,0,66,3166 .stabn 192,0,0,Utility_delay-Utility_delay167 .stabn 224,0,0,.Lscope0-Utility_delay168 .Lscope0:169 .stabs "",36,0,0,.Lscope0-Utility_delay170 .stabd 78,0,0171 .stabs "",100,0,0,.Letext0172 .Letext0:173 /* File "Utility.c": code 62 = 0x003e ( 43), prologues 10, epilogues 9 */GAS LISTING /tmp/cc5q3bJ9.s page 6DEFINED SYMBOLS*ABS*:00000000 Utility.c/tmp/cc5q3bJ9.s:3 *ABS*:0000003f __SREG__/tmp/cc5q3bJ9.s:4 *ABS*:0000003e __SP_H__/tmp/cc5q3bJ9.s:5 *ABS*:0000003d __SP_L__/tmp/cc5q3bJ9.s:6 *ABS*:00000000 __tmp_reg__/tmp/cc5q3bJ9.s:7 *ABS*:00000001 __zero_reg__/tmp/cc5q3bJ9.s:77 .text:00000000 Utility_delayUNDEFINED SYMBOLS__do_copy_data__do_clear_bss