📄 os_probe.lst
字号:
\ 0000001A 4160 STR R1,[R0, #+4]
125 OSProbe_TmrCntsPrev = 0;
\ 0000001C 0180 STRH R1,[R0, #+0]
126 #endif
127 }
\ 0000001E 00BD POP {PC} ;; return
128
129
130 /*
131 *********************************************************************************************************
132 * Initialize uC/OS-II Objects for uC/Probe Plug-In
133 *
134 * Description: This function creates system objects--one task--for the uC/Probe Plug-In for uC/OS-II.
135 *
136 * Argument(s): None.
137 *
138 * Returns : None
139 *********************************************************************************************************
140 */
141
142 #if OS_PROBE_TASK > 0
\ In segment CODE, align 4, keep-with-next
143 static void OSProbe_InitOS (void)
144 {
\ OSProbe_InitOS:
\ 00000000 01B5 PUSH {R0,LR}
145 #if OS_TASK_NAME_SIZE > 12
146 INT8U err;
147 #endif
148
149
150 #if OS_TASK_CREATE_EXT_EN > 0
151 #if OS_STK_GROWTH == 1
152 (void)OSTaskCreateExt(OSProbe_Task,
153 (void *)0, /* No arguments passed to OSProbe_Task() */
154 &OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], /* Set Top-Of-Stack */
155 OS_PROBE_TASK_PRIO, /* Lowest priority level */
156 OS_PROBE_TASK_ID,
157 &OSProbe_TaskStk[0], /* Set Bottom-Of-Stack */
158 OS_PROBE_TASK_STK_SIZE,
159 (void *)0, /* No TCB extension */
160 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */
\ 00000002 0B48 LDR.N R0,??OSProbe_InitOS_0 ;; OSProbe_TaskStk
\ 00000004 0323 MOVS R3,#+3
\ 00000006 0022 MOVS R2,#+0
\ 00000008 5FF48071 MOVS R1,#+256
\ 0000000C 0FB4 PUSH {R0-R3}
\ 0000000E 0821 MOVS R1,#+8
\ 00000010 02B4 PUSH {R1}
\ 00000012 0B46 MOV R3,R1
\ 00000014 00F2FC32 ADDW R2,R0,#+1020
\ 00000018 0021 MOVS R1,#+0
\ 0000001A 0648 LDR.N R0,??OSProbe_InitOS_0+0x4 ;; OSProbe_Task
\ 0000001C ........ _BLF OSTaskCreateExt,??OSTaskCreateExt??rT
161 #else
162 (void)OSTaskCreateExt(OSProbe_Task,
163 (void *)0, /* No arguments passed to OSProbe_Task() */
164 &OSProbe_TaskStk[0], /* Set Top-Of-Stack */
165 OS_PROBE_TASK_PRIO, /* Lowest priority level */
166 OS_PROBE_TASK_ID,
167 &OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1], /* Set Bottom-Of-Stack */
168 OS_PROBE_TASK_STK_SIZE,
169 (void *)0, /* No TCB extension */
170 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */
171 #endif
172 #else
173 #if OS_STK_GROWTH == 1
174 (void)OSTaskCreate(OSProbe_Task,
175 (void *)0,
176 &OSProbe_TaskStk[OS_PROBE_TASK_STK_SIZE - 1],
177 OS_PROBE_TASK_PRIO);
178 #else
179 (void)OSTaskCreate(OSProbe_Task,
180 (void *)0,
181 &OSProbe_TaskStk[0],
182 OS_PROBE_TASK_PRIO);
183 #endif
184 #endif
185
186 #if OS_TASK_NAME_SIZE > 20
187 OSTaskNameSet(OS_PROBE_TASK_PRIO, (INT8U *)"uC/Probe OS Plug-In", &err);
188 #else
189 #if OS_TASK_NAME_SIZE > 12
190 OSTaskNameSet(OS_PROBE_TASK_PRIO, (INT8U *)"uC/Probe OS", &err);
\ 00000020 05AA ADD R2,SP,#+20
\ 00000022 0549 LDR.N R1,??OSProbe_InitOS_0+0x8 ;; `?<Constant "uC/Probe OS">`
\ 00000024 0820 MOVS R0,#+8
\ 00000026 ........ _BLF OSTaskNameSet,??OSTaskNameSet??rT
191 #endif
192 #endif
193 }
\ 0000002A 06B0 ADD SP,SP,#+24
\ 0000002C 00BD POP {PC} ;; return
\ 0000002E 00BF Nop
\ ??OSProbe_InitOS_0:
\ 00000030 ........ DC32 OSProbe_TaskStk
\ 00000034 ........ DC32 OSProbe_Task
\ 00000038 ........ DC32 `?<Constant "uC/Probe OS">`
194 #endif
195
196
197 /*
198 *********************************************************************************************************
199 * Set Callback Function
200 *
201 * Description: This routine sets the callback function which will be invoked in OSProbe_Task()
202 *
203 * Argument(s): call_back is a pointer to the callback function.
204 *
205 * Returns : none.
206 *********************************************************************************************************
207 */
208
209 #if OS_PROBE_TASK > 0
\ In segment CODE, align 4, keep-with-next
210 void OSProbe_SetCallback (void (*call_back)(void))
211 {
212 OSProbe_CallbackFnct = call_back;
\ OSProbe_SetCallback:
\ 00000000 0149 LDR.N R1,??OSProbe_SetCallback_0 ;; OSProbe_Delay + 4
\ 00000002 0860 STR R0,[R1, #+0]
213 }
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??OSProbe_SetCallback_0:
\ 00000008 ........ DC32 OSProbe_Delay + 4
214 #endif
215
216
217 /*
218 *********************************************************************************************************
219 * Set Task Delay
220 *
221 * Description: This routine sets the delay used in OSProbe_Task()
222 *
223 * Argument(s): delay is the delay, in milliseconds.
224 *
225 * Returns : none.
226 *********************************************************************************************************
227 */
228
229 #if OS_PROBE_TASK > 0
\ In segment CODE, align 4, keep-with-next
230 void OSProbe_SetDelay (INT16U delay)
231 {
232 OSProbe_Delay = delay;
\ OSProbe_SetDelay:
\ 00000000 .... LDR.N R1,??DataTable3 ;; OSProbe_Delay
\ 00000002 0880 STRH R0,[R1, #+0]
233 }
\ 00000004 7047 BX LR ;; return
234 #endif
235
236
237 /*
238 *********************************************************************************************************
239 *********************************************************************************************************
240 ** TASK HOOKS
241 *********************************************************************************************************
242 *********************************************************************************************************
243 */
244
245 /*
246 *********************************************************************************************************
247 * uC/Probe Plug-in for uC/OS-II TASK CREATE HOOK
248 *
249 * Description: This function MUST be called by uC/OS-II's Task Create Hook function: OSTaskCreateHook().
250 *********************************************************************************************************
251 */
252
253 #if OS_PROBE_HOOKS_EN > 0
\ In segment CODE, align 4, keep-with-next
254 void OSProbe_TaskCreateHook (OS_TCB *ptcb)
255 {
\ OSProbe_TaskCreateHook:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
256 ptcb->OSTCBCyclesStart = OSProbe_TimeGetCycles(); /* Get the current start time for this task. */
\ 00000004 ........ BL OSProbe_TimeGetCycles
\ 00000008 E063 STR R0,[R4, #+60]
257 ptcb->OSTCBCyclesTot = 0; /* Update the task's total execution time */
\ 0000000A 0020 MOVS R0,#+0
\ 0000000C A063 STR R0,[R4, #+56]
258 }
\ 0000000E 10BD POP {R4,PC} ;; return
259 #endif
260
261
262 /*
263 *********************************************************************************************************
264 * uC/Probe Plug-in for uC/OS-II TASK SWITCH HOOK
265 *
266 * Description: This function MUST be called by uC/OS-II's Task Switch Hook function: OSTaskSwHook().
267 *********************************************************************************************************
268 */
269
270 #if OS_PROBE_HOOKS_EN > 0
\ In segment CODE, align 4, keep-with-next
271 void OSProbe_TaskSwHook (void)
272 {
\ OSProbe_TaskSwHook:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -