13d0407baSopenharmony_ci/* 23d0407baSopenharmony_ci * Copyright (c) 2022 FuZhou Lockzhiner Electronic Co., Ltd. All rights reserved. 33d0407baSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 43d0407baSopenharmony_ci * you may not use this file except in compliance with the License. 53d0407baSopenharmony_ci * You may obtain a copy of the License at 63d0407baSopenharmony_ci * 73d0407baSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 83d0407baSopenharmony_ci * 93d0407baSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 103d0407baSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 113d0407baSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123d0407baSopenharmony_ci * See the License for the specific language governing permissions and 133d0407baSopenharmony_ci * limitations under the License. 143d0407baSopenharmony_ci */ 153d0407baSopenharmony_ci#include <stdio.h> 163d0407baSopenharmony_ci#include <stdint.h> 173d0407baSopenharmony_ci#include <string.h> 183d0407baSopenharmony_ci#include <sys/types.h> 193d0407baSopenharmony_ci#include <sys/stat.h> 203d0407baSopenharmony_ci#include <fcntl.h> 213d0407baSopenharmony_ci#include <unistd.h> 223d0407baSopenharmony_ci 233d0407baSopenharmony_ci#include "los_tick.h" 243d0407baSopenharmony_ci#include "los_task.h" 253d0407baSopenharmony_ci#include "los_config.h" 263d0407baSopenharmony_ci#include "los_interrupt.h" 273d0407baSopenharmony_ci#include "los_debug.h" 283d0407baSopenharmony_ci#include "los_compiler.h" 293d0407baSopenharmony_ci#include "los_arch_interrupt.h" 303d0407baSopenharmony_ci#include "los_task.h" 313d0407baSopenharmony_ci 323d0407baSopenharmony_ci#include "lz_hardware.h" 333d0407baSopenharmony_ci#include "uart_debug.h" 343d0407baSopenharmony_ci#include "config_network.h" 353d0407baSopenharmony_ci 363d0407baSopenharmony_ci#define MAIN_TAG "MAIN" 373d0407baSopenharmony_ci 383d0407baSopenharmony_ci#define IOTPROCESS_TASK_STACKSIZE 0x1000 393d0407baSopenharmony_ci#define IOTPROCESS_TASK_PRIO 6 403d0407baSopenharmony_ci#define IOTPROCESS_TASK_NAME "IotProcess" 413d0407baSopenharmony_ci 423d0407baSopenharmony_ci#define MASKLED_ON LZGPIO_LEVEL_HIGH 433d0407baSopenharmony_ci#define MASKLED_OFF LZGPIO_LEVEL_LOW 443d0407baSopenharmony_ci 453d0407baSopenharmony_civoid OHOS_SystemInit(void); 463d0407baSopenharmony_ci 473d0407baSopenharmony_cistatic void IotProcess(void *arg) 483d0407baSopenharmony_ci{ 493d0407baSopenharmony_ci static const unsigned int SLEEP_MAX_SECOND = 5; 503d0407baSopenharmony_ci static const unsigned int SECOND_TO_MSECOND = 1000; 513d0407baSopenharmony_ci 523d0407baSopenharmony_ci while (1) { 533d0407baSopenharmony_ci printf("%s: sleep %d sec!\n", __func__, SLEEP_MAX_SECOND); 543d0407baSopenharmony_ci 553d0407baSopenharmony_ci LOS_Msleep(SLEEP_MAX_SECOND * SECOND_TO_MSECOND); 563d0407baSopenharmony_ci } 573d0407baSopenharmony_ci} 583d0407baSopenharmony_ci 593d0407baSopenharmony_cistatic void IotInit(void) 603d0407baSopenharmony_ci{ 613d0407baSopenharmony_ci UINT32 uwRet; 623d0407baSopenharmony_ci UINT32 taskID; 633d0407baSopenharmony_ci TSK_INIT_PARAM_S stTask = {0}; 643d0407baSopenharmony_ci 653d0407baSopenharmony_ci stTask.pfnTaskEntry = (TSK_ENTRY_FUNC)IotProcess; 663d0407baSopenharmony_ci stTask.uwStackSize = IOTPROCESS_TASK_STACKSIZE; 673d0407baSopenharmony_ci stTask.pcName = IOTPROCESS_TASK_NAME; 683d0407baSopenharmony_ci stTask.uwArg = (UINT32)(0); 693d0407baSopenharmony_ci stTask.usTaskPrio = IOTPROCESS_TASK_PRIO; 703d0407baSopenharmony_ci uwRet = LOS_TaskCreate(&taskID, &stTask); 713d0407baSopenharmony_ci if (uwRet != LOS_OK) { 723d0407baSopenharmony_ci LZ_HARDWARE_LOGD(MAIN_TAG, "MainBoot task create failed!!!"); 733d0407baSopenharmony_ci } 743d0407baSopenharmony_ci} 753d0407baSopenharmony_ci 763d0407baSopenharmony_ciint Main(void) 773d0407baSopenharmony_ci{ 783d0407baSopenharmony_ci UINT32 ret; 793d0407baSopenharmony_ci 803d0407baSopenharmony_ci HalInit(); 813d0407baSopenharmony_ci 823d0407baSopenharmony_ci LZ_HARDWARE_LOGD(MAIN_TAG, "%s: OpenHarmony enter...", __func__); 833d0407baSopenharmony_ci 843d0407baSopenharmony_ci ret = LOS_KernelInit(); 853d0407baSopenharmony_ci if (ret == LOS_OK) { 863d0407baSopenharmony_ci OHOS_SystemInit(); 873d0407baSopenharmony_ci DeviceManagerStart(); // HDF Drivers Init 883d0407baSopenharmony_ci IotInit(); 893d0407baSopenharmony_ci LZ_HARDWARE_LOGD(MAIN_TAG, "%s: OpenHarmony start schedule...", __func__); 903d0407baSopenharmony_ci LOS_Start(); 913d0407baSopenharmony_ci } 923d0407baSopenharmony_ci 933d0407baSopenharmony_ci while (1) { 943d0407baSopenharmony_ci __asm volatile("wfi"); 953d0407baSopenharmony_ci } 963d0407baSopenharmony_ci 973d0407baSopenharmony_ci return 0; 983d0407baSopenharmony_ci} 99