📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000528 00800100 00007a6a 00007afe 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00007a6a 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000004f9 00800628 00800628 00008026 2**0
ALLOC
3 .noinit 00000000 00800b21 00800b21 00008026 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00008026 2**0
CONTENTS
5 .stab 0000e7fc 00000000 00000000 00008028 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 0000bf6f 00000000 00000000 00016824 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c
4: 0c 94 63 00 jmp 0xc6
8: 0c 94 63 00 jmp 0xc6
c: 0c 94 63 00 jmp 0xc6
10: 0c 94 63 00 jmp 0xc6
14: 0c 94 63 00 jmp 0xc6
18: 0c 94 63 00 jmp 0xc6
1c: 0c 94 17 03 jmp 0x62e
20: 0c 94 63 00 jmp 0xc6
24: 0c 94 63 00 jmp 0xc6
28: 0c 94 63 00 jmp 0xc6
2c: 0c 94 a5 03 jmp 0x74a
30: 0c 94 3b 03 jmp 0x676
34: 0c 94 63 00 jmp 0xc6
38: 0c 94 d6 03 jmp 0x7ac
3c: 0c 94 3f 04 jmp 0x87e
40: 0c 94 63 00 jmp 0xc6
44: 0c 94 63 00 jmp 0xc6
48: 0c 94 63 00 jmp 0xc6
4c: 0c 94 63 00 jmp 0xc6
50: 0c 94 63 00 jmp 0xc6
54: 0c 94 63 00 jmp 0xc6
58: 0c 94 63 00 jmp 0xc6
5c: 0c 94 63 00 jmp 0xc6
60: 0c 94 63 00 jmp 0xc6
64: 0c 94 63 00 jmp 0xc6
68: 0c 94 07 04 jmp 0x80e
6c: 0c 94 63 00 jmp 0xc6
70: 0c 94 63 00 jmp 0xc6
74: 0c 94 63 00 jmp 0xc6
78: 0c 94 63 00 jmp 0xc6
7c: 0c 94 63 00 jmp 0xc6
80: 0c 94 63 00 jmp 0xc6
84: 0c 94 63 00 jmp 0xc6
88: 0c 94 63 00 jmp 0xc6
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
00000098 <__do_copy_data>:
98: 16 e0 ldi r17, 0x06 ; 6
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: ea e6 ldi r30, 0x6A ; 106
a0: fa e7 ldi r31, 0x7A ; 122
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac
000000a8 <.__do_copy_data_loop>:
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
000000ac <.__do_copy_data_start>:
ac: a8 32 cpi r26, 0x28 ; 40
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8
000000b2 <__do_clear_bss>:
b2: 1b e0 ldi r17, 0x0B ; 11
b4: a8 e2 ldi r26, 0x28 ; 40
b6: b6 e0 ldi r27, 0x06 ; 6
b8: 01 c0 rjmp .+2 ; 0xbc
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a1 32 cpi r26, 0x21 ; 33
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba
c2: 0c 94 7d 00 jmp 0xfa
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0
000000ca <hardwareInit>:
//---------------------------------------------------------------
inline uint8_t hardwareInit(void)
{
OS_SET_PIN_DIRECTIONS();
ca: 0e 94 ea 09 call 0x13d4
return SUCCESS;
}
ce: 80 e0 ldi r24, 0x00 ; 0
d0: 90 e0 ldi r25, 0x00 ; 0
d2: 08 95 ret
000000d4 <memory_init>:
uint8_t demo_ieee_address[8];
uint16_t shortaddress;
bool DATA_READY;
//bool IS_FIRST_TIME_SYN_REQ;
//---------------------------------------------------------
extern MLME_SCAN_CONFIRM scan_result_info;
extern MAC_PIB mac_pib_data;
extern MAC_STATE_TYPE mac_current_state;
extern bool IS_NETWORK_FORMED;
extern RX_BUFFER * head_of_rx_buffer;
extern TX_BUFFER * head_of_tx_buffer;
extern Timer_Queue_pointer head_of_timer_queue;
extern INDIRECT_TX_PENDING_QUEUE * head_of_indirect_pending_buffer;
extern LONG_ADDR default_long_addr;
//extern void read_data_task(void);
//extern uint8_t adc_init(void);
//extern uint8_t sensor_init(void);
void memory_init(void)
{
uint16_t index;
BYTE *p;
p=NULL;
d4: e0 e0 ldi r30, 0x00 ; 0
d6: f0 e0 ldi r31, 0x00 ; 0
for(index=0;index<4096;index++)
*(p+index)=0x00;
d8: 11 92 st Z+, r1
da: 80 e1 ldi r24, 0x10 ; 16
dc: e0 30 cpi r30, 0x00 ; 0
de: f8 07 cpc r31, r24
e0: d8 f3 brcs .-10 ; 0xd8
e2: 08 95 ret
000000e4 <GET_ADC_value>:
}
void GET_ADC_value(void)
{
//printf("\n--timer0 interrupt----\n");
read_data_task();
e4: 0e 94 4a 0e call 0x1c94
DATA_READY=TRUE;
e8: 81 e0 ldi r24, 0x01 ; 1
ea: 80 93 34 06 sts 0x0634, r24
mlmeSyncRequest(ppib.phyCurrentChanel,TRUE);
ee: 68 2f mov r22, r24
f0: 80 91 db 06 lds r24, 0x06DB
f4: 0e 94 ed 20 call 0x41da
f8: 08 95 ret
000000fa <main>:
}
int main(void)
{
fa: cd ed ldi r28, 0xDD ; 221
fc: d0 e1 ldi r29, 0x10 ; 16
fe: de bf out 0x3e, r29 ; 62
100: cd bf out 0x3d, r28 ; 61
102: 0e 94 ea 09 call 0x13d4
uint8_t return_state;
uint8_t index;
Node_Capability temp_node;
ADDRESS temp_addr;
//memory_init();
hardwareInit();
Leds_greenOn();
106: 0e 94 a1 02 call 0x542
Leds_redOn();
10a: 0e 94 dc 02 call 0x5b8
Leds_yellowOn();
10e: 0e 94 66 02 call 0x4cc
IoInit();
112: 0e 94 bf 0a call 0x157e
OS_sched_init();
116: 0e 94 7e 04 call 0x8fc
phy_init();
11a: 0e 94 28 1d call 0x3a50
//--------------------------------
//MAC_init();
os_atomic_enable_interrupt();
11e: 0e 94 6e 04 call 0x8dc
DATA_READY=FALSE;
122: 10 92 34 06 sts 0x0634, r1
if(IS_RFD)
{
kertimer_init();
adc_init();
sensor_init();
}
// kertimer_start(2, KERTIMER_REPEAT, 0x27f, &Leds_yellowToggle);
//kertimer_start(1, KERTIMER_REPEAT, 0x07f, &Leds_greenToggle);
//kertimer_start(0, KERTIMER_REPEAT, 0x04f, &Leds_redToggle);
// backoff_timer_setOneShot(0x20,&Leds_greenOn);
cc2420_enableAddrDecode();
126: 0e 94 6c 1b call 0x36d8
MAC_init();
12a: 0e 94 c8 1f call 0x3f90
router_init();
12e: 0e 94 93 0e call 0x1d26
wdt_disable();
132: 88 e1 ldi r24, 0x18 ; 24
134: 90 e0 ldi r25, 0x00 ; 0
136: 20 e0 ldi r18, 0x00 ; 0
138: 0f b6 in r0, 0x3f ; 63
13a: f8 94 cli
13c: a8 95 wdr
13e: 81 bd out 0x21, r24 ; 33
140: 0f be out 0x3f, r0 ; 63
142: 21 bd out 0x21, r18 ; 33
printf("start timer is %08lx,head of systime queue is %04x\n",systime32(),head_of_systimer_queue);
144: 80 91 bb 06 lds r24, 0x06BB
148: 90 91 bc 06 lds r25, 0x06BC
14c: 9f 93 push r25
14e: 8f 93 push r24
150: 0e 94 d4 0a call 0x15a8
154: dc 01 movw r26, r24
156: cb 01 movw r24, r22
158: bf 93 push r27
15a: af 93 push r26
15c: 9f 93 push r25
15e: 8f 93 push r24
160: 80 e0 ldi r24, 0x00 ; 0
162: 91 e0 ldi r25, 0x01 ; 1
164: 9f 93 push r25
166: 8f 93 push r24
168: 0e 94 15 3b call 0x762a
//mlmeResetRequest(TRUE);
/*
//用于测试ED SCAN的代码
return_state=PLME_SET_TRX_STATE_request(RX_ON);
phy_channel_state=INACTIVE_PERIOD;
if(return_state==PHY_SUCCESS)
{
//scan_result_info.resultListSize=16;
//printf("\nstart to do ED SCAN\n");
mlmeScanRequest(ED_SCAN, 0x0000ffff, 6);
PLME_SET_TRX_STATE_request(TRX_OFF);
for(index=0;index<scan_result_info.resultListSize;index++)
//printf("%8d\n",scan_result_info.pEnergyDetectList[index]);
}
//*/
//选中一批合适的信道并进行设置,然后进行active_passive_scan
//PLME_SET_request(phyCurrentChanel_id, 3);
//用于测试ACTIVE_PASSIVE_SCAN的代码
//----------------------------------
//wdt_enable(WDTO_2S);
//----------------------------------
//mlmeScanRequest(ACTIVE_PASSIVE_SCAN, 0x00000008, 6);
//while(mac_current_state!=MAC_STATE_ACTIVE_PASSIVE_SCAN_FINISHED);
/*
//选中新的网络地址
cc2420_bcn_accept();
cc2420_setshortaddress((uint16_t)mac_pib_data.macShortAddress.Val);
cc2420_setpanid((uint16_t)mac_pib_data.macPANId.Val);
phy_channel_state=WAITING_FOR_BEACON;
PLME_SET_request(phyCurrentChanel_id, 11);
//-------------------------
//uint16_t tempprint;
//tempprint=cc2420_readreg(cc2420_FSCTRL);
//printf("tempprintf is %04x",tempprint);
//-------------------------
return_state=PLME_SET_TRX_STATE_request(RX_ON);
if(return_state!=PHY_SUCCESS)
{
error("\nopen the RF failure\n");
return;
}
*/
//测试信标帧的发送
//mlmeStartRequest(mac_pib_data.macPANId, ppib.phyCurrentChanel, mac_pib_data.macBeaconOrder, mac_pib_data.macSuperframeOrder, TRUE, mac_pib_data.macBattLifeExt, FALSE, FALSE, 0);
//head_of_systimer_queue=systimer_start_task(head_of_systimer_queue,RECEIVE_BEACON, 1000) ;
//head_of_systimer_queue=systimer_start_task(head_of_systimer_queue,CAP_OVER, 5000) ;
//cc2420_setrxmode();
//cc2420_setpanid(0x0001);
//cc2420_setshortaddress(0x0001);
cc2420_enablefifop();
16c: 0e 94 cf 18 call 0x319e
while(1) {
170: 8d b7 in r24, 0x3d ; 61
172: 9e b7 in r25, 0x3e ; 62
174: 08 96 adiw r24, 0x08 ; 8
176: 0f b6 in r0, 0x3f ; 63
178: f8 94 cli
17a: 9e bf out 0x3e, r25 ; 62
17c: 0f be out 0x3f, r0 ; 63
17e: 8d bf out 0x3d, r24 ; 61
//wdt_reset();
//OS_run_task();
//network layer management
switch(mac_current_state)
180: 80 91 f9 07 lds r24, 0x07F9
184: 99 27 eor r25, r25
186: 86 30 cpi r24, 0x06 ; 6
188: 91 05 cpc r25, r1
18a: 09 f4 brne .+2 ; 0x18e
18c: 3f c0 rjmp .+126 ; 0x20c
18e: 87 30 cpi r24, 0x07 ; 7
190: 91 05 cpc r25, r1
192: 34 f4 brge .+12 ; 0x1a0
194: 00 97 sbiw r24, 0x00 ; 0
196: 91 f0 breq .+36 ; 0x1bc
198: 04 97 sbiw r24, 0x04 ; 4
19a: 09 f4 brne .+2 ; 0x19e
19c: df c0 rjmp .+446 ; 0x35c
19e: 7a c1 rjmp .+756 ; 0x494
1a0: 8f 30 cpi r24, 0x0F ; 15
1a2: 91 05 cpc r25, r1
1a4: 09 f4 brne .+2 ; 0x1a8
1a6: 62 c0 rjmp .+196 ; 0x26c
1a8: 80 31 cpi r24, 0x10 ; 16
1aa: 91 05 cpc r25, r1
1ac: 1c f4 brge .+6 ; 0x1b4
1ae: 0a 97 sbiw r24, 0x0a ; 10
1b0: b1 f1 breq .+108 ; 0x21e
1b2: 70 c1 rjmp .+736 ; 0x494
1b4: 42 97 sbiw r24, 0x12 ; 18
1b6: 09 f4 brne .+2 ; 0x1ba
1b8: ee c0 rjmp .+476 ; 0x396
1ba: 6c c1 rjmp .+728 ; 0x494
{
case MAC_STATE_UNSTARTED:
printf("\n----START TO FORM NETWORK----\n");
1bc: 84 e3 ldi r24, 0x34 ; 52
1be: 91 e0 ldi r25, 0x01 ; 1
1c0: 0e 94 2a 3b call 0x7654
MAC_init();
1c4: 0e 94 c8 1f call 0x3f90
mlmeResetRequest(TRUE);
1c8: 81 e0 ldi r24, 0x01 ; 1
1ca: 0e 94 2e 20 call 0x405c
IS_NETWORK_FORMED=FALSE;
1ce: 10 92 c9 07 sts 0x07C9, r1
mlmeScanRequest(ED_SCAN, 0x00000008, 6);
1d2: 26 e0 ldi r18, 0x06 ; 6
1d4: 48 e0 ldi r20, 0x08 ; 8
1d6: 50 e0 ldi r21, 0x00 ; 0
1d8: 60 e0 ldi r22, 0x00 ; 0
1da: 70 e0 ldi r23, 0x00 ; 0
1dc: 80 e0 ldi r24, 0x00 ; 0
1de: 0e 94 23 2d call 0x5a46
//for(index=0;index<scan_result_info.resultListSize;index++)
printf("%8d\n",scan_result_info.pEnergyDetectList[index]);
1e2: eb 2d mov r30, r11
1e4: ff 27 eor r31, r31
1e6: ed 56 subi r30, 0x6D ; 109
1e8: f6 4f sbci r31, 0xF6 ; 246
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -