📄 cantest.lss
字号:
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 + -