📄 port.lst
字号:
170 .code 16
171 .thumb_func
173 vPortEndScheduler:
174 .LFB4:
175 .loc 1 186 0
169:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*-----------------------------------------------------------*/
170:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
171:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** portBASE_TYPE xPortStartScheduler( void )
172:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
173:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Start the timer that generates the tick ISR. Interrupts are disabled
174:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** here already. */
175:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** prvSetupTimerInterrupt();
176:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
177:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Start the first task. */
178:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** vPortISRStartFirstTask();
179:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
180:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Should not get here! */
181:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** return 0;
182:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** }
183:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*-----------------------------------------------------------*/
184:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
185:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** void vPortEndScheduler( void )
186:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
176 loc 1 189 0
177 @ sp needed for prologue
187:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* It is unlikely that the ARM port will require this function as there
188:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** is nothing to return to. */
189:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** }
178 x lr
179 .LFE4:
181 .align 2
182 .global xPortStartScheduler
183 00a6 0000 .code 16
184 .thumb_func
186 xPortStartScheduler:
187 .LFB3:
188 .loc 1 172 0
189 push {lr}
190 .LCFI0:
191 00a8 00B5 .LBB4:
192 .LBB5:
193 .loc 1 201 0
194 ldr r3, .L9
190:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*-----------------------------------------------------------*/
191:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
192:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /*
193:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** * Setup the timer 0 to generate the tick interrupts at the required frequency.
194:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** */
195:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** static void prvSetupTimerInterrupt( void )
196:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
197:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** unsigned portLONG ulCompareMatch;
198:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
199:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* A 1ms tick does not require the use of the timer prescale. This is
200:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** defaulted to zero but can be used if necessary. */
201:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** T0_PR = portPRESCALE_VALUE;
195 r2, [r3]
196 00aa 104B .loc 1 213 0
197 00ac 0022 ldr r2, .L9+4
198 00ae 1A60 add r3, r3, #12
202:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
203:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Calculate the match value required for our wanted tick rate. */
204:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** ulCompareMatch = configCPU_CLOCK_HZ / configTICK_RATE_HZ;
205:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
206:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Protect against divide by zero. Using an if() statement still results
207:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** in a warning - hence the #if. */
208:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #if portPRESCALE_VALUE != 0
209:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
210:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** ulCompareMatch /= ( portPRESCALE_VALUE + 1 );
211:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** }
212:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #endif
213:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** T0_MR0 = ulCompareMatch;
199 r2, [r3]
200 00b0 0F4A .loc 1 216 0
201 00b2 0C33 mov r2, #3
202 00b4 1A60 sub r3, r3, #4
214:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
215:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Generate tick with timer 0 compare match. */
216:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** T0_MCR = portRESET_COUNT_ON_MATCH | portINTERRUPT_ON_MATCH;
203 r2, [r3]
204 00b6 0322 .loc 1 219 0
205 00b8 043B ldr r2, .L9+8
206 00ba 1A60 ldr r3, [r2]
217:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
218:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Setup the VIC for the timer. */
219:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** VICIntSelect &= ~( portTIMER_VIC_CHANNEL_BIT );
207 r1, #16
208 00bc 0D4A bic r3, r3, r1
209 00be 1368 str r3, [r2]
210 00c0 1021 .loc 1 220 0
211 00c2 8B43 add r2, r2, #4
212 00c4 1360 ldr r3, [r2]
220:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** VICIntEnable |= portTIMER_VIC_CHANNEL_BIT;
213 3, r3, r1
214 00c6 0432 str r3, [r2]
215 00c8 1368 .loc 1 227 0
216 00ca 0B43 ldr r2, .L9+12
217 00cc 1360 ldr r3, .L9+16
221:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
222:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* The ISR installed depends on whether the preemptive or cooperative
223:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** scheduler is being used. */
224:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #if configUSE_PREEMPTION == 1
225:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
226:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** extern void ( vPreemptiveTick )( void );
227:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** VICVectAddr0 = ( portLONG ) vPreemptiveTick;
218 r2, [r3]
219 00ce 0A4A .loc 1 236 0
220 00d0 0A4B ldr r3, .L9+20
221 00d2 1A60 mov r2, #36
228:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** }
229:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #else
230:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** {
231:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** extern void ( vNonPreemptiveTick )( void );
232:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** VICVectAddr0 = ( portLONG ) vNonPreemptiveTick;
233:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** }
234:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** #endif
235:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
236:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** VICVectCntl0 = portTIMER_VIC_CHANNEL | portTIMER_VIC_ENABLE;
222 r2, [r3]
223 00d4 0A4B .loc 1 240 0
224 00d6 2422 ldr r3, .L9+24
225 00d8 1A60 mov r2, #1
237:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c ****
238:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** /* Start the timer - interrupts are disabled when this function is called
239:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** so it is okay to do this here. */
240:FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c **** T0_TCR = portENABLE_TIMER;
226 r2, [r3]
227 00da 0A4B .LBE5:
228 00dc 0122 .LBE4:
229 00de 1A60 .loc 1 178 0
230 bl vPortISRStartFirstTask
231 .loc 1 182 0
232 mov r0, #0
233 00e0 FFF7FEFF @ sp needed for prologue
234 pop {r1}
235 00e4 0020 bx r1
236 .L10:
237 00e6 02BC .align 2
238 00e8 0847 .L9:
239 .word -536854516
240 00ea 0000 .word 48000
241 .word -4084
242 00ec 0C4000E0 .word vPreemptiveTick
243 00f0 80BB0000 .word -3840
244 00f4 0CF0FFFF .word -3584
245 00f8 00000000 .word -536854524
246 00fc 00F1FFFF .LFE3:
248 0104 044000E0 .section .debug_frame,"",%progbits
249 .Lframe0:
250 .4byte .LECIE0-.LSCIE0
298 .LLST1:
DEFINED SYMBOLS
*ABS*:00000000 port.c
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:1 .text:00000000 $t
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:16 .text:00000000 pxPortInitialiseStack
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:154 .text:00000070 $d
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:174 .text:000000a4 vPortEndScheduler
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:171 .text:000000a4 $t
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:188 .text:000000a8 xPortStartScheduler
D:\DOCUME~1\PROJET~1\CONFIG~1\Temp/ccSybaaa.s:242 .text:000000ec $d
UNDEFINED SYMBOLS
vPortISRStartFirstTask
vPreemptiveTick
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -