|
79 | 79 | #define tmrSTATUS_IS_STATICALLY_ALLOCATED ( 0x02U ) |
80 | 80 | #define tmrSTATUS_IS_AUTORELOAD ( 0x04U ) |
81 | 81 |
|
| 82 | +/* |
| 83 | + * Macros to mark the start and end of a critical code region. |
| 84 | + */ |
| 85 | + #if ( portUSING_GRANULAR_LOCKS == 1 ) |
| 86 | + #define tmrENTER_CRITICAL() taskDATA_GROUP_ENTER_CRITICAL( &xTimerTaskSpinlock, &xTimerISRSpinlock ) |
| 87 | + #define tmrEXIT_CRITICAL() taskDATA_GROUP_EXIT_CRITICAL( &xTimerTaskSpinlock, &xTimerISRSpinlock ) |
| 88 | + #else /* #if ( portUSING_GRANULAR_LOCKS == 1 ) */ |
| 89 | + #define tmrENTER_CRITICAL() taskENTER_CRITICAL() |
| 90 | + #define tmrEXIT_CRITICAL() taskEXIT_CRITICAL() |
| 91 | + #endif /* #if ( portUSING_GRANULAR_LOCKS == 1 ) */ |
| 92 | + |
82 | 93 | /* The definition of the timers themselves. */ |
83 | 94 | typedef struct tmrTimerControl /* The old naming convention is used to prevent breaking kernel aware debuggers. */ |
84 | 95 | { |
|
582 | 593 | traceENTER_vTimerSetReloadMode( xTimer, xAutoReload ); |
583 | 594 |
|
584 | 595 | configASSERT( xTimer ); |
585 | | - taskENTER_CRITICAL(); |
| 596 | + tmrENTER_CRITICAL(); |
586 | 597 | { |
587 | 598 | if( xAutoReload != pdFALSE ) |
588 | 599 | { |
|
593 | 604 | pxTimer->ucStatus &= ( ( uint8_t ) ~tmrSTATUS_IS_AUTORELOAD ); |
594 | 605 | } |
595 | 606 | } |
596 | | - taskEXIT_CRITICAL(); |
| 607 | + tmrEXIT_CRITICAL(); |
597 | 608 |
|
598 | 609 | traceRETURN_vTimerSetReloadMode(); |
599 | 610 | } |
|
607 | 618 | traceENTER_xTimerGetReloadMode( xTimer ); |
608 | 619 |
|
609 | 620 | configASSERT( xTimer ); |
610 | | - portBASE_TYPE_ENTER_CRITICAL(); |
| 621 | + #if ( ( configNUMBER_OF_CORES > 1 ) ) |
| 622 | + { |
| 623 | + tmrENTER_CRITICAL(); |
| 624 | + } |
| 625 | + #else |
| 626 | + { |
| 627 | + portBASE_TYPE_ENTER_CRITICAL(); |
| 628 | + } |
| 629 | + #endif |
611 | 630 | { |
612 | 631 | if( ( pxTimer->ucStatus & tmrSTATUS_IS_AUTORELOAD ) == 0U ) |
613 | 632 | { |
|
620 | 639 | xReturn = pdTRUE; |
621 | 640 | } |
622 | 641 | } |
623 | | - portBASE_TYPE_EXIT_CRITICAL(); |
| 642 | + #if ( ( configNUMBER_OF_CORES > 1 ) ) |
| 643 | + { |
| 644 | + tmrEXIT_CRITICAL(); |
| 645 | + } |
| 646 | + #else |
| 647 | + { |
| 648 | + portBASE_TYPE_EXIT_CRITICAL(); |
| 649 | + } |
| 650 | + #endif |
624 | 651 |
|
625 | 652 | traceRETURN_xTimerGetReloadMode( xReturn ); |
626 | 653 |
|
|
1126 | 1153 | /* Check that the list from which active timers are referenced, and the |
1127 | 1154 | * queue used to communicate with the timer service, have been |
1128 | 1155 | * initialised. */ |
1129 | | - taskENTER_CRITICAL(); |
| 1156 | + tmrENTER_CRITICAL(); |
1130 | 1157 | { |
1131 | 1158 | if( xTimerQueue == NULL ) |
1132 | 1159 | { |
|
1168 | 1195 | mtCOVERAGE_TEST_MARKER(); |
1169 | 1196 | } |
1170 | 1197 | } |
1171 | | - taskEXIT_CRITICAL(); |
| 1198 | + tmrEXIT_CRITICAL(); |
1172 | 1199 | } |
1173 | 1200 | /*-----------------------------------------------------------*/ |
1174 | 1201 |
|
|
1182 | 1209 | configASSERT( xTimer ); |
1183 | 1210 |
|
1184 | 1211 | /* Is the timer in the list of active timers? */ |
1185 | | - portBASE_TYPE_ENTER_CRITICAL(); |
| 1212 | + #if ( ( configNUMBER_OF_CORES > 1 ) ) |
| 1213 | + { |
| 1214 | + tmrENTER_CRITICAL(); |
| 1215 | + } |
| 1216 | + #else |
| 1217 | + { |
| 1218 | + portBASE_TYPE_ENTER_CRITICAL(); |
| 1219 | + } |
| 1220 | + #endif |
1186 | 1221 | { |
1187 | 1222 | if( ( pxTimer->ucStatus & tmrSTATUS_IS_ACTIVE ) == 0U ) |
1188 | 1223 | { |
|
1193 | 1228 | xReturn = pdTRUE; |
1194 | 1229 | } |
1195 | 1230 | } |
1196 | | - portBASE_TYPE_EXIT_CRITICAL(); |
| 1231 | + #if ( ( configNUMBER_OF_CORES > 1 ) ) |
| 1232 | + { |
| 1233 | + tmrEXIT_CRITICAL(); |
| 1234 | + } |
| 1235 | + #else |
| 1236 | + { |
| 1237 | + portBASE_TYPE_EXIT_CRITICAL(); |
| 1238 | + } |
| 1239 | + #endif |
1197 | 1240 |
|
1198 | 1241 | traceRETURN_xTimerIsTimerActive( xReturn ); |
1199 | 1242 |
|
|
1210 | 1253 |
|
1211 | 1254 | configASSERT( xTimer ); |
1212 | 1255 |
|
1213 | | - taskENTER_CRITICAL(); |
| 1256 | + tmrENTER_CRITICAL(); |
1214 | 1257 | { |
1215 | 1258 | pvReturn = pxTimer->pvTimerID; |
1216 | 1259 | } |
1217 | | - taskEXIT_CRITICAL(); |
| 1260 | + tmrEXIT_CRITICAL(); |
1218 | 1261 |
|
1219 | 1262 | traceRETURN_pvTimerGetTimerID( pvReturn ); |
1220 | 1263 |
|
|
1231 | 1274 |
|
1232 | 1275 | configASSERT( xTimer ); |
1233 | 1276 |
|
1234 | | - taskENTER_CRITICAL(); |
| 1277 | + tmrENTER_CRITICAL(); |
1235 | 1278 | { |
1236 | 1279 | pxTimer->pvTimerID = pvNewID; |
1237 | 1280 | } |
1238 | | - taskEXIT_CRITICAL(); |
| 1281 | + tmrEXIT_CRITICAL(); |
1239 | 1282 |
|
1240 | 1283 | traceRETURN_vTimerSetTimerID(); |
1241 | 1284 | } |
|
0 commit comments