📄 sampleapp.lst
字号:
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
105 endPointDesc_t SampleApp_epDesc;
\ SampleApp_epDesc:
\ 000000 DS 6
106
107 /*********************************************************************
108 * EXTERNAL VARIABLES
109 */
110
111 /*********************************************************************
112 * EXTERNAL FUNCTIONS
113 */
114
115 /*********************************************************************
116 * LOCAL VARIABLES
117 */
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
118 uint8 SampleApp_TaskID; // Task ID for internal task/event processing
\ SampleApp_TaskID:
\ 000000 DS 1
119 // This variable will be received when
120 // SampleApp_Init() is called.
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
121 devStates_t SampleApp_NwkState;
\ SampleApp_NwkState:
\ 000000 DS 1
122
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
123 uint8 SampleApp_TransID; // This is the unique message ID (counter)
\ SampleApp_TransID:
\ 000000 DS 1
124
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
125 afAddrType_t SampleApp_Periodic_DstAddr;
\ SampleApp_Periodic_DstAddr:
\ 000000 DS 4
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
126 afAddrType_t SampleApp_Flash_DstAddr;
\ SampleApp_Flash_DstAddr:
\ 000000 DS 4
127
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
128 aps_Group_t SampleApp_Group;
\ SampleApp_Group:
\ 000000 DS 18
129
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
130 uint8 SampleAppPeriodicCounter = 0;
\ SampleAppPeriodicCounter:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
131 uint8 SampleAppFlashCounter = 0;
\ SampleAppFlashCounter:
\ 000000 DS 1
132
133 /*********************************************************************
134 * LOCAL FUNCTIONS
135 */
136 void SampleApp_HandleKeys( uint8 shift, uint8 keys );
137 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pckt );
138 void SampleApp_SendPeriodicMessage( void );
139 void SampleApp_SendFlashMessage( uint16 flashTime );
140
141 /*********************************************************************
142 * NETWORK LAYER CALLBACKS
143 */
144
145 /*********************************************************************
146 * PUBLIC FUNCTIONS
147 */
148
149 /*********************************************************************
150 * @fn SampleApp_Init
151 *
152 * @brief Initialization function for the Generic App Task.
153 * This is called during initialization and should contain
154 * any application specific initialization (ie. hardware
155 * initialization/setup, table initialization, power up
156 * notificaiton ... ).
157 *
158 * @param task_id - the ID assigned by OSAL. This ID should be
159 * used to send messages and set timers.
160 *
161 * @return none
162 */
\ In segment BANKED_CODE, align 1, keep-with-next
163 void SampleApp_Init( uint8 task_id )
\ SampleApp_Init:
164 {
\ 000000 74F5 MOV A,#-0xb
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 11
\ 000005 ; Auto size: 0
165 SampleApp_TaskID = task_id;
\ 000005 E9 MOV A,R1
\ 000006 90.... MOV DPTR,#SampleApp_TaskID
\ 000009 F0 MOVX @DPTR,A
166 SampleApp_NwkState = DEV_INIT;
\ 00000A 7401 MOV A,#0x1
\ 00000C 90.... MOV DPTR,#SampleApp_NwkState
\ 00000F F0 MOVX @DPTR,A
167 SampleApp_TransID = 0;
\ 000010 E4 CLR A
\ 000011 90.... MOV DPTR,#SampleApp_TransID
\ 000014 F0 MOVX @DPTR,A
168
169 // Device hardware initialization can be added here or in main() (Zmain.c).
170 // If the hardware is application specific - add it here.
171 // If the hardware is other parts of the device add it in main().
172
173 #if defined ( SOFT_START )
174 // The "Demo" target is setup to have SOFT_START and HOLD_AUTO_START
175 // SOFT_START is a compile option that allows the device to start
176 // as a coordinator if one isn't found.
177 // We are looking at a jumper (defined in SampleAppHw.c) to be jumpered
178 // together - if they are - we will start up a coordinator. Otherwise,
179 // the device will start as a router.
180 if ( readCoordinatorJumper() )
181 zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;
182 else
183 zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;
184 #endif // SOFT_START
185
186 #if defined ( HOLD_AUTO_START )
187 // HOLD_AUTO_START is a compile option that will surpress ZDApp
188 // from starting the device and wait for the application to
189 // start the device.
190 ZDOInitDevice(0);
191 #endif
192
193 // Setup for the periodic message's destination address
194 // Broadcast to everyone
195 SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;
\ 000015 740F MOV A,#0xf
\ 000017 90.... MOV DPTR,#(SampleApp_Periodic_DstAddr + 2)
\ 00001A F0 MOVX @DPTR,A
196 SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
\ 00001B 7414 MOV A,#0x14
\ 00001D 90.... MOV DPTR,#(SampleApp_Periodic_DstAddr + 3)
\ 000020 F0 MOVX @DPTR,A
197 SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;
\ 000021 90.... MOV DPTR,#SampleApp_Periodic_DstAddr
\ 000024 74FF MOV A,#-0x1
\ 000026 F0 MOVX @DPTR,A
\ 000027 A3 INC DPTR
\ 000028 F0 MOVX @DPTR,A
198
199 // Setup for the flash command's destination address - Group 1
200 SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
\ 000029 7401 MOV A,#0x1
\ 00002B 90.... MOV DPTR,#(SampleApp_Flash_DstAddr + 2)
\ 00002E F0 MOVX @DPTR,A
201 SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
\ 00002F 7414 MOV A,#0x14
\ 000031 90.... MOV DPTR,#(SampleApp_Flash_DstAddr + 3)
\ 000034 F0 MOVX @DPTR,A
202 SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;
\ 000035 90.... MOV DPTR,#SampleApp_Flash_DstAddr
\ 000038 7401 MOV A,#0x1
\ 00003A F0 MOVX @DPTR,A
\ 00003B A3 INC DPTR
\ 00003C E4 CLR A
\ 00003D F0 MOVX @DPTR,A
203
204 // Fill out the endpoint description.
205 SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;
\ 00003E 7414 MOV A,#0x14
\ 000040 90.... MOV DPTR,#SampleApp_epDesc
\ 000043 F0 MOVX @DPTR,A
206 SampleApp_epDesc.task_id = &SampleApp_TaskID;
\ 000044 90.... MOV DPTR,#(SampleApp_epDesc + 1)
\ 000047 74.. MOV A,#(SampleApp_TaskID & 0xff)
\ 000049 F0 MOVX @DPTR,A
\ 00004A A3 INC DPTR
\ 00004B 74.. MOV A,#((SampleApp_TaskID >> 8) & 0xff)
\ 00004D F0 MOVX @DPTR,A
207 SampleApp_epDesc.simpleDesc
208 = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc;
\ 00004E 90.... MOV DPTR,#(SampleApp_epDesc + 3)
\ 000051 74.. MOV A,#(SampleApp_SimpleDesc & 0xff)
\ 000053 F0 MOVX @DPTR,A
\ 000054 A3 INC DPTR
\ 000055 74.. MOV A,#((SampleApp_SimpleDesc >> 8) & 0xff)
\ 000057 F0 MOVX @DPTR,A
209 SampleApp_epDesc.latencyReq = noLatencyReqs;
\ 000058 E4 CLR A
\ 000059 90.... MOV DPTR,#(SampleApp_epDesc + 5)
\ 00005C F0 MOVX @DPTR,A
210
211 // Register the endpoint description with the AF
212 afRegister( &SampleApp_epDesc );
\ 00005D ; Setup parameters for call to function afRegister
\ 00005D 7A.. MOV R2,#(SampleApp_epDesc & 0xff)
\ 00005F 7B.. MOV R3,#((SampleApp_epDesc >> 8) & 0xff)
\ 000061 90.... MOV DPTR,#(afRegister & 0xffff)
\ 000064 74.. MOV A,#((afRegister >> 16) & 0xff)
\ 000066 12.... LCALL ?BCALL ; Banked call to: DPTR()
213
214 // Register for all key events - This app will handle all key events
215 RegisterForKeys( SampleApp_TaskID );
\ 000069 ; Setup parameters for call to function RegisterForKeys
\ 000069 90.... MOV DPTR,#SampleApp_TaskID
\ 00006C E0 MOVX A,@DPTR
\ 00006D F9 MOV R1,A
\ 00006E 90.... MOV DPTR,#(RegisterForKeys & 0xffff)
\ 000071 74.. MOV A,#((RegisterForKeys >> 16) & 0xff)
\ 000073 12.... LCALL ?BCALL ; Banked call to: DPTR()
216
217 // By default, all devices start out in Group 1
218 SampleApp_Group.ID = 0x0001;
\ 000076 90.... MOV DPTR,#SampleApp_Group
\ 000079 7401 MOV A,#0x1
\ 00007B F0 MOVX @DPTR,A
\ 00007C A3 INC DPTR
\ 00007D E4 CLR A
\ 00007E F0 MOVX @DPTR,A
219 osal_memcpy( SampleApp_Group.name, "Group 1", 7 );
\ 00007F ; Setup parameters for call to function osal_memcpy
\ 00007F 75.... MOV ?V0 + 0,#(`?<Constant "Group 1">` & 0xff)
\ 000082 75.... MOV ?V0 + 1,#((`?<Constant "Group 1">` >> 8) & 0xff)
\ 000085 F5.. MOV ?V0 + 2,A
\ 000087 78.. MOV R0,#?V0 + 0
\ 000089 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 00008C 7C07 MOV R4,#0x7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -