1p1s5.lss
来自「cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表」· LSS 代码 · 共 1,717 行 · 第 1/5 页
LSS
1,717 行
output/1P1S5.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .fuse 00000000 00002200 00002200 00001fb8 2**0
CONTENTS
1 .text 00001e90 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .data 00000094 00800060 00001e90 00001f24 2**0
CONTENTS, ALLOC, LOAD, DATA
3 .bss 00000089 008000f4 008000f4 00001fb8 2**0
ALLOC
4 .noinit 00000000 0080017d 0080017d 00001fb8 2**0
CONTENTS
5 .eeprom 00000000 00810000 00810000 00001fb8 2**0
CONTENTS
6 .stab 00005c88 00000000 00000000 00001fb8 2**2
CONTENTS, READONLY, DEBUGGING
7 .stabstr 00001b14 00000000 00000000 00007c40 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 76 c0 rjmp .+236 ; 0xee <__init>
2: 8f c0 rjmp .+286 ; 0x122 <__bad_interrupt>
4: 8e c0 rjmp .+284 ; 0x122 <__bad_interrupt>
6: 8d c0 rjmp .+282 ; 0x122 <__bad_interrupt>
8: 8c c0 rjmp .+280 ; 0x122 <__bad_interrupt>
a: 8b c0 rjmp .+278 ; 0x122 <__bad_interrupt>
c: 8a c0 rjmp .+276 ; 0x122 <__bad_interrupt>
e: 89 c0 rjmp .+274 ; 0x122 <__bad_interrupt>
10: 46 c2 rjmp .+1164 ; 0x49e <__vector_8>
12: 5a c1 rjmp .+692 ; 0x2c8 <__vector_9>
14: 86 c0 rjmp .+268 ; 0x122 <__bad_interrupt>
16: ee cc rjmp .-1572 ; 0xfffff9f4 <__eeprom_end+0xff7ef9f4>
18: 32 cd rjmp .-1436 ; 0xfffffa7e <__eeprom_end+0xff7efa7e>
1a: 7d cd rjmp .-1286 ; 0xfffffb16 <__eeprom_end+0xff7efb16>
1c: 82 c0 rjmp .+260 ; 0x122 <__bad_interrupt>
1e: 81 c0 rjmp .+258 ; 0x122 <__bad_interrupt>
20: 80 c0 rjmp .+256 ; 0x122 <__bad_interrupt>
22: 7f c0 rjmp .+254 ; 0x122 <__bad_interrupt>
24: 7e c0 rjmp .+252 ; 0x122 <__bad_interrupt>
00000026 <__ctors_end>:
26: 78 c4 rjmp .+2288 ; 0x918 <MenuDis+0x22>
28: 77 c4 rjmp .+2286 ; 0x918 <MenuDis+0x22>
2a: 76 c4 rjmp .+2284 ; 0x918 <MenuDis+0x22>
2c: 75 c4 rjmp .+2282 ; 0x918 <MenuDis+0x22>
2e: 74 c4 rjmp .+2280 ; 0x918 <MenuDis+0x22>
30: 73 c4 rjmp .+2278 ; 0x918 <MenuDis+0x22>
32: 72 c4 rjmp .+2276 ; 0x918 <MenuDis+0x22>
34: ee c4 rjmp .+2524 ; 0xa12 <MenuDis+0x11c>
36: ed c4 rjmp .+2522 ; 0xa12 <MenuDis+0x11c>
38: ec c4 rjmp .+2520 ; 0xa12 <MenuDis+0x11c>
3a: eb c4 rjmp .+2518 ; 0xa12 <MenuDis+0x11c>
3c: ea c4 rjmp .+2516 ; 0xa12 <MenuDis+0x11c>
3e: e9 c4 rjmp .+2514 ; 0xa12 <MenuDis+0x11c>
40: e8 c4 rjmp .+2512 ; 0xa12 <MenuDis+0x11c>
42: e7 c4 rjmp .+2510 ; 0xa12 <MenuDis+0x11c>
44: e6 c4 rjmp .+2508 ; 0xa12 <MenuDis+0x11c>
46: 76 c4 rjmp .+2284 ; 0x934 <MenuDis+0x3e>
48: 86 c4 rjmp .+2316 ; 0x956 <MenuDis+0x60>
4a: 9c c4 rjmp .+2360 ; 0x984 <MenuDis+0x8e>
4c: ac c4 rjmp .+2392 ; 0x9a6 <MenuDis+0xb0>
4e: bc c4 rjmp .+2424 ; 0x9c8 <MenuDis+0xd2>
50: c8 c4 rjmp .+2448 ; 0x9e2 <MenuDis+0xec>
52: d3 c4 rjmp .+2470 ; 0x9fa <MenuDis+0x104>
54: 09 c5 rjmp .+2578 ; 0xa68 <KeyTask_MainLoop+0x54>
56: 0a c5 rjmp .+2580 ; 0xa6c <KeyTask_MainLoop+0x58>
58: 1c c5 rjmp .+2616 ; 0xa92 <KeyTask_MainLoop+0x7e>
5a: 22 c5 rjmp .+2628 ; 0xaa0 <KeyTask_MainLoop+0x8c>
5c: 2a c5 rjmp .+2644 ; 0xab2 <KeyTask_MainLoop+0x9e>
5e: 57 c5 rjmp .+2734 ; 0xb0e <KeyTask_MainLoop+0xfa>
60: 9c c5 rjmp .+2872 ; 0xb9a <KeyTask_MainLoop+0x186>
62: dd c5 rjmp .+3002 ; 0xc1e <KeyTask_MainLoop+0x20a>
64: ec cd rjmp .-1064 ; 0xfffffc3e <__eeprom_end+0xff7efc3e>
66: f5 cd rjmp .-1046 ; 0xfffffc52 <__eeprom_end+0xff7efc52>
68: fc cd rjmp .-1032 ; 0xfffffc62 <__eeprom_end+0xff7efc62>
6a: fe cd rjmp .-1028 ; 0xfffffc68 <__eeprom_end+0xff7efc68>
6c: 00 ce rjmp .-1024 ; 0xfffffc6e <__eeprom_end+0xff7efc6e>
6e: 02 ce rjmp .-1020 ; 0xfffffc74 <__eeprom_end+0xff7efc74>
70: 13 ce rjmp .-986 ; 0xfffffc98 <__eeprom_end+0xff7efc98>
72: 1b ce rjmp .-970 ; 0xfffffcaa <__eeprom_end+0xff7efcaa>
00000074 <LedTab>:
74: 3f 06 5b 4f 66 6d 7d 07 7f 6f bf 86 db cf e6 ed ?.[Ofm}..o......
84: fd 87 ff ef 77 7c 39 5e 79 71 6f 74 06 1e 00 38 ....w|9^yqot...8
94: 00 37 3f 73 bf 50 6d 78 3e 3e 00 00 6e 5b 40 00 .7?s.Pmx>>..n[@.
000000a4 <WaitTimeTab>:
a4: 63 00 72 00 ea 00 f0 00 f8 00 60 00 ed 00 c.r.......`...
000000b2 <KeyTask>:
b2: 00 00 00 00 00 00 11 10 23 23 10 12 10 10 20 26 ........##.... &
c2: 25 20 14 28 27 % .('
000000c7 <first_menu>:
c7: 75 00 7b 00 81 00 87 00 8d 00 93 00 99 00 u.{...........
000000d5 <pComData>:
d5: 0b 01 0a 01 09 01 08 01 07 01 06 01 05 01 04 01 ................
e5: 03 01 02 01 01 01 00 01 00 .........
000000ee <__init>:
ee: 11 24 eor r1, r1
f0: 1f be out 0x3f, r1 ; 63
f2: cf e5 ldi r28, 0x5F ; 95
f4: d4 e0 ldi r29, 0x04 ; 4
f6: de bf out 0x3e, r29 ; 62
f8: cd bf out 0x3d, r28 ; 61
000000fa <__do_copy_data>:
fa: 10 e0 ldi r17, 0x00 ; 0
fc: a0 e6 ldi r26, 0x60 ; 96
fe: b0 e0 ldi r27, 0x00 ; 0
100: e0 e9 ldi r30, 0x90 ; 144
102: fe e1 ldi r31, 0x1E ; 30
104: 02 c0 rjmp .+4 ; 0x10a <.do_copy_data_start>
00000106 <.do_copy_data_loop>:
106: 05 90 lpm r0, Z+
108: 0d 92 st X+, r0
0000010a <.do_copy_data_start>:
10a: a4 3f cpi r26, 0xF4 ; 244
10c: b1 07 cpc r27, r17
10e: d9 f7 brne .-10 ; 0x106 <.do_copy_data_loop>
00000110 <__do_clear_bss>:
110: 11 e0 ldi r17, 0x01 ; 1
112: a4 ef ldi r26, 0xF4 ; 244
114: b0 e0 ldi r27, 0x00 ; 0
116: 01 c0 rjmp .+2 ; 0x11a <.do_clear_bss_start>
00000118 <.do_clear_bss_loop>:
118: 1d 92 st X+, r1
0000011a <.do_clear_bss_start>:
11a: ad 37 cpi r26, 0x7D ; 125
11c: b1 07 cpc r27, r17
11e: e1 f7 brne .-8 ; 0x118 <.do_clear_bss_loop>
120: 01 c0 rjmp .+2 ; 0x124 <main>
00000122 <__bad_interrupt>:
122: 6e cf rjmp .-292 ; 0x0 <__vectors>
00000124 <main>:
//-----------------------------
int main (void)
{
124: cf e5 ldi r28, 0x5F ; 95
126: d4 e0 ldi r29, 0x04 ; 4
128: de bf out 0x3e, r29 ; 62
12a: cd bf out 0x3d, r28 ; 61
SysInit();
12c: 78 d0 rcall .+240 ; 0x21e <SysInit>
if (!UP_KEY)
12e: b4 99 sbic 0x16, 4 ; 22
130: 06 c0 rjmp .+12 ; 0x13e <main+0x1a>
__ticks = 1;
else if (__tmp > 65535)
__ticks = 0; /* i.e. 65536 */
else
__ticks = (uint16_t)__tmp;
132: 80 e0 ldi r24, 0x00 ; 0
134: 98 e4 ldi r25, 0x48 ; 72
136: 01 97 sbiw r24, 0x01 ; 1
138: f1 f7 brne .-4 ; 0x136 <main+0x12>
{
_delay_ms(10);
if (!UP_KEY)
13a: b4 9b sbis 0x16, 4 ; 22
{ Calibrate();}
13c: f4 d8 rcall .-3608 ; 0xfffff326 <__eeprom_end+0xff7ef326>
}
while (1)
{
wdt_reset(); //喂狗
13e: a8 95 wdr
Timer1_MainLoop(); //定时时间
140: 7e d1 rcall .+764 ; 0x43e <Timer1_MainLoop>
ScanKey_MainLoop(); //按键扫描
142: 12 d3 rcall .+1572 ; 0x768 <ScanKey_MainLoop>
KeyTask_MainLoop(); //按键任务处理
144: 67 d4 rcall .+2254 ; 0xa14 <KeyTask_MainLoop>
WatchKey();
146: 9b d3 rcall .+1846 ; 0x87e <WatchKey>
DispProcess(); //显示数据更新
148: 00 d1 rcall .+512 ; 0x34a <DispProcess>
if (TaskID == 0)
14a: c0 91 fe 00 lds r28, 0x00FE
14e: cc 23 and r28, r28
150: b1 f7 brne .-20 ; 0x13e <main+0x1a>
{
DealDataMainLoop(); //cs5460数据处理
152: 6a da rcall .-2860 ; 0xfffff628 <__eeprom_end+0xff7ef628>
WatchDataTask(); //报警处理
154: 4d db rcall .-2406 ; 0xfffff7f0 <__eeprom_end+0xff7ef7f0>
Watch5460A(); //5460异常检测
Process_Msg(); //通讯处理
}
}
}
//--------------------------------------------
static void Watch5460A(void) //5460异常检测(3秒一次),加载校验值
{
if (WatchAd.fGetTime)
156: 80 91 60 00 lds r24, 0x0060
15a: 88 23 and r24, r24
15c: a1 f1 breq .+104 ; 0x1c6 <main+0xa2>
{
WatchAd.fGetTime = 0;
15e: c0 93 60 00 sts 0x0060, r28
WatchAd.WaitTime = _3S;
162: 8c e2 ldi r24, 0x2C ; 44
164: 91 e0 ldi r25, 0x01 ; 1
166: 90 93 62 00 sts 0x0062, r25
16a: 80 93 61 00 sts 0x0061, r24
if (fAdRunning_A)
16e: 80 91 75 01 lds r24, 0x0175
172: 88 23 and r24, r24
174: 61 f0 breq .+24 ; 0x18e <main+0x6a>
{ fAdRunning_A=0;
176: c0 93 75 01 sts 0x0175, r28
Detect_T0++;}
17a: 80 91 02 01 lds r24, 0x0102
17e: 90 91 03 01 lds r25, 0x0103
182: 01 96 adiw r24, 0x01 ; 1
184: 90 93 03 01 sts 0x0103, r25
188: 80 93 02 01 sts 0x0102, r24
18c: 1c c0 rjmp .+56 ; 0x1c6 <main+0xa2>
else
{ Detect_T1++;
18e: 80 91 00 01 lds r24, 0x0100
192: 90 91 01 01 lds r25, 0x0101
196: 01 96 adiw r24, 0x01 ; 1
198: 90 93 01 01 sts 0x0101, r25
19c: 80 93 00 01 sts 0x0100, r24
OS_CLOSE_INT();
1a0: f8 94 cli
1a2: 80 91 f7 00 lds r24, 0x00F7
1a6: 8f 5f subi r24, 0xFF ; 255
1a8: 80 93 f7 00 sts 0x00F7, r24
Rest5460A();
1ac: 8d d7 rcall .+3866 ; 0x10c8 <Rest5460A>
Initi5460A();
1ae: 67 d8 rcall .-3890 ; 0xfffff27e <__eeprom_end+0xff7ef27e>
LoadCalibration();
1b0: fb d6 rcall .+3574 ; 0xfa8 <LoadCalibration>
OS_OPEN_INT();
1b2: 80 91 f7 00 lds r24, 0x00F7
1b6: 81 50 subi r24, 0x01 ; 1
1b8: 80 93 f7 00 sts 0x00F7, r24
1bc: 80 91 f7 00 lds r24, 0x00F7
1c0: 88 23 and r24, r24
1c2: 09 f4 brne .+2 ; 0x1c6 <main+0xa2>
1c4: 78 94 sei
1c6: 10 dd rcall .-1504 ; 0xfffffbe8 <__eeprom_end+0xff7efbe8>
1c8: ba cf rjmp .-140 ; 0x13e <main+0x1a>
000001ca <PinInit>:
{ wdt_enable(WDTO_1S); } //看门狗初始化,溢出时间为1S
//--------------------------------------------------
void PinInit(void)
{
DDRB = 0xc7;
1ca: 87 ec ldi r24, 0xC7 ; 199
1cc: 87 bb out 0x17, r24 ; 23
PORTB = 0xff;
1ce: 9f ef ldi r25, 0xFF ; 255
1d0: 98 bb out 0x18, r25 ; 24
DDRC = 0xf7;
1d2: 87 ef ldi r24, 0xF7 ; 247
1d4: 84 bb out 0x14, r24 ; 20
PORTC = 0xff;
1d6: 95 bb out 0x15, r25 ; 21
DDRD = 0xff;
1d8: 91 bb out 0x11, r25 ; 17
PORTD = 0xff;
1da: 92 bb out 0x12, r25 ; 18
// AlarmSwitch= 0x01;
IO_HighAlarm = ON;
1dc: 93 9a sbi 0x12, 3 ; 18
fH_Alarm = OFF;
1de: 10 92 7b 01 sts 0x017B, r1
IO_LowAlarm = ON;
1e2: 92 9a sbi 0x12, 2 ; 18
fL_Alarm = OFF;
1e4: 10 92 7c 01 sts 0x017C, r1
1e8: 08 95 ret
000001ea <Timer0Init>:
1ea: 89 b7 in r24, 0x39 ; 57
1ec: 85 60 ori r24, 0x05 ; 5
1ee: 89 bf out 0x39, r24 ; 57
1f0: 83 b7 in r24, 0x33 ; 51
1f2: 83 60 ori r24, 0x03 ; 3
1f4: 83 bf out 0x33, r24 ; 51
1f6: 8d e8 ldi r24, 0x8D ; 141
1f8: 82 bf out 0x32, r24 ; 50
1fa: 8e b5 in r24, 0x2e ; 46
1fc: 83 60 ori r24, 0x03 ; 3
1fe: 8e bd out 0x2e, r24 ; 46
200: 80 e8 ldi r24, 0x80 ; 128
202: 9b ef ldi r25, 0xFB ; 251
204: 9d bd out 0x2d, r25 ; 45
206: 8c bd out 0x2c, r24 ; 44
208: 08 95 ret
0000020a <WatchDogInit>:
20a: 88 e1 ldi r24, 0x18 ; 24
20c: 90 e0 ldi r25, 0x00 ; 0
20e: 2e e0 ldi r18, 0x0E ; 14
210: 0f b6 in r0, 0x3f ; 63
212: f8 94 cli
214: a8 95 wdr
216: 81 bd out 0x21, r24 ; 33
218: 0f be out 0x3f, r0 ; 63
21a: 21 bd out 0x21, r18 ; 33
21c: 08 95 ret
0000021e <SysInit>:
21e: f8 94 cli
220: 80 91 f7 00 lds r24, 0x00F7
224: 8f 5f subi r24, 0xFF ; 255
226: 80 93 f7 00 sts 0x00F7, r24
22a: cf df rcall .-98 ; 0x1ca <PinInit>
22c: de df rcall .-68 ; 0x1ea <Timer0Init>
22e: ed df rcall .-38 ; 0x20a <WatchDogInit>
230: c2 98 cbi 0x18, 2 ; 24
232: 96 98 cbi 0x12, 6 ; 18
234: 97 98 cbi 0x12, 7 ; 18
236: c0 98 cbi 0x18, 0 ; 24
238: c1 98 cbi 0x18, 1 ; 24
23a: c8 d5 rcall .+2960 ; 0xdcc <LoadFunData>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?