📄 os_view.lst
字号:
72 #if OS_SEM_EN > 0
\ In segment DATA_Z, align 4, align-sorted
73 static OS_EVENT *OSView_Sem;
\ OSView_Sem:
\ 00000000 DS8 4
74 #endif
75
76 #endif
77
78
79 /*
80 *********************************************************************************************************
81 * LOCAL FUNCTION PROTOTYPES
82 *********************************************************************************************************
83 */
84
85 #if OS_VIEW_PARSE_TASK > 0
86 static void OSView_InitOS(void);
87 static void OSView_Task(void *p_arg);
88 #endif
89
90 static INT8U OSView_CmdParsePkt(void);
91 static void OSView_CmdSendToApp(void);
92 static void OSView_CmdGetSysInfo(void);
93 static void OSView_CmdGetTaskList(void);
94 static void OSView_CmdGetTaskInfo(void);
95 static void OSView_CmdGetTaskInfo_InvalidTask(void);
96 static INT8U OSView_CmdGetTaskInfo_TCBStat(OS_TCB *ptcb);
97 static void OSView_CmdMemRdINT8U(void);
98 static void OSView_CmdMemRdINT16U(void);
99 static void OSView_CmdMemRdINT32U(void);
100 static void OSView_CmdMemWrINT8U(void);
101 static void OSView_CmdMemWrINT16U(void);
102 static void OSView_CmdMemWrINT32U(void);
103 static void OSView_CmdTickStep(void);
104 static void OSView_CmdTrace(void);
105
106 static void OSView_RxPkt(void);
107 static void OSView_RxStoINT8U(INT8U rx_data);
108 static void OSView_RxBufClr(void);
109 static INT8U OSView_RxGetINT8U(void);
110 static INT16U OSView_RxGetINT16U(void);
111 static INT32U OSView_RxGetINT32U(void);
112
113 static void OSView_TxStart(void);
114 static void OSView_TxStoINT8U(INT8U tx_data);
115 static void OSView_TxStoINT16U(INT16U tx_data);
116 static void OSView_TxStoINT32U(INT32U tx_data);
117 static void OSView_TxStoPtr(void *ptr);
118 static void OSView_TxStoStr(INT8U *s, int max_len);
119
120 /*$PAGE*/
121 /*
122 *********************************************************************************************************
123 * INITIALIZE uC/OS-View
124 *********************************************************************************************************
125 */
126
\ In segment CODE, align 4, keep-with-next
127 void OSView_Init (INT32U baud_rate)
128 {
\ OSView_Init:
\ 00000000 10402DE9 PUSH {R4,LR}
\ 00000004 0040B0E1 MOVS R4,R0
129 #if OS_TICK_STEP_EN > 0
130 OSTickStepState = OS_TICK_STEP_DIS; /* Disable the tick stepping mode */
\ 00000008 ........ LDR R0,??DataTable29 ;; OSTickStepState
\ 0000000C 0010A0E3 MOV R1,#+0
\ 00000010 0010C0E5 STRB R1,[R0, #+0]
131 #endif
132
133 OSView_CyclesCtr = 0;
\ 00000014 ........ LDR R0,??DataTable19 ;; OSView_CyclesCtr
\ 00000018 0010A0E3 MOV R1,#+0
\ 0000001C 001080E5 STR R1,[R0, #+0]
134
135 OSView_RxState = OS_VIEW_RX_STATE_SD0; /* Setup Rx and Tx state machines */
\ 00000020 ........ LDR R0,??DataTable40 ;; OSView_RxState
\ 00000024 0010A0E3 MOV R1,#+0
\ 00000028 0010C0E5 STRB R1,[R0, #+0]
136 OSView_TxState = OS_VIEW_TX_STATE_SD0;
\ 0000002C ........ LDR R0,??DataTable3 ;; OSView_TxState
\ 00000030 0010A0E3 MOV R1,#+0
\ 00000034 0010C0E5 STRB R1,[R0, #+0]
137
138 OSView_TxLen = 0;
\ 00000038 ........ LDR R0,??DataTable11 ;; OSView_TxLen
\ 0000003C 0010A0E3 MOV R1,#+0
\ 00000040 B010C0E1 STRH R1,[R0, #+0]
139 OSView_TxStrLen = 0;
\ 00000044 ........ LDR R0,??DataTable60 ;; OSView_TxStrLen
\ 00000048 0010A0E3 MOV R1,#+0
\ 0000004C B010C0E1 STRH R1,[R0, #+0]
140 OSView_TxActiveFlag = OS_FALSE;
\ 00000050 ........ LDR R0,??DataTable61 ;; OSView_TxActiveFlag
\ 00000054 0010A0E3 MOV R1,#+0
\ 00000058 0010C0E5 STRB R1,[R0, #+0]
141
142 OSView_TerminalRxSetCallback((void (*)(INT8U))0); /* Force terminal callback function to 'nothing' */
\ 0000005C 0000A0E3 MOV R0,#+0
\ 00000060 ........ BL OSView_TerminalRxSetCallback
143
144 OSView_TmrCntsPrev = 0;
\ 00000064 ........ LDR R0,??DataTable16 ;; OSView_TmrCntsPrev
\ 00000068 0010A0E3 MOV R1,#+0
\ 0000006C 001080E5 STR R1,[R0, #+0]
145
146 #if OS_VIEW_PARSE_TASK > 0
147 OSView_InitOS();
\ 00000070 ........ BL OSView_InitOS
148 #endif
149
150 OSView_InitTarget(baud_rate); /* Initialize target specific code */
\ 00000074 0400B0E1 MOVS R0,R4
\ 00000078 ........ _BLF OSView_InitTarget,??OSView_InitTarget??rA
151 }
\ 0000007C 1080BDE8 POP {R4,PC} ;; return
152
153 /*$PAGE*/
154 /*
155 *********************************************************************************************************
156 * INITIALIZE THE uC/OS-View TASK AND OS OBJECTS
157 *********************************************************************************************************
158 */
159
160 #if OS_VIEW_PARSE_TASK > 0
\ In segment CODE, align 4, keep-with-next
161 static void OSView_InitOS (void)
162 {
\ OSView_InitOS:
\ 00000000 00402DE9 PUSH {LR}
\ 00000004 04D04DE2 SUB SP,SP,#+4
163 #if OS_TASK_NAME_SIZE > 7 || OS_EVENT_NAME_SIZE > 7
164 INT8U err;
165 #endif
166
167
168 #if OS_SEM_EN > 0
169 OSView_Sem = OSSemCreate(0);
\ 00000008 0000A0E3 MOV R0,#+0
\ 0000000C ........ _BLF OSSemCreate,??OSSemCreate??rA
\ 00000010 ........ LDR R1,??DataTable41 ;; OSView_Sem
\ 00000014 000081E5 STR R0,[R1, #+0]
170 #if OS_EVENT_NAME_SIZE > 17
171 OSEventNameSet(OSView_Sem, (INT8U *)"uC/OS-View Signal", &err);
172 #else
173 #if OS_EVENT_NAME_SIZE > 7
174 OSEventNameSet(OSView_Sem, (INT8U *)"OS-View", &err);
\ 00000018 0D20B0E1 MOVS R2,SP
\ 0000001C 60109FE5 LDR R1,??OSView_InitOS_0 ;; `?<Constant "OS-View">`
\ 00000020 ........ LDR R0,??DataTable41 ;; OSView_Sem
\ 00000024 000090E5 LDR R0,[R0, #+0]
\ 00000028 ........ _BLF OSEventNameSet,??OSEventNameSet??rA
175 #endif
176 #endif
177 #endif
178
179 #if OS_TASK_CREATE_EXT_EN > 0
180 #if OS_STK_GROWTH == 1
181 (void)OSTaskCreateExt(OSView_Task,
182 (void *)0, /* No arguments passed to OSView_Task() */
183 &OSView_TaskStk[OS_VIEW_TASK_STK_SIZE - 1], /* Set Top-Of-Stack */
184 OS_VIEW_TASK_PRIO, /* Lowest priority level */
185 OS_VIEW_TASK_ID,
186 &OSView_TaskStk[0], /* Set Bottom-Of-Stack */
187 OS_VIEW_TASK_STK_SIZE,
188 (void *)0, /* No TCB extension */
189 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */
\ 0000002C 0300A0E3 MOV R0,#+3
\ 00000030 01002DE9 PUSH {R0}
\ 00000034 0000A0E3 MOV R0,#+0
\ 00000038 01002DE9 PUSH {R0}
\ 0000003C 800FA0E3 MOV R0,#+512
\ 00000040 01002DE9 PUSH {R0}
\ 00000044 3C009FE5 LDR R0,??OSView_InitOS_0+0x4 ;; OSView_TaskStk
\ 00000048 01002DE9 PUSH {R0}
\ 0000004C 0300A0E3 MOV R0,#+3
\ 00000050 01002DE9 PUSH {R0}
\ 00000054 0330A0E3 MOV R3,#+3
\ 00000058 2C209FE5 LDR R2,??OSView_InitOS_0+0x8 ;; OSView_TaskStk + 2044
\ 0000005C 0010A0E3 MOV R1,#+0
\ 00000060 28009FE5 LDR R0,??OSView_InitOS_0+0xC ;; OSView_Task
\ 00000064 ........ _BLF OSTaskCreateExt,??OSTaskCreateExt??rA
\ 00000068 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning
190 #else
191 (void)OSTaskCreateExt(OSView_Task,
192 (void *)0, /* No arguments passed to OSView_Task() */
193 &OSView_TaskStk[0], /* Set Top-Of-Stack */
194 OS_VIEW_TASK_PRIO, /* Lowest priority level */
195 OS_VIEW_TASK_ID,
196 &OSView_TaskStk[OS_VIEW_TASK_STK_SIZE - 1], /* Set Bottom-Of-Stack */
197 OS_VIEW_TASK_STK_SIZE,
198 (void *)0, /* No TCB extension */
199 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* Enable stack checking + clear stack */
200 #endif
201 #else
202 #if OS_STK_GROWTH == 1
203 (void)OSTaskCreate(OSView_Task,
204 (void *)0,
205 &OSView_TaskStk[OS_VIEW_TASK_STK_SIZE - 1],
206 OS_VIEW_TASK_PRIO);
207 #else
208 (void)OSTaskCreate(OSView_Task,
209 (void *)0,
210 &OSView_TaskStk[0],
211 OS_VIEW_TASK_PRIO);
212 #endif
213 #endif
214
215 #if OS_TASK_NAME_SIZE > 10
216 OSTaskNameSet(OS_VIEW_TASK_PRIO, (INT8U *)"uC/OS-View", &err);
\ 0000006C 0D20B0E1 MOVS R2,SP
\ 00000070 1C109FE5 LDR R1,??OSView_InitOS_0+0x10 ;; `?<Constant "uC/OS-View">`
\ 00000074 0300A0E3 MOV R0,#+3
\ 00000078 ........ _BLF OSTaskNameSet,??OSTaskNameSet??rA
217 #else
218 #if OS_TASK_NAME_SIZE > 7
219 OSTaskNameSet(OS_VIEW_TASK_PRIO, (INT8U *)"OS-View", &err);
220 #endif
221 #endif
222 }
\ 0000007C 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning
\ 00000080 0080BDE8 POP {PC} ;; return
\ ??OSView_InitOS_0:
\ 00000084 ........ DC32 `?<Constant "OS-View">`
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -