⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lss

📁 ist a file to programm. please laberkopf contact me not
💻 LSS
📖 第 1 页 / 共 5 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00001506  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000008e  00800060  00001506  0000159a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000a  008000ee  008000ee  00001628  2**0
                  ALLOC
  3 .stab         0000036c  00000000  00000000  00001628  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000084  00000000  00000000  00001994  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000040  00000000  00000000  00001a18  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 00000089  00000000  00000000  00001a58  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000354  00000000  00000000  00001ae1  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 000001b9  00000000  00000000  00001e35  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   00000405  00000000  00000000  00001fee  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  00000090  00000000  00000000  000023f3  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    0000014b  00000000  00000000  00002483  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    00000226  00000000  00000000  000025ce  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
       0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
       4:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
       8:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
       c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      10:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      14:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      18:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      1c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      20:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      24:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      28:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      2c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      30:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      34:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      38:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      3c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      40:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      44:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      48:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      4c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
      50:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>

00000054 <__ctors_end>:
      54:	11 24       	eor	r1, r1
      56:	1f be       	out	0x3f, r1	; 63
      58:	cf e5       	ldi	r28, 0x5F	; 95
      5a:	d8 e0       	ldi	r29, 0x08	; 8
      5c:	de bf       	out	0x3e, r29	; 62
      5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
      60:	10 e0       	ldi	r17, 0x00	; 0
      62:	a0 e6       	ldi	r26, 0x60	; 96
      64:	b0 e0       	ldi	r27, 0x00	; 0
      66:	e6 e0       	ldi	r30, 0x06	; 6
      68:	f5 e1       	ldi	r31, 0x15	; 21
      6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
      6c:	05 90       	lpm	r0, Z+
      6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
      70:	ae 3e       	cpi	r26, 0xEE	; 238
      72:	b1 07       	cpc	r27, r17
      74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
      76:	10 e0       	ldi	r17, 0x00	; 0
      78:	ae ee       	ldi	r26, 0xEE	; 238
      7a:	b0 e0       	ldi	r27, 0x00	; 0
      7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
      7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
      80:	a8 3f       	cpi	r26, 0xF8	; 248
      82:	b1 07       	cpc	r27, r17
      84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
      86:	0c 94 47 00 	jmp	0x8e	; 0x8e <main>

0000008a <__bad_interrupt>:
      8a:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

0000008e <main>:
#include <main.h>

//############################################################################
//Hauptprogramm
int main (void){
      8e:	0e 94 69 00 	call	0xd2	; 0xd2 <Handy_Init>
//############################################################################
	//Initzialisierung der unter Routinen
	Handy_Init();

	Send_SMS("49171666999","So einfach geht das!");
      92:	60 e6       	ldi	r22, 0x60	; 96
      94:	70 e0       	ldi	r23, 0x00	; 0
      96:	85 e7       	ldi	r24, 0x75	; 117
      98:	90 e0       	ldi	r25, 0x00	; 0
      9a:	0e 94 74 00 	call	0xe8	; 0xe8 <Send_SMS>
      9e:	ff cf       	rjmp	.-2      	; 0x9e <main+0x10>

000000a0 <uart_putchar>:
#include <handy.h>

//############################################################################
//Routine f黵 die Serielle Ausgabe
int uart_putchar (char c){
      a0:	1f 93       	push	r17
      a2:	18 2f       	mov	r17, r24
//############################################################################
	if (c == '\n')
      a4:	8a 30       	cpi	r24, 0x0A	; 10
      a6:	19 f4       	brne	.+6      	; 0xae <uart_putchar+0xe>
		uart_putchar('\r');
      a8:	8d e0       	ldi	r24, 0x0D	; 13
      aa:	0e 94 50 00 	call	0xa0	; 0xa0 <uart_putchar>
	//Warten solange bis Zeichen gesendet wurde
	while(!(USR & (1<<UDRE)));
      ae:	5d 9b       	sbis	0x0b, 5	; 11
      b0:	fe cf       	rjmp	.-4      	; 0xae <uart_putchar+0xe>
	//Ausgabe des Zeichens
	UDR = c;
      b2:	1c b9       	out	0x0c, r17	; 12
	return (0);
};
      b4:	80 e0       	ldi	r24, 0x00	; 0
      b6:	90 e0       	ldi	r25, 0x00	; 0
      b8:	1f 91       	pop	r17
      ba:	08 95       	ret

000000bc <uart_getchar>:
//############################################################################
//Routine f黵 die Serielle Ausgabe
int uart_getchar (void){
      bc:	5f 9b       	sbis	0x0b, 7	; 11
      be:	fe cf       	rjmp	.-4      	; 0xbc <uart_getchar>
//############################################################################
	while(!(USR & (1<<RXC)));
	return(UDR);
      c0:	8c b1       	in	r24, 0x0c	; 12
};
      c2:	99 27       	eor	r25, r25
      c4:	08 95       	ret

000000c6 <uart_clear>:

//############################################################################
//Routine f黵 die Serielle Ausgabe
void uart_clear (void){
      c6:	90 e0       	ldi	r25, 0x00	; 0
//############################################################################
	unsigned char a;
	for (char c=0;c<10;c++){	
		a = UDR;
      c8:	8c b1       	in	r24, 0x0c	; 12
      ca:	9f 5f       	subi	r25, 0xFF	; 255
      cc:	9a 30       	cpi	r25, 0x0A	; 10
      ce:	e1 f7       	brne	.-8      	; 0xc8 <uart_clear+0x2>
      d0:	08 95       	ret

000000d2 <Handy_Init>:
	}
};

//############################################################################
//INstallation der Seriellen Schnittstelle
void Handy_Init (void){
      d2:	88 e1       	ldi	r24, 0x18	; 24
      d4:	8a b9       	out	0x0a, r24	; 10
//############################################################################
	//Enable TXEN im Register UCR TX-Data Enable
	UCR=(1 << TXEN | 1<<RXEN);
	//Teiler wird gesetzt 
	UBRR=(SYSCLK / (BAUD_RATE * 16L) - 1);
      d6:	8d e4       	ldi	r24, 0x4D	; 77
      d8:	89 b9       	out	0x09, r24	; 9
	
	//鰂fnet einen Kanal f黵 printf (STDOUT)
	fdevopen (uart_putchar, uart_getchar);
      da:	6e e5       	ldi	r22, 0x5E	; 94
      dc:	70 e0       	ldi	r23, 0x00	; 0
      de:	80 e5       	ldi	r24, 0x50	; 80
      e0:	90 e0       	ldi	r25, 0x00	; 0
      e2:	0e 94 fc 01 	call	0x3f8	; 0x3f8 <fdevopen>
      e6:	08 95       	ret

000000e8 <Send_SMS>:
};
//############################################################################
void Handy_Time (	unsigned char *year,unsigned char *month,
					unsigned char *day,unsigned char *hour,
					unsigned char *minute,unsigned char *secound){
//############################################################################
	unsigned char tmp[30];
	unsigned int var[5];
	uart_clear();
	printf("at+cclk?\r\n");
	gets(tmp);
	scanf("+CCLK: \"%2d/%2d/%2d,%2d:%2d:%2d+  \"\r\n",&var[0],&var[1],
														&var[2],&var[3],
														&var[4],&var[5]);
	*year = var[0];
	*month = var[1];
	*day = var[2];
	*hour= var[3];
	*minute = var[4];
	*secound = var[5];
};

//############################################################################
char Send_SMS (char* zielnummer,char* nachricht){
      e8:	bf 92       	push	r11
      ea:	cf 92       	push	r12
      ec:	df 92       	push	r13
      ee:	ef 92       	push	r14
      f0:	ff 92       	push	r15
      f2:	0f 93       	push	r16
      f4:	1f 93       	push	r17
      f6:	cf 93       	push	r28
      f8:	df 93       	push	r29
      fa:	cd b7       	in	r28, 0x3d	; 61
      fc:	de b7       	in	r29, 0x3e	; 62
      fe:	c1 54       	subi	r28, 0x41	; 65
     100:	d0 40       	sbci	r29, 0x00	; 0
     102:	0f b6       	in	r0, 0x3f	; 63
     104:	f8 94       	cli
     106:	de bf       	out	0x3e, r29	; 62
     108:	0f be       	out	0x3f, r0	; 63
     10a:	cd bf       	out	0x3d, r28	; 61
     10c:	6c 01       	movw	r12, r24
     10e:	7b 01       	movw	r14, r22
     110:	00 e0       	ldi	r16, 0x00	; 0
     112:	81 e0       	ldi	r24, 0x01	; 1
     114:	b8 2e       	mov	r11, r24
     116:	38 c0       	rjmp	.+112    	; 0x188 <Send_SMS+0xa0>
//############################################################################
	unsigned char tmp1 = 0;
	unsigned char tmp2 = 1;
	unsigned char tmp3 = 0;
	unsigned char tmp4 = 0;
	unsigned char nachrichtneu[49];
	unsigned char zielnummerneu[16];
	unsigned char shift = 0;	
	//erzeugen des Nachrichten Strings
	while (nachricht[tmp1] != 0){
		nachrichtneu[tmp2] = (nachricht[tmp1]&0x7F)>>shift;
     118:	2b 2d       	mov	r18, r11
     11a:	33 27       	eor	r19, r19
     11c:	41 2f       	mov	r20, r17
     11e:	55 27       	eor	r21, r21
     120:	be 01       	movw	r22, r28
     122:	6f 5e       	subi	r22, 0xEF	; 239
     124:	7f 4f       	sbci	r23, 0xFF	; 255
     126:	fb 01       	movw	r30, r22
     128:	e2 0f       	add	r30, r18
     12a:	f3 1f       	adc	r31, r19
     12c:	99 27       	eor	r25, r25
     12e:	8f 77       	andi	r24, 0x7F	; 127
     130:	90 70       	andi	r25, 0x00	; 0
     132:	04 2e       	mov	r0, r20
     134:	02 c0       	rjmp	.+4      	; 0x13a <Send_SMS+0x52>
     136:	95 95       	asr	r25
     138:	87 95       	ror	r24
     13a:	0a 94       	dec	r0
     13c:	e2 f7       	brpl	.-8      	; 0x136 <Send_SMS+0x4e>
     13e:	80 83       	st	Z, r24
     140:	0f 5f       	subi	r16, 0xFF	; 255
		if (shift != 0){
     142:	11 23       	and	r17, r17
     144:	09 f4       	brne	.+2      	; 0x148 <Send_SMS+0x60>
     146:	c8 c0       	rjmp	.+400    	; 0x2d8 <Send_SMS+0x1f0>
			nachrichtneu[tmp2-1] |= (nachricht[tmp1]&((1<<shift)-1))<<(8-shift);
     148:	f9 01       	movw	r30, r18
     14a:	31 97       	sbiw	r30, 0x01	; 1
     14c:	2c 91       	ld	r18, X
     14e:	e6 0f       	add	r30, r22
     150:	f7 1f       	adc	r31, r23
     152:	33 27       	eor	r19, r19
     154:	81 e0       	ldi	r24, 0x01	; 1
     156:	90 e0       	ldi	r25, 0x00	; 0
     158:	04 2e       	mov	r0, r20
     15a:	02 c0       	rjmp	.+4      	; 0x160 <Send_SMS+0x78>
     15c:	88 0f       	add	r24, r24
     15e:	99 1f       	adc	r25, r25
     160:	0a 94       	dec	r0
     162:	e2 f7       	brpl	.-8      	; 0x15c <Send_SMS+0x74>
     164:	01 97       	sbiw	r24, 0x01	; 1
     166:	28 23       	and	r18, r24
     168:	39 23       	and	r19, r25
     16a:	88 e0       	ldi	r24, 0x08	; 8
     16c:	90 e0       	ldi	r25, 0x00	; 0
     16e:	84 1b       	sub	r24, r20
     170:	95 0b       	sbc	r25, r21
     172:	02 c0       	rjmp	.+4      	; 0x178 <Send_SMS+0x90>
     174:	22 0f       	add	r18, r18
     176:	33 1f       	adc	r19, r19
     178:	8a 95       	dec	r24
     17a:	e2 f7       	brpl	.-8      	; 0x174 <Send_SMS+0x8c>
     17c:	80 81       	ld	r24, Z
     17e:	82 2b       	or	r24, r18
     180:	80 83       	st	Z, r24
			};
		shift++;
     182:	1f 5f       	subi	r17, 0xFF	; 255
		tmp1++;
		if (shift == 8){
     184:	18 30       	cpi	r17, 0x08	; 8

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -