test_sema: fix initialization race

If the other tasks try to trigger a SW IRQ before MONITORTASK
has initilized it, the CPU generates an exception.

Change-Id: Id2745d728a7cf15132096585c073f85f8306cb38
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
Andrew Boie 2015-10-09 11:15:17 -07:00 committed by Anas Nashif
commit 579a490ea3
3 changed files with 18 additions and 8 deletions

View file

@ -1,12 +1,16 @@
% Application : test microkernel semaphore APIs % Application : test microkernel semaphore APIs
% TASKGROUP NAME
% =====================================================
TASKGROUP TEST
% TASK NAME PRIO ENTRY STACK GROUPS % TASK NAME PRIO ENTRY STACK GROUPS
% ===================================================== % =====================================================
TASK MONITORTASK 5 MonitorTaskEntry 2048 [EXE] TASK MONITORTASK 5 MonitorTaskEntry 2048 [EXE]
TASK tHigh 4 HighPriTaskEntry 2048 [EXE] TASK tHigh 4 HighPriTaskEntry 2048 [TEST]
TASK tStartTask 5 RegressionTaskEntry 2048 [EXE] TASK tStartTask 5 RegressionTaskEntry 2048 [TEST]
TASK tAlternate 6 AlternateTaskEntry 2048 [EXE] TASK tAlternate 6 AlternateTaskEntry 2048 [TEST]
TASK tLow 7 LowPriTaskEntry 2048 [EXE] TASK tLow 7 LowPriTaskEntry 2048 [TEST]
% SEMA NAME % SEMA NAME
% ====================== % ======================

View file

@ -252,6 +252,8 @@ void MonitorTaskEntry(void)
PRINT_DATA("Starting semaphore tests\n"); PRINT_DATA("Starting semaphore tests\n");
PRINT_LINE; PRINT_LINE;
task_group_start(TEST);
/* /*
* the various test tasks start executing automatically; * the various test tasks start executing automatically;
* wait for all tasks to complete or a failure to occur, * wait for all tasks to complete or a failure to occur,

View file

@ -3,13 +3,17 @@
% Application : test microkernel semaphore APIs % Application : test microkernel semaphore APIs
% TASKGROUP NAME
% =====================================================
TASKGROUP TEST
% TASK NAME PRIO ENTRY STACK GROUPS % TASK NAME PRIO ENTRY STACK GROUPS
% ===================================================== % =====================================================
TASK MONITORTASK 5 MonitorTaskEntry 2048 [EXE] TASK MONITORTASK 5 MonitorTaskEntry 2048 [EXE]
TASK tHigh 4 HighPriTaskEntry 2048 [EXE] TASK tHigh 4 HighPriTaskEntry 2048 [TEST]
TASK tStartTask 5 RegressionTaskEntry 2048 [EXE] TASK tStartTask 5 RegressionTaskEntry 2048 [TEST]
TASK tAlternate 6 AlternateTaskEntry 2048 [EXE] TASK tAlternate 6 AlternateTaskEntry 2048 [TEST]
TASK tLow 7 LowPriTaskEntry 2048 [EXE] TASK tLow 7 LowPriTaskEntry 2048 [TEST]
% SEMA NAME % SEMA NAME
% ====================== % ======================