1a299bc30Sopenharmony_ci/* 2a299bc30Sopenharmony_ci * Copyright (c) 2020 Huawei Device Co., Ltd. 3a299bc30Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4a299bc30Sopenharmony_ci * you may not use this file except in compliance with the License. 5a299bc30Sopenharmony_ci * You may obtain a copy of the License at 6a299bc30Sopenharmony_ci * 7a299bc30Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8a299bc30Sopenharmony_ci * 9a299bc30Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10a299bc30Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11a299bc30Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a299bc30Sopenharmony_ci * See the License for the specific language governing permissions and 13a299bc30Sopenharmony_ci * limitations under the License. 14a299bc30Sopenharmony_ci */ 15a299bc30Sopenharmony_ci 16a299bc30Sopenharmony_ci#include "demosdk_adapter.h" 17a299bc30Sopenharmony_ci#include <stdio.h> 18a299bc30Sopenharmony_ci 19a299bc30Sopenharmony_ci#include "cmsis_os2.h" 20a299bc30Sopenharmony_ci 21a299bc30Sopenharmony_ci#define MS_CNT 1000 22a299bc30Sopenharmony_ci 23a299bc30Sopenharmony_ciint DemoSdkCreateTask(unsigned int *handle, const struct TaskPara *para) 24a299bc30Sopenharmony_ci{ 25a299bc30Sopenharmony_ci osThreadAttr_t attr = {0}; 26a299bc30Sopenharmony_ci osThreadId_t threadId; 27a299bc30Sopenharmony_ci if (handle == 0 || para == 0) { 28a299bc30Sopenharmony_ci return DEMOSDK_ERR; 29a299bc30Sopenharmony_ci } 30a299bc30Sopenharmony_ci 31a299bc30Sopenharmony_ci if (para->func == 0) { 32a299bc30Sopenharmony_ci return DEMOSDK_ERR; 33a299bc30Sopenharmony_ci } 34a299bc30Sopenharmony_ci 35a299bc30Sopenharmony_ci if (para->name == 0) { 36a299bc30Sopenharmony_ci return DEMOSDK_ERR; 37a299bc30Sopenharmony_ci } 38a299bc30Sopenharmony_ci 39a299bc30Sopenharmony_ci attr.name = para->name; 40a299bc30Sopenharmony_ci attr.priority = para->prio; 41a299bc30Sopenharmony_ci attr.stack_size = para->size; 42a299bc30Sopenharmony_ci threadId = osThreadNew((osThreadFunc_t)para->func, para->arg, &attr); 43a299bc30Sopenharmony_ci if (threadId == 0) { 44a299bc30Sopenharmony_ci printf("osThreadNew fail\n"); 45a299bc30Sopenharmony_ci return DEMOSDK_ERR; 46a299bc30Sopenharmony_ci } 47a299bc30Sopenharmony_ci 48a299bc30Sopenharmony_ci *(unsigned int *)handle = (unsigned int)threadId; 49a299bc30Sopenharmony_ci return DEMOSDK_OK; 50a299bc30Sopenharmony_ci} 51a299bc30Sopenharmony_ci 52a299bc30Sopenharmony_civoid DemoSdkSleepMs(int ms) 53a299bc30Sopenharmony_ci{ 54a299bc30Sopenharmony_ci usleep(MS_CNT * ms); 55a299bc30Sopenharmony_ci} 56a299bc30Sopenharmony_ci 57