📄 sampleapp.lst
字号:
\ 000000 REQUIRE __INIT_XDATA_Z
104 endPointDesc_t SampleApp_epDesc;
\ SampleApp_epDesc:
\ 000000 DS 6
105
106 /*********************************************************************
107 * EXTERNAL VARIABLES
108 */
109
110 /*********************************************************************
111 * EXTERNAL FUNCTIONS
112 */
113
114 /*********************************************************************
115 * LOCAL VARIABLES
116 */
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
117 uint8 SampleApp_TaskID; // Task ID for internal task/event processing
\ SampleApp_TaskID:
\ 000000 DS 1
118 // This variable will be received when
119 // SampleApp_Init() is called.
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
120 devStates_t SampleApp_NwkState;
\ SampleApp_NwkState:
\ 000000 DS 1
121
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
122 uint8 SampleApp_TransID; // This is the unique message ID (counter)
\ SampleApp_TransID:
\ 000000 DS 1
123
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
124 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
125 afAddrType_t SampleApp_Flash_DstAddr;
\ SampleApp_Flash_DstAddr:
\ 000000 DS 4
126
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
127 aps_Group_t SampleApp_Group;
\ SampleApp_Group:
\ 000000 DS 18
128
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
129 uint8 SampleAppPeriodicCounter = 0;
\ SampleAppPeriodicCounter:
\ 000000 DS 1
\ In segment XDATA_Z, align 1, keep-with-next
\ 000000 REQUIRE __INIT_XDATA_Z
130 uint8 SampleAppFlashCounter = 0;
\ SampleAppFlashCounter:
\ 000000 DS 1
131
132 /*********************************************************************
133 * LOCAL FUNCTIONS
134 */
135 void SampleApp_HandleKeys( uint8 shift, uint8 keys );
136 void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pckt );
137 void SampleApp_SendPeriodicMessage( void );
138 void SampleApp_SendFlashMessage( uint16 flashTime );
139
140 /*********************************************************************
141 * NETWORK LAYER CALLBACKS
142 */
143
144 /*********************************************************************
145 * PUBLIC FUNCTIONS
146 */
147
148 /*********************************************************************
149 * @fn SampleApp_Init
150 *
151 * @brief Initialization function for the Generic App Task.
152 * This is called during initialization and should contain
153 * any application specific initialization (ie. hardware
154 * initialization/setup, table initialization, power up
155 * notificaiton ... ).
156 *
157 * @param task_id - the ID assigned by OSAL. This ID should be
158 * used to send messages and set timers.
159 *
160 * @return none
161 */
\ In segment BANKED_CODE, align 1, keep-with-next
162 void SampleApp_Init( uint8 task_id )
\ SampleApp_Init:
163 {
\ 000000 74F5 MOV A,#-0xb
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 11
\ 000005 ; Auto size: 0
164 SampleApp_TaskID = task_id;
\ 000005 E9 MOV A,R1
\ 000006 90.... MOV DPTR,#SampleApp_TaskID
\ 000009 F0 MOVX @DPTR,A
165 SampleApp_NwkState = DEV_INIT;
\ 00000A 7401 MOV A,#0x1
\ 00000C 90.... MOV DPTR,#SampleApp_NwkState
\ 00000F F0 MOVX @DPTR,A
166 SampleApp_TransID = 0;
\ 000010 E4 CLR A
\ 000011 90.... MOV DPTR,#SampleApp_TransID
\ 000014 F0 MOVX @DPTR,A
167
168 // Device hardware initialization can be added here or in main() (Zmain.c).
169 // If the hardware is application specific - add it here.
170 // If the hardware is other parts of the device add it in main().
171
172 #if defined ( SOFT_START )
173 // The "Demo" target is setup to have SOFT_START and HOLD_AUTO_START
174 // SOFT_START is a compile option that allows the device to start
175 // as a coordinator if one isn't found.
176 // We are looking at a jumper (defined in SampleAppHw.c) to be jumpered
177 // together - if they are - we will start up a coordinator. Otherwise,
178 // the device will start as a router.
179 if ( readCoordinatorJumper() )
180 zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;
181 else
182 zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;
183 #endif // SOFT_START
184
185 #if defined ( HOLD_AUTO_START )
186 // HOLD_AUTO_START is a compile option that will surpress ZDApp
187 // from starting the device and wait for the application to
188 // start the device.
189 ZDOInitDevice(0);
190 #endif
191
192 // Setup for the periodic message's destination address
193 // Broadcast to everyone
194 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
195 SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
\ 00001B 7414 MOV A,#0x14
\ 00001D 90.... MOV DPTR,#(SampleApp_Periodic_DstAddr + 3)
\ 000020 F0 MOVX @DPTR,A
196 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
197
198 // Setup for the flash command's destination address - Group 1
199 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
200 SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
\ 00002F 7414 MOV A,#0x14
\ 000031 90.... MOV DPTR,#(SampleApp_Flash_DstAddr + 3)
\ 000034 F0 MOVX @DPTR,A
201 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
202
203 // Fill out the endpoint description.
204 SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;
\ 00003E 7414 MOV A,#0x14
\ 000040 90.... MOV DPTR,#SampleApp_epDesc
\ 000043 F0 MOVX @DPTR,A
205 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
206 SampleApp_epDesc.simpleDesc
207 = (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
208 SampleApp_epDesc.latencyReq = noLatencyReqs;
\ 000058 E4 CLR A
\ 000059 90.... MOV DPTR,#(SampleApp_epDesc + 5)
\ 00005C F0 MOVX @DPTR,A
209
210 // Register the endpoint description with the AF
211 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()
212
213 // Register for all key events - This app will handle all key events
214 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()
215
216 // By default, all devices start out in Group 1
217 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
218 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 + -