FRDM K64F Metronome

Committer:
ram54288
Date:
Sun May 14 18:35:07 2017 +0000
Revision:
0:a2cb7295a1f7
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ram54288 0:a2cb7295a1f7 1 /*
ram54288 0:a2cb7295a1f7 2 * Copyright (c) 2016 ARM Limited. All rights reserved.
ram54288 0:a2cb7295a1f7 3 * SPDX-License-Identifier: Apache-2.0
ram54288 0:a2cb7295a1f7 4 * Licensed under the Apache License, Version 2.0 (the License); you may
ram54288 0:a2cb7295a1f7 5 * not use this file except in compliance with the License.
ram54288 0:a2cb7295a1f7 6 * You may obtain a copy of the License at
ram54288 0:a2cb7295a1f7 7 *
ram54288 0:a2cb7295a1f7 8 * http://www.apache.org/licenses/LICENSE-2.0
ram54288 0:a2cb7295a1f7 9 *
ram54288 0:a2cb7295a1f7 10 * Unless required by applicable law or agreed to in writing, software
ram54288 0:a2cb7295a1f7 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
ram54288 0:a2cb7295a1f7 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ram54288 0:a2cb7295a1f7 13 * See the License for the specific language governing permissions and
ram54288 0:a2cb7295a1f7 14 * limitations under the License.
ram54288 0:a2cb7295a1f7 15 */
ram54288 0:a2cb7295a1f7 16
ram54288 0:a2cb7295a1f7 17 #include "pal_rtos_test_utils.h"
ram54288 0:a2cb7295a1f7 18 #include "pal_rtos.h"
ram54288 0:a2cb7295a1f7 19 #include "unity_fixture.h"
ram54288 0:a2cb7295a1f7 20
ram54288 0:a2cb7295a1f7 21 #include "pal.h"
ram54288 0:a2cb7295a1f7 22
ram54288 0:a2cb7295a1f7 23 threadsArgument_t threadsArg;
ram54288 0:a2cb7295a1f7 24 timerArgument_t timerArgs;
ram54288 0:a2cb7295a1f7 25
ram54288 0:a2cb7295a1f7 26 void palThreadFunc1(void const *argument)
ram54288 0:a2cb7295a1f7 27 {
ram54288 0:a2cb7295a1f7 28 palThreadID_t threadID = 10;
ram54288 0:a2cb7295a1f7 29 uint32_t* threadStorage = NULL;
ram54288 0:a2cb7295a1f7 30 threadsArgument_t *tmp = (threadsArgument_t*)argument;
ram54288 0:a2cb7295a1f7 31 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 32 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 33 TEST_PRINTF("palThreadFunc1::before mutex\n");
ram54288 0:a2cb7295a1f7 34 status = pal_osMutexWait(mutex1, 100);
ram54288 0:a2cb7295a1f7 35 TEST_PRINTF("palThreadFunc1::after mutex: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 36 TEST_PRINTF("palThreadFunc1::after mutex (expected): 0x%08x\n", PAL_ERR_RTOS_TIMEOUT);
ram54288 0:a2cb7295a1f7 37 TEST_ASSERT_EQUAL(PAL_ERR_RTOS_TIMEOUT, status);
ram54288 0:a2cb7295a1f7 38 return; // for Mutex scenario, this should end here
ram54288 0:a2cb7295a1f7 39 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 40
ram54288 0:a2cb7295a1f7 41 tmp->arg1 = 10;
ram54288 0:a2cb7295a1f7 42
ram54288 0:a2cb7295a1f7 43 threadID = pal_osThreadGetId();
ram54288 0:a2cb7295a1f7 44 TEST_PRINTF("palThreadFunc1::Thread ID is %d\n", threadID);
ram54288 0:a2cb7295a1f7 45
ram54288 0:a2cb7295a1f7 46 threadStorage = pal_osThreadGetLocalStore();
ram54288 0:a2cb7295a1f7 47 if (threadStorage == g_threadStorage)
ram54288 0:a2cb7295a1f7 48 {
ram54288 0:a2cb7295a1f7 49 TEST_PRINTF("Thread storage updated as expected\n");
ram54288 0:a2cb7295a1f7 50 }
ram54288 0:a2cb7295a1f7 51 TEST_ASSERT_EQUAL(threadStorage, g_threadStorage);
ram54288 0:a2cb7295a1f7 52 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 53 status = pal_osMutexRelease(mutex1);
ram54288 0:a2cb7295a1f7 54 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 55 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 56 TEST_PRINTF("palThreadFunc1::STAAAAM\n");
ram54288 0:a2cb7295a1f7 57
ram54288 0:a2cb7295a1f7 58 }
ram54288 0:a2cb7295a1f7 59
ram54288 0:a2cb7295a1f7 60 void palThreadFunc2(void const *argument)
ram54288 0:a2cb7295a1f7 61 {
ram54288 0:a2cb7295a1f7 62
ram54288 0:a2cb7295a1f7 63 palThreadID_t threadID = 10;
ram54288 0:a2cb7295a1f7 64 threadsArgument_t *tmp = (threadsArgument_t*)argument;
ram54288 0:a2cb7295a1f7 65 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 66 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 67 TEST_PRINTF("palThreadFunc2::before mutex\n");
ram54288 0:a2cb7295a1f7 68 status = pal_osMutexWait(mutex2, 300);
ram54288 0:a2cb7295a1f7 69 TEST_PRINTF("palThreadFunc2::after mutex: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 70 TEST_PRINTF("palThreadFunc2::after mutex (expected): 0x%08x\n", PAL_SUCCESS);
ram54288 0:a2cb7295a1f7 71 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 72 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 73
ram54288 0:a2cb7295a1f7 74 tmp->arg2 = 20;
ram54288 0:a2cb7295a1f7 75
ram54288 0:a2cb7295a1f7 76 threadID = pal_osThreadGetId();
ram54288 0:a2cb7295a1f7 77 TEST_PRINTF("palThreadFunc2::Thread ID is %d\n", threadID);
ram54288 0:a2cb7295a1f7 78 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 79 status = pal_osMutexRelease(mutex2);
ram54288 0:a2cb7295a1f7 80 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 81 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 82 TEST_PRINTF("palThreadFunc2::STAAAAM\n");
ram54288 0:a2cb7295a1f7 83 }
ram54288 0:a2cb7295a1f7 84
ram54288 0:a2cb7295a1f7 85 void palThreadFunc3(void const *argument)
ram54288 0:a2cb7295a1f7 86 {
ram54288 0:a2cb7295a1f7 87
ram54288 0:a2cb7295a1f7 88 palThreadID_t threadID = 10;
ram54288 0:a2cb7295a1f7 89 threadsArgument_t *tmp = (threadsArgument_t*)argument;
ram54288 0:a2cb7295a1f7 90
ram54288 0:a2cb7295a1f7 91 #ifdef SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 92 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 93 uint32_t semaphoresAvailable = 10;
ram54288 0:a2cb7295a1f7 94 status = pal_osSemaphoreWait(semaphore1, 200, &semaphoresAvailable);
ram54288 0:a2cb7295a1f7 95
ram54288 0:a2cb7295a1f7 96 if (PAL_SUCCESS == status)
ram54288 0:a2cb7295a1f7 97 {
ram54288 0:a2cb7295a1f7 98 TEST_PRINTF("palThreadFunc3::semaphoresAvailable: %d\n", semaphoresAvailable);
ram54288 0:a2cb7295a1f7 99 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 100 }
ram54288 0:a2cb7295a1f7 101 else if(PAL_ERR_RTOS_TIMEOUT == status)
ram54288 0:a2cb7295a1f7 102 {
ram54288 0:a2cb7295a1f7 103 TEST_PRINTF("palThreadFunc3::semaphoresAvailable: %d\n", semaphoresAvailable);
ram54288 0:a2cb7295a1f7 104 TEST_PRINTF("palThreadFunc3::status: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 105 TEST_PRINTF("palThreadFunc3::failed to get Semaphore as expected\n", status);
ram54288 0:a2cb7295a1f7 106 TEST_ASSERT_EQUAL(PAL_ERR_RTOS_TIMEOUT, status);
ram54288 0:a2cb7295a1f7 107 return;
ram54288 0:a2cb7295a1f7 108 }
ram54288 0:a2cb7295a1f7 109 pal_osDelay(6000);
ram54288 0:a2cb7295a1f7 110 #endif //SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 111 tmp->arg3 = 30;
ram54288 0:a2cb7295a1f7 112 threadID = pal_osThreadGetId();
ram54288 0:a2cb7295a1f7 113 TEST_PRINTF("palThreadFunc3::Thread ID is %d\n", threadID);
ram54288 0:a2cb7295a1f7 114
ram54288 0:a2cb7295a1f7 115 #ifdef SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 116 status = pal_osSemaphoreRelease(semaphore1);
ram54288 0:a2cb7295a1f7 117 TEST_PRINTF("palThreadFunc3::pal_osSemaphoreRelease res: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 118 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 119 #endif //SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 120 TEST_PRINTF("palThreadFunc3::STAAAAM\n");
ram54288 0:a2cb7295a1f7 121 }
ram54288 0:a2cb7295a1f7 122
ram54288 0:a2cb7295a1f7 123 void palThreadFunc4(void const *argument)
ram54288 0:a2cb7295a1f7 124 {
ram54288 0:a2cb7295a1f7 125 palThreadID_t threadID = 10;
ram54288 0:a2cb7295a1f7 126 threadsArgument_t *tmp = (threadsArgument_t*)argument;
ram54288 0:a2cb7295a1f7 127 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 128 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 129 TEST_PRINTF("palThreadFunc4::before mutex\n");
ram54288 0:a2cb7295a1f7 130 status = pal_osMutexWait(mutex1, 200);
ram54288 0:a2cb7295a1f7 131 TEST_PRINTF("palThreadFunc4::after mutex: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 132 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 133 pal_osDelay(3500); //wait 3.5 seconds to make sure that the next thread arrive to this point
ram54288 0:a2cb7295a1f7 134 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 135
ram54288 0:a2cb7295a1f7 136
ram54288 0:a2cb7295a1f7 137 tmp->arg4 = 40;
ram54288 0:a2cb7295a1f7 138
ram54288 0:a2cb7295a1f7 139 threadID = pal_osThreadGetId();
ram54288 0:a2cb7295a1f7 140 TEST_PRINTF("Thread ID is %d\n", threadID);
ram54288 0:a2cb7295a1f7 141
ram54288 0:a2cb7295a1f7 142
ram54288 0:a2cb7295a1f7 143
ram54288 0:a2cb7295a1f7 144 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 145 status = pal_osMutexRelease(mutex1);
ram54288 0:a2cb7295a1f7 146 TEST_PRINTF("palThreadFunc4::after release mutex: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 147 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 148 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 149 TEST_PRINTF("palThreadFunc4::STAAAAM\n");
ram54288 0:a2cb7295a1f7 150 }
ram54288 0:a2cb7295a1f7 151
ram54288 0:a2cb7295a1f7 152 void palThreadFunc5(void const *argument)
ram54288 0:a2cb7295a1f7 153 {
ram54288 0:a2cb7295a1f7 154 palThreadID_t threadID = 10;
ram54288 0:a2cb7295a1f7 155 threadsArgument_t *tmp = (threadsArgument_t*)argument;
ram54288 0:a2cb7295a1f7 156 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 157 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 158 TEST_PRINTF("palThreadFunc5::before mutex\n");
ram54288 0:a2cb7295a1f7 159 status = pal_osMutexWait(mutex1, 4500);
ram54288 0:a2cb7295a1f7 160 TEST_PRINTF("palThreadFunc5::after mutex: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 161 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 162 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 163 tmp->arg5 = 50;
ram54288 0:a2cb7295a1f7 164
ram54288 0:a2cb7295a1f7 165 threadID = pal_osThreadGetId();
ram54288 0:a2cb7295a1f7 166 TEST_PRINTF("Thread ID is %d\n", threadID);
ram54288 0:a2cb7295a1f7 167 #ifdef MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 168 status = pal_osMutexRelease(mutex1);
ram54288 0:a2cb7295a1f7 169 TEST_PRINTF("palThreadFunc5::after release mutex: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 170 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 171 #endif //MUTEX_UNITY_TEST
ram54288 0:a2cb7295a1f7 172 TEST_PRINTF("palThreadFunc5::STAAAAM\n");
ram54288 0:a2cb7295a1f7 173 }
ram54288 0:a2cb7295a1f7 174
ram54288 0:a2cb7295a1f7 175 void palThreadFunc6(void const *argument)
ram54288 0:a2cb7295a1f7 176 {
ram54288 0:a2cb7295a1f7 177 palThreadID_t threadID = 10;
ram54288 0:a2cb7295a1f7 178 threadsArgument_t *tmp = (threadsArgument_t*)argument;
ram54288 0:a2cb7295a1f7 179 #ifdef SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 180 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 181 uint32_t semaphoresAvailable = 10;
ram54288 0:a2cb7295a1f7 182 status = pal_osSemaphoreWait(123456, 200, &semaphoresAvailable); //MUST fail, since there is no semaphore with ID=3
ram54288 0:a2cb7295a1f7 183 TEST_PRINTF("palThreadFunc6::semaphoresAvailable: %d\n", semaphoresAvailable);
ram54288 0:a2cb7295a1f7 184 TEST_ASSERT_EQUAL(PAL_ERR_RTOS_PARAMETER, status);
ram54288 0:a2cb7295a1f7 185 return;
ram54288 0:a2cb7295a1f7 186 #endif //SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 187 tmp->arg6 = 60;
ram54288 0:a2cb7295a1f7 188
ram54288 0:a2cb7295a1f7 189 threadID = pal_osThreadGetId();
ram54288 0:a2cb7295a1f7 190 TEST_PRINTF("Thread ID is %d\n", threadID);
ram54288 0:a2cb7295a1f7 191 #ifdef SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 192 status = pal_osSemaphoreRelease(123456);
ram54288 0:a2cb7295a1f7 193 TEST_PRINTF("palThreadFunc6::pal_osSemaphoreRelease res: 0x%08x\n", status);
ram54288 0:a2cb7295a1f7 194 TEST_ASSERT_EQUAL(PAL_ERR_RTOS_PARAMETER, status);
ram54288 0:a2cb7295a1f7 195 #endif //SEMAPHORE_UNITY_TEST
ram54288 0:a2cb7295a1f7 196 TEST_PRINTF("palThreadFunc6::STAAAAM\n");
ram54288 0:a2cb7295a1f7 197 }
ram54288 0:a2cb7295a1f7 198
ram54288 0:a2cb7295a1f7 199
ram54288 0:a2cb7295a1f7 200 void palTimerFunc1(void const *argument)
ram54288 0:a2cb7295a1f7 201 {
ram54288 0:a2cb7295a1f7 202 g_timerArgs.ticksInFunc1 = pal_osKernelSysTick();
ram54288 0:a2cb7295a1f7 203 TEST_PRINTF("ticks in palTimerFunc1: 0 - %d\n", g_timerArgs.ticksInFunc1);
ram54288 0:a2cb7295a1f7 204 TEST_PRINTF("Once Timer function was called\n");
ram54288 0:a2cb7295a1f7 205 }
ram54288 0:a2cb7295a1f7 206
ram54288 0:a2cb7295a1f7 207 void palTimerFunc2(void const *argument)
ram54288 0:a2cb7295a1f7 208 {
ram54288 0:a2cb7295a1f7 209 g_timerArgs.ticksInFunc2 = pal_osKernelSysTick();
ram54288 0:a2cb7295a1f7 210 TEST_PRINTF("ticks in palTimerFunc2: 0 - %d\n", g_timerArgs.ticksInFunc2);
ram54288 0:a2cb7295a1f7 211 TEST_PRINTF("Periodic Timer function was called\n");
ram54288 0:a2cb7295a1f7 212 }
ram54288 0:a2cb7295a1f7 213
ram54288 0:a2cb7295a1f7 214 void palThreadFuncCustom1(void const *argument)
ram54288 0:a2cb7295a1f7 215 {
ram54288 0:a2cb7295a1f7 216 TEST_PRINTF("palThreadFuncCustom1 was called\n");
ram54288 0:a2cb7295a1f7 217 }
ram54288 0:a2cb7295a1f7 218
ram54288 0:a2cb7295a1f7 219 void palThreadFuncCustom2(void const *argument)
ram54288 0:a2cb7295a1f7 220 {
ram54288 0:a2cb7295a1f7 221 TEST_PRINTF("palThreadFuncCustom2 was called\n");
ram54288 0:a2cb7295a1f7 222 }
ram54288 0:a2cb7295a1f7 223
ram54288 0:a2cb7295a1f7 224 void palThreadFuncCustom3(void const *argument)
ram54288 0:a2cb7295a1f7 225 {
ram54288 0:a2cb7295a1f7 226 TEST_PRINTF("palThreadFuncCustom3 was called\n");
ram54288 0:a2cb7295a1f7 227 }
ram54288 0:a2cb7295a1f7 228
ram54288 0:a2cb7295a1f7 229 void palThreadFuncCustom4(void const *argument)
ram54288 0:a2cb7295a1f7 230 {
ram54288 0:a2cb7295a1f7 231 TEST_PRINTF("palThreadFuncCustom4 was called\n");
ram54288 0:a2cb7295a1f7 232 }
ram54288 0:a2cb7295a1f7 233
ram54288 0:a2cb7295a1f7 234 void palRunThreads()
ram54288 0:a2cb7295a1f7 235 {
ram54288 0:a2cb7295a1f7 236 palStatus_t status = PAL_SUCCESS;
ram54288 0:a2cb7295a1f7 237 palThreadID_t threadID1 = NULLPTR;
ram54288 0:a2cb7295a1f7 238 palThreadID_t threadID2 = NULLPTR;
ram54288 0:a2cb7295a1f7 239 palThreadID_t threadID3 = NULLPTR;
ram54288 0:a2cb7295a1f7 240 palThreadID_t threadID4 = NULLPTR;
ram54288 0:a2cb7295a1f7 241 palThreadID_t threadID5 = NULLPTR;
ram54288 0:a2cb7295a1f7 242 palThreadID_t threadID6 = NULLPTR;
ram54288 0:a2cb7295a1f7 243
ram54288 0:a2cb7295a1f7 244 uint32_t *stack1 = malloc(THREAD_STACK_SIZE);
ram54288 0:a2cb7295a1f7 245 uint32_t *stack2 = malloc(THREAD_STACK_SIZE);
ram54288 0:a2cb7295a1f7 246 uint32_t *stack3 = malloc(THREAD_STACK_SIZE);
ram54288 0:a2cb7295a1f7 247 uint32_t *stack4 = malloc(THREAD_STACK_SIZE);
ram54288 0:a2cb7295a1f7 248 uint32_t *stack5 = malloc(THREAD_STACK_SIZE);
ram54288 0:a2cb7295a1f7 249 uint32_t *stack6 = malloc(THREAD_STACK_SIZE);
ram54288 0:a2cb7295a1f7 250
ram54288 0:a2cb7295a1f7 251 status = pal_init(NULL);
ram54288 0:a2cb7295a1f7 252 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 253
ram54288 0:a2cb7295a1f7 254 status = pal_osThreadCreate(palThreadFunc1, &g_threadsArg, PAL_osPriorityIdle, THREAD_STACK_SIZE, stack1, (palThreadLocalStore_t *)g_threadStorage, &threadID1);
ram54288 0:a2cb7295a1f7 255 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 256
ram54288 0:a2cb7295a1f7 257 status = pal_osThreadCreate(palThreadFunc2, &g_threadsArg, PAL_osPriorityLow, THREAD_STACK_SIZE, stack2, NULL, &threadID2);
ram54288 0:a2cb7295a1f7 258 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 259
ram54288 0:a2cb7295a1f7 260 status = pal_osThreadCreate(palThreadFunc3, &g_threadsArg, PAL_osPriorityNormal, THREAD_STACK_SIZE, stack3, NULL, &threadID3);
ram54288 0:a2cb7295a1f7 261 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 262
ram54288 0:a2cb7295a1f7 263 status = pal_osThreadCreate(palThreadFunc4, &g_threadsArg, PAL_osPriorityBelowNormal, THREAD_STACK_SIZE, stack4, NULL, &threadID4);
ram54288 0:a2cb7295a1f7 264 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 265
ram54288 0:a2cb7295a1f7 266 status = pal_osThreadCreate(palThreadFunc5, &g_threadsArg, PAL_osPriorityAboveNormal, THREAD_STACK_SIZE, stack5, NULL, &threadID5);
ram54288 0:a2cb7295a1f7 267 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 268
ram54288 0:a2cb7295a1f7 269 status = pal_osThreadCreate(palThreadFunc6, &g_threadsArg, PAL_osPriorityHigh, THREAD_STACK_SIZE, stack6, NULL, &threadID6);
ram54288 0:a2cb7295a1f7 270 TEST_ASSERT_EQUAL(PAL_SUCCESS, status);
ram54288 0:a2cb7295a1f7 271
ram54288 0:a2cb7295a1f7 272
ram54288 0:a2cb7295a1f7 273 free(stack1);
ram54288 0:a2cb7295a1f7 274 free(stack2);
ram54288 0:a2cb7295a1f7 275 free(stack3);
ram54288 0:a2cb7295a1f7 276 free(stack4);
ram54288 0:a2cb7295a1f7 277 free(stack5);
ram54288 0:a2cb7295a1f7 278 free(stack6);
ram54288 0:a2cb7295a1f7 279 }