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

📄 main.lss

📁 无线传感器星型网络的节点的基站程序,采用802.15.4协议
💻 LSS
📖 第 1 页 / 共 2 页
字号:

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 + -