/* * This program source code file is part of SystemK, a library in the KTag project. * * 🛡️ 🃞 * * Copyright © 2016-2025 Joseph P. Kearney and the KTag developers. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more * details. * * There should be a copy of the GNU Affero General Public License in the LICENSE * file in the root of this repository. If not, see . */ #include #define STACK_SIZE 4096 static StaticTask_t xTaskBuffer; static StackType_t xStack[STACK_SIZE]; SystemKResult_T Initialize_SystemK(void) { SystemKResult_T result = SYSTEMK_RESULT_SUCCESS; Init_KEvents(); State_Machine_Task_Handle = xTaskCreateStatic( State_Machine_Task, // Function that implements the task. "SystemK", // Text name for the task. STACK_SIZE, // Stack size in bytes, not words. 0, // Parameter passed into the task. tskIDLE_PRIORITY, // Priority at which the task is created. xStack, // Array to use as the task's stack. &xTaskBuffer); // Variable to hold the task's data structure. if (State_Machine_Task_Handle == NULL) { result = SYSTEMK_RESULT_FAILED_TO_CREATE_RTOS_TASK; } return result; }