Add in the configUSE_APPLICATION_TASK_HOOK macro.

This commit is contained in:
Richard Barry 2008-04-12 09:50:30 +00:00
parent a9ed428422
commit af939eb0a9
4 changed files with 83 additions and 71 deletions

View file

@ -79,6 +79,7 @@
#define configUSE_ALTERNATIVE_API 1 #define configUSE_ALTERNATIVE_API 1
#define configUSE_RECURSIVE_MUTEXES 1 #define configUSE_RECURSIVE_MUTEXES 1
#define configCHECK_FOR_STACK_OVERFLOW 0 /* Do not use this option on the PC port. */ #define configCHECK_FOR_STACK_OVERFLOW 0 /* Do not use this option on the PC port. */
#define configUSE_APPLICATION_TASK_HOOK 1
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 10 ) #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 10 )
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

View file

@ -75,7 +75,7 @@ WVList
0 0
19 19
WPickList WPickList
64 65
20 20
MItem MItem
3 3
@ -1012,8 +1012,8 @@ WVList
0 0
236 236
MItem MItem
27 31
..\..\source\include\list.h ..\..\SOURCE\INCLUDE\FreeRTOS.h
237 237
WString WString
3 3
@ -1030,8 +1030,8 @@ WVList
0 0
240 240
MItem MItem
31 27
..\..\source\include\portable.h ..\..\source\include\list.h
241 241
WString WString
3 3
@ -1049,7 +1049,7 @@ WVList
244 244
MItem MItem
31 31
..\..\source\include\projdefs.h ..\..\source\include\portable.h
245 245
WString WString
3 3
@ -1066,8 +1066,8 @@ WVList
0 0
248 248
MItem MItem
28 31
..\..\source\include\queue.h ..\..\source\include\projdefs.h
249 249
WString WString
3 3
@ -1084,8 +1084,8 @@ WVList
0 0
252 252
MItem MItem
29 28
..\..\source\include\semphr.h ..\..\source\include\queue.h
253 253
WString WString
3 3
@ -1102,8 +1102,8 @@ WVList
0 0
256 256
MItem MItem
27 29
..\..\source\include\task.h ..\..\source\include\semphr.h
257 257
WString WString
3 3
@ -1120,8 +1120,8 @@ WVList
0 0
260 260
MItem MItem
55 27
..\..\source\portable\owatcom\16bitdos\common\portasm.h ..\..\source\include\task.h
261 261
WString WString
3 3
@ -1138,8 +1138,8 @@ WVList
0 0
264 264
MItem MItem
53 55
..\..\source\portable\owatcom\16bitdos\pc\portmacro.h ..\..\source\portable\owatcom\16bitdos\common\portasm.h
265 265
WString WString
3 3
@ -1156,8 +1156,8 @@ WVList
0 0
268 268
MItem MItem
28 53
..\COMMON\INCLUDE\AltBlckQ.h ..\..\source\portable\owatcom\16bitdos\pc\portmacro.h
269 269
WString WString
3 3
@ -1175,7 +1175,7 @@ WVList
272 272
MItem MItem
28 28
..\COMMON\INCLUDE\AltBlock.h ..\COMMON\INCLUDE\AltBlckQ.h
273 273
WString WString
3 3
@ -1193,7 +1193,7 @@ WVList
276 276
MItem MItem
28 28
..\COMMON\INCLUDE\AltPollQ.h ..\COMMON\INCLUDE\AltBlock.h
277 277
WString WString
3 3
@ -1211,7 +1211,7 @@ WVList
280 280
MItem MItem
28 28
..\COMMON\INCLUDE\AltQTest.h ..\COMMON\INCLUDE\AltPollQ.h
281 281
WString WString
3 3
@ -1228,8 +1228,8 @@ WVList
0 0
284 284
MItem MItem
26 28
..\common\include\blockq.h ..\COMMON\INCLUDE\AltQTest.h
285 285
WString WString
3 3
@ -1246,8 +1246,8 @@ WVList
0 0
288 288
MItem MItem
28 26
..\COMMON\INCLUDE\blocktim.h ..\common\include\blockq.h
289 289
WString WString
3 3
@ -1264,8 +1264,8 @@ WVList
0 0
292 292
MItem MItem
27 28
..\common\include\comtest.h ..\COMMON\INCLUDE\blocktim.h
293 293
WString WString
3 3
@ -1282,8 +1282,8 @@ WVList
0 0
296 296
MItem MItem
28 27
..\COMMON\INCLUDE\countsem.h ..\common\include\comtest.h
297 297
WString WString
3 3
@ -1300,8 +1300,8 @@ WVList
0 0
300 300
MItem MItem
26 28
..\COMMON\INCLUDE\crhook.h ..\COMMON\INCLUDE\countsem.h
301 301
WString WString
3 3
@ -1318,8 +1318,8 @@ WVList
0 0
304 304
MItem MItem
25 26
..\common\include\death.h ..\COMMON\INCLUDE\crhook.h
305 305
WString WString
3 3
@ -1336,8 +1336,8 @@ WVList
0 0
308 308
MItem MItem
27 25
..\COMMON\INCLUDE\dynamic.h ..\common\include\death.h
309 309
WString WString
3 3
@ -1354,8 +1354,8 @@ WVList
0 0
312 312
MItem MItem
26 27
..\common\include\fileio.h ..\COMMON\INCLUDE\dynamic.h
313 313
WString WString
3 3
@ -1372,8 +1372,8 @@ WVList
0 0
316 316
MItem MItem
25 26
..\common\include\flash.h ..\common\include\fileio.h
317 317
WString WString
3 3
@ -1390,8 +1390,8 @@ WVList
0 0
320 320
MItem MItem
24 25
..\common\include\flop.h ..\common\include\flash.h
321 321
WString WString
3 3
@ -1408,8 +1408,8 @@ WVList
0 0
324 324
MItem MItem
28 24
..\COMMON\INCLUDE\GenQTest.h ..\common\include\flop.h
325 325
WString WString
3 3
@ -1426,8 +1426,8 @@ WVList
0 0
328 328
MItem MItem
27 28
..\common\include\partest.h ..\COMMON\INCLUDE\GenQTest.h
329 329
WString WString
3 3
@ -1444,8 +1444,8 @@ WVList
0 0
332 332
MItem MItem
25 27
..\common\include\pollq.h ..\common\include\partest.h
333 333
WString WString
3 3
@ -1463,7 +1463,7 @@ WVList
336 336
MItem MItem
25 25
..\common\include\print.h ..\common\include\pollq.h
337 337
WString WString
3 3
@ -1480,8 +1480,8 @@ WVList
0 0
340 340
MItem MItem
27 25
..\common\include\semtest.h ..\common\include\print.h
341 341
WString WString
3 3
@ -1498,8 +1498,8 @@ WVList
0 0
344 344
MItem MItem
26 27
..\common\include\serial.h ..\common\include\semtest.h
345 345
WString WString
3 3
@ -1516,8 +1516,8 @@ WVList
0 0
348 348
MItem MItem
16 26
FreeRTOSConfig.h ..\common\include\serial.h
349 349
WString WString
3 3
@ -1532,3 +1532,21 @@ WVList
1 1
1 1
0 0
352
MItem
16
FreeRTOSConfig.h
353
WString
3
NIL
354
WVList
0
355
WVList
0
228
1
1
0

