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

📄 cantest.lss

📁 AVR系列单片机
💻 LSS
📖 第 1 页 / 共 2 页
字号:

cantest.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000020  00800100  00000440  000004d4  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         00000440  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000000  00800120  00000460  000004f4  2**0
                  ALLOC
  3 .noinit       00000000  00800120  00800120  000004f4  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000004f4  2**0
                  CONTENTS
  5 .stab         00000408  00000000  00000000  000004f4  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000008fc  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000980  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000052  00000000  00000000  00000994  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   0000015d  00000000  00000000  000009e6  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000000b1  00000000  00000000  00000b43  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   0000032d  00000000  00000000  00000bf4  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    000000a5  00000000  00000000  00000f21  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 4a 00 	jmp	0x94 <__ctors_end>
   4:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
   8:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
   c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  10:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  14:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  18:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  1c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  20:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  24:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  28:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  2c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  30:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  34:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  38:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  3c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  40:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  44:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  48:	0c 94 8a 01 	jmp	0x314 <__vector_18>
  4c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  50:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  54:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  58:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  5c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  60:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  64:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  68:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  6c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  70:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  74:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  78:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  7c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  80:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  84:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  88:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  8c:	0c 94 67 00 	jmp	0xce <__bad_interrupt>
  90:	0c 94 67 00 	jmp	0xce <__bad_interrupt>

00000094 <__ctors_end>:
  94:	11 24       	eor	r1, r1
  96:	1f be       	out	0x3f, r1	; 63
  98:	cf ef       	ldi	r28, 0xFF	; 255
  9a:	d0 e1       	ldi	r29, 0x10	; 16
  9c:	de bf       	out	0x3e, r29	; 62
  9e:	cd bf       	out	0x3d, r28	; 61

000000a0 <__do_copy_data>:
  a0:	11 e0       	ldi	r17, 0x01	; 1
  a2:	a0 e0       	ldi	r26, 0x00	; 0
  a4:	b1 e0       	ldi	r27, 0x01	; 1
  a6:	e0 e4       	ldi	r30, 0x40	; 64
  a8:	f4 e0       	ldi	r31, 0x04	; 4
  aa:	00 e0       	ldi	r16, 0x00	; 0
  ac:	0b bf       	out	0x3b, r16	; 59
  ae:	02 c0       	rjmp	.+4      	; 0xb4 <__do_copy_data+0x14>
  b0:	07 90       	elpm	r0, Z+
  b2:	0d 92       	st	X+, r0
  b4:	a0 32       	cpi	r26, 0x20	; 32
  b6:	b1 07       	cpc	r27, r17
  b8:	d9 f7       	brne	.-10     	; 0xb0 <__do_copy_data+0x10>

000000ba <__do_clear_bss>:
  ba:	11 e0       	ldi	r17, 0x01	; 1
  bc:	a0 e2       	ldi	r26, 0x20	; 32
  be:	b1 e0       	ldi	r27, 0x01	; 1
  c0:	01 c0       	rjmp	.+2      	; 0xc4 <.do_clear_bss_start>

000000c2 <.do_clear_bss_loop>:
  c2:	1d 92       	st	X+, r1

000000c4 <.do_clear_bss_start>:
  c4:	a0 32       	cpi	r26, 0x20	; 32
  c6:	b1 07       	cpc	r27, r17
  c8:	e1 f7       	brne	.-8      	; 0xc2 <.do_clear_bss_loop>
  ca:	0c 94 73 01 	jmp	0x2e6 <main>

000000ce <__bad_interrupt>:
  ce:	0c 94 00 00 	jmp	0x0 <__vectors>

000000d2 <mcu_init>:


void mcu_init(void)
{
unsigned int i=0; 
  d2:	20 e0       	ldi	r18, 0x00	; 0
  d4:	30 e0       	ldi	r19, 0x00	; 0
//-------------------prot init-------------------
 	 //DDRC  = 0xff;                                                                 //端口设置:PC设置为推挽1输出
 	// PORTC = 0xfe;
 	 DDRA  = 0x00;                                                                 //端口设置:PA设置为输入
  d6:	11 b8       	out	0x01, r1	; 1

//---------------- MCU interrupt ----------------
 	 SREG = 0x00;                                                                  //关全局中断; 0x80开全局中断
  d8:	1f be       	out	0x3f, r1	; 63

//-----------------usart 1 INITIAL---------------
  	UBRR1 =25;                                                                    //USART1 波特率设置9600 X 16M-"103",
  da:	89 e1       	ldi	r24, 0x19	; 25
  dc:	90 e0       	ldi	r25, 0x00	; 0
  de:	90 93 cd 00 	sts	0x00CD, r25
  e2:	80 93 cc 00 	sts	0x00CC, r24
                                                                                //38400bpsX16M=25;
 	 UCSR1B=(1<<RXEN1)|(1<<TXEN1)|(1<<RXCIE1);                                     //使能接收 & 使能发送 & 使能接收中断
  e6:	88 e9       	ldi	r24, 0x98	; 152
  e8:	80 93 c9 00 	sts	0x00C9, r24
 	 UCSR1C=(1<<UCSZ10)|(1<<UCSZ11);                                               //0x06 8位数据,1位停止位,无校验 */
  ec:	86 e0       	ldi	r24, 0x06	; 6
  ee:	80 93 ca 00 	sts	0x00CA, r24

//----------------CAN_REG INITIAL----------------
 	 CANGCON |= (1<<SWRES); 
  f2:	80 91 d8 00 	lds	r24, 0x00D8
  f6:	81 60       	ori	r24, 0x01	; 1
  f8:	80 93 d8 00 	sts	0x00D8, r24
	  for(i=0;i<=50000;i++){}       
  fc:	2b 5e       	subi	r18, 0xEB	; 235
  fe:	3f 4f       	sbci	r19, 0xFF	; 255
 100:	83 ec       	ldi	r24, 0xC3	; 195
 102:	21 35       	cpi	r18, 0x51	; 81
 104:	38 07       	cpc	r19, r24
 106:	d0 f3       	brcs	.-12     	; 0xfc <mcu_init+0x2a>
	     for(i=0;i<=50000;i++){}     
 108:	20 e0       	ldi	r18, 0x00	; 0
 10a:	30 e0       	ldi	r19, 0x00	; 0
 10c:	2b 5e       	subi	r18, 0xEB	; 235
 10e:	3f 4f       	sbci	r19, 0xFF	; 255
 110:	83 ec       	ldi	r24, 0xC3	; 195
 112:	21 35       	cpi	r18, 0x51	; 81
 114:	38 07       	cpc	r19, r24
 116:	d0 f3       	brcs	.-12     	; 0x10c <mcu_init+0x3a>
		   for(i=0;i<=50000;i++){}     
 118:	20 e0       	ldi	r18, 0x00	; 0
 11a:	30 e0       	ldi	r19, 0x00	; 0
 11c:	2b 5e       	subi	r18, 0xEB	; 235
 11e:	3f 4f       	sbci	r19, 0xFF	; 255
 120:	83 ec       	ldi	r24, 0xC3	; 195
 122:	21 35       	cpi	r18, 0x51	; 81
 124:	38 07       	cpc	r19, r24
 126:	d0 f3       	brcs	.-12     	; 0x11c <mcu_init+0x4a>
		     for(i=0;i<=50000;i++){}     
 128:	20 e0       	ldi	r18, 0x00	; 0
 12a:	30 e0       	ldi	r19, 0x00	; 0
 12c:	2b 5e       	subi	r18, 0xEB	; 235
 12e:	3f 4f       	sbci	r19, 0xFF	; 255
 130:	83 ec       	ldi	r24, 0xC3	; 195
 132:	21 35       	cpi	r18, 0x51	; 81
 134:	38 07       	cpc	r19, r24
 136:	d0 f3       	brcs	.-12     	; 0x12c <mcu_init+0x5a>
			   for(i=0;i<=50000;i++){}     
 138:	20 e0       	ldi	r18, 0x00	; 0
 13a:	30 e0       	ldi	r19, 0x00	; 0
 13c:	2b 5e       	subi	r18, 0xEB	; 235
 13e:	3f 4f       	sbci	r19, 0xFF	; 255
 140:	83 ec       	ldi	r24, 0xC3	; 195
 142:	21 35       	cpi	r18, 0x51	; 81
 144:	38 07       	cpc	r19, r24
 146:	d0 f3       	brcs	.-12     	; 0x13c <mcu_init+0x6a>
			     for(i=0;i<=50000;i++){}     
 148:	20 e0       	ldi	r18, 0x00	; 0
 14a:	30 e0       	ldi	r19, 0x00	; 0
 14c:	2b 5e       	subi	r18, 0xEB	; 235
 14e:	3f 4f       	sbci	r19, 0xFF	; 255
 150:	83 ec       	ldi	r24, 0xC3	; 195
 152:	21 35       	cpi	r18, 0x51	; 81
 154:	38 07       	cpc	r19, r24
 156:	d0 f3       	brcs	.-12     	; 0x14c <mcu_init+0x7a>
				                                               //CAN控制器软复位
 	 CANBT1 = 0X06;    
 158:	86 e0       	ldi	r24, 0x06	; 6
 15a:	80 93 e2 00 	sts	0x00E2, r24
	       
	                                                      //设置波特率分频因子16MHz,16TQ,250k,=4=3+1,3
 	 CANBT2 = 0x0c;                                                                //同步段为1“0x0n”传播段=7=6+1
 15e:	8c e0       	ldi	r24, 0x0C	; 12
 160:	80 93 e3 00 	sts	0x00E3, r24
	CANBT3 = 0x37;    
 164:	87 e3       	ldi	r24, 0x37	; 55
 166:	80 93 e4 00 	sts	0x00E4, r24
	                                                            //相位缓冲PH2=4=3+1,PH1=4=3+1
 	// CANTCON = 0xff;
	CANTCON = 0B00000010;
 16a:	82 e0       	ldi	r24, 0x02	; 2
 16c:	80 93 e5 00 	sts	0x00E5, r24

//--------------can_MOB INITIAL-------------------
//MOB0=RX[CMD]    接收上位机发来的指令       //格式:3,0,0,177,239,33
 	 CANPAGE  = 0x00;                                                              //MOB0,自动增量,初值为0
 170:	10 92 ed 00 	sts	0x00ED, r1
 	 CANSTMOB = 0;
 174:	10 92 ee 00 	sts	0x00EE, r1
 	 CANCDMOB = 0x08;    //2.0b  0x10    8个byte     
 178:	98 e0       	ldi	r25, 0x08	; 8
 17a:	90 93 ef 00 	sts	0x00EF, r25
    /*                                          //can2B,DLC=8
 	 CANIDT4 = 0x08;                                                               // 00001 0xx
 	 CANIDT3 = 0x79;                                                               // 01111 001              33
 	 CANIDT2 = 0x8f;                                                               // 10001 111             239
 	 CANIDT1 = 0x65; 
	 */ 
	//  CANIDT4 = 0x20+0B00001000;                                                               // 00100 000
 //CANIDT4 = 0x20;   
 // CANIDT3 = 0x23;                                                               // 00100 011           101
  CANIDT2 = 0x2b;                                                               // 00101 011           100
 17e:	6b e2       	ldi	r22, 0x2B	; 43
 180:	60 93 f2 00 	sts	0x00F2, r22
  CANIDT1 = 0xdd;                                                               // 01100 101             177
 184:	8d ed       	ldi	r24, 0xDD	; 221
 186:	80 93 f3 00 	sts	0x00F3, r24

 //	 CANIDM4  =0xff;                                                              //                             11111 100
 //	 CANIDM3  =0xff;                                                              //                             11111 111
 	 CANIDM2  = 0x00;                                                              //                             11111 111
 18a:	10 92 f6 00 	sts	0x00F6, r1
 	 CANIDM1  = 0x00;  
 18e:	10 92 f7 00 	sts	0x00F7, r1




//MOB1=TX[STA1]  向上位机报告状态组1          6,0,0,178,239,33
  	CANPAGE = 0x10;
 192:	80 e1       	ldi	r24, 0x10	; 16
 194:	80 93 ed 00 	sts	0x00ED, r24
 CANSTMOB = (1<<TXOK);
 198:	50 e4       	ldi	r21, 0x40	; 64
 19a:	50 93 ee 00 	sts	0x00EE, r21
 	// CANCDMOB = 0;
 CANCDMOB = 0x08;   
 19e:	90 93 ef 00 	sts	0x00EF, r25
 	CANIDT4 = 0x08;                                                               // 00001 000
 1a2:	90 93 f0 00 	sts	0x00F0, r25
  	CANIDT3 = 0x79;                                                               // 01111 001              33
 1a6:	39 e7       	ldi	r19, 0x79	; 121
 1a8:	30 93 f1 00 	sts	0x00F1, r19
  	CANIDT2 = 0x97;                                                               // 10010 111             239
 1ac:	87 e9       	ldi	r24, 0x97	; 151
 1ae:	80 93 f2 00 	sts	0x00F2, r24
 	CANIDT1 = 0xc5; 
 1b2:	25 ec       	ldi	r18, 0xC5	; 197
 1b4:	20 93 f3 00 	sts	0x00F3, r18

	                                                           // 11000 101             178

//MOB2=TX[STA2]  向上位机报告状态组2          6,0,0,179,239,33
 	 CANPAGE = 0x20;
 1b8:	40 e2       	ldi	r20, 0x20	; 32
 1ba:	40 93 ed 00 	sts	0x00ED, r20
  	CANCDMOB = 0;
 1be:	10 92 ef 00 	sts	0x00EF, r1
	 	 CANSTMOB = (1<<TXOK);
 1c2:	50 93 ee 00 	sts	0x00EE, r21
 	 CANCDMOB = 0x08;
 1c6:	90 93 ef 00 	sts	0x00EF, r25
 	 CANIDT4 = 0x08;                                                               // 00001 000
 1ca:	90 93 f0 00 	sts	0x00F0, r25
 	 CANIDT3 = 0x79;                                                               // 01111 001              33
 1ce:	30 93 f1 00 	sts	0x00F1, r19
 	 CANIDT2 = 0x9f;                                                               // 10011 111             239
 1d2:	8f e9       	ldi	r24, 0x9F	; 159
 1d4:	80 93 f2 00 	sts	0x00F2, r24
 	 CANIDT1 = 0xc5;                                                               // 11000 101             179
 1d8:	20 93 f3 00 	sts	0x00F3, r18
 CANCDMOB = 0x08; 
 1dc:	90 93 ef 00 	sts	0x00EF, r25
//MOB3=RX[2#servo]                            7,0,0,100,101,100
  CANPAGE  = 0x30;                                                              //MOB3,自动增量,初值为0
 1e0:	30 e3       	ldi	r19, 0x30	; 48
 1e2:	30 93 ed 00 	sts	0x00ED, r19
  CANSTMOB = 0;
 1e6:	10 92 ee 00 	sts	0x00EE, r1
  CANCDMOB = 0x08; 
 1ea:	90 93 ef 00 	sts	0x00EF, r25
                                                               //can2B,DLC=8
  CANIDT4 = 0x20;                                                               // 00100 000
 1ee:	40 93 f0 00 	sts	0x00F0, r20
  CANIDT3 = 0x2b;                                                               // 00101 011           100
 1f2:	60 93 f1 00 	sts	0x00F1, r22
  CANIDT2 = 0x22;                                                               // 00100 011           101
 1f6:	82 e2       	ldi	r24, 0x22	; 34
 1f8:	80 93 f2 00 	sts	0x00F2, r24
  CANIDT1 = 0xe3;                                                               // 11100 011           100
 1fc:	23 ee       	ldi	r18, 0xE3	; 227
 1fe:	20 93 f3 00 	sts	0x00F3, r18
  CANIDM4  = 0xfc;                                                              //                             11111 100
 202:	8c ef       	ldi	r24, 0xFC	; 252
 204:	80 93 f4 00 	sts	0x00F4, r24
  CANIDM3  = 0xff;                                                              //                             11111 111
 208:	8f ef       	ldi	r24, 0xFF	; 255
 20a:	80 93 f5 00 	sts	0x00F5, r24
  CANIDM2  = 0xff;                                                              //                             11111 111
 20e:	80 93 f6 00 	sts	0x00F6, r24
  CANIDM1  = 0x07;                                                              //CANIDM4-1数据校验屏蔽寄存器  00000   111
 212:	87 e0       	ldi	r24, 0x07	; 7
 214:	80 93 f7 00 	sts	0x00F7, r24

//MOB4=TX[2#servo]                            7,0,0,101,100,100
  CANPAGE = 0x40;
 218:	50 93 ed 00 	sts	0x00ED, r21
  CANCDMOB = 0;
 21c:	10 92 ef 00 	sts	0x00EF, r1
	 	 CANSTMOB = (1<<TXOK);
 220:	50 93 ee 00 	sts	0x00EE, r21
  CANCDMOB = 0x08;
 224:	90 93 ef 00 	sts	0x00EF, r25
  CANIDT4 = 0x20;                                                               // 00100 000
 228:	40 93 f0 00 	sts	0x00F0, r20
  CANIDT3 = 0x23;                                                               // 00100 011           101
 22c:	83 e2       	ldi	r24, 0x23	; 35
 22e:	80 93 f1 00 	sts	0x00F1, r24
  CANIDT2 = 0x2b;                                                               // 00101 011           100
 232:	60 93 f2 00 	sts	0x00F2, r22
  CANIDT1 = 0xe3;                                                               // 11100 011           100

⌨️ 快捷键说明

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