View file

@ -6,7 +6,7 @@ VpeMain
WRect WRect
0 0
0 0
6202 6195
7168 7168
2 2
MProject MProject
@ -38,6 +38,6 @@ WRect
WFileName WFileName
12 12
rtosdemo.tgt rtosdemo.tgt
6 0
63 7
7 7

View file

@ -513,7 +513,7 @@ static portSHORT sComPortISR( const xComPort * const pxPort )
{ {
portSHORT sInterruptID; portSHORT sInterruptID;
portCHAR cIn, cOut; portCHAR cIn, cOut;
portBASE_TYPE xTaskWokenByPost = pdFALSE, xAnotherTaskWokenByPost = pdFALSE, xTaskWokenByTx = pdFALSE; portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
extern void vComTestUnsuspendTask( void ); extern void vComTestUnsuspendTask( void );
portOUTPUT_BYTE( pxPort->us8259InterruptMaskReg, ( portINPUT_BYTE( pxPort->us8259InterruptMaskReg) | ~pxPort->ucInterruptEnableMast ) ); portOUTPUT_BYTE( pxPort->us8259InterruptMaskReg, ( portINPUT_BYTE( pxPort->us8259InterruptMaskReg) | ~pxPort->ucInterruptEnableMast ) );
@ -536,13 +536,13 @@ extern void vComTestUnsuspendTask( void );
do do
{ {
cIn = ( portCHAR ) portINPUT_BYTE( pxPort->usReceiveDataRegister ); cIn = ( portCHAR ) portINPUT_BYTE( pxPort->usReceiveDataRegister );
xTaskWokenByPost = xQueueSendFromISR( pxPort->xRxedChars, &cIn, xTaskWokenByPost ); xQueueSendFromISR( pxPort->xRxedChars, &cIn, &xHigherPriorityTaskWoken );
/* Also release the semaphore - this does nothing interesting and is just a test. /* Also release the semaphore - this does nothing interesting and is just a test.
We first attempt to unsuspend the task to check the scheduler correctely detects We first attempt to unsuspend the task to check the scheduler correctely detects
this as an invalid call, then give the semaphore for real. */ this as an invalid call, then give the semaphore for real. */
vComTestUnsuspendTask(); vComTestUnsuspendTask();
xAnotherTaskWokenByPost = xSemaphoreGiveFromISR( pxPort->xTestSem, xAnotherTaskWokenByPost ); xSemaphoreGiveFromISR( pxPort->xTestSem, &xHigherPriorityTaskWoken );
} while( portINPUT_BYTE( pxPort->usLineStatusReg ) & 0x01 ); } while( portINPUT_BYTE( pxPort->usLineStatusReg ) & 0x01 );
break; break;
@ -559,19 +559,19 @@ extern void vComTestUnsuspendTask( void );
do do
{ {
cIn = ( portCHAR ) portINPUT_BYTE( pxPort->usReceiveDataRegister ); cIn = ( portCHAR ) portINPUT_BYTE( pxPort->usReceiveDataRegister );
xTaskWokenByPost = xQueueSendFromISR( pxPort->xRxedChars, &cIn, xTaskWokenByPost ); xQueueSendFromISR( pxPort->xRxedChars, &cIn, &xHigherPriorityTaskWoken );
/* Also release the semaphore - this does nothing interesting and is just a test. /* Also release the semaphore - this does nothing interesting and is just a test.
We first attempt to unsuspend the task to check the scheduler correctely detects We first attempt to unsuspend the task to check the scheduler correctely detects
this as an invalid call, then give the semaphore for real. */ this as an invalid call, then give the semaphore for real. */
vComTestUnsuspendTask(); vComTestUnsuspendTask();
xAnotherTaskWokenByPost = xSemaphoreGiveFromISR( pxPort->xTestSem, xAnotherTaskWokenByPost ); xSemaphoreGiveFromISR( pxPort->xTestSem, &xHigherPriorityTaskWoken );
} while( portINPUT_BYTE( pxPort->usLineStatusReg ) & 0x01 ); } while( portINPUT_BYTE( pxPort->usLineStatusReg ) & 0x01 );
break; break;
case 0x02: /* serTRANSMIT_HOLD_EMPTY_INT */ case 0x02: /* serTRANSMIT_HOLD_EMPTY_INT */
if( xQueueReceiveFromISR( pxPort->xCharsForTx, &cOut, &xTaskWokenByTx ) != pdTRUE ) if( xQueueReceiveFromISR( pxPort->xCharsForTx, &cOut, &xHigherPriorityTaskWoken ) != pdTRUE )
{ {
/* Queue empty, nothing to send */ /* Queue empty, nothing to send */
vInterruptOff( pxPort, serTRANSMIT_HOLD_EMPTY_INT); vInterruptOff( pxPort, serTRANSMIT_HOLD_EMPTY_INT);
@ -607,14 +607,7 @@ extern void vComTestUnsuspendTask( void );
/* If posting any of the characters to a queue woke a task that was blocked on /* If posting any of the characters to a queue woke a task that was blocked on
the queue we may want to return to the task just woken (depending on its the queue we may want to return to the task just woken (depending on its
priority relative to the task this ISR interrupted. */ priority relative to the task this ISR interrupted. */
if( xTaskWokenByPost || xAnotherTaskWokenByPost || xTaskWokenByTx ) return xHigherPriorityTaskWoken;
{
return pdTRUE;
}
else
{
return pdFALSE;
}
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/