/* * * Copyright (c) 2020 Project CHIP Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include /* Driver Header files */ #include #include #include #include #include #include #include #include #define TOTAL_ICALL_HEAP_SIZE (0xC700) using namespace ::chip; using namespace ::chip::Inet; using namespace ::chip::DeviceLayer; __attribute__((section(".heap"))) uint8_t GlobalHeapZoneBuffer[TOTAL_ICALL_HEAP_SIZE]; uint32_t heapSize = TOTAL_ICALL_HEAP_SIZE; // ================================================================================ // FreeRTOS Callbacks // ================================================================================ /* Wrapper functions for using the queue registry regardless of whether it is enabled or disabled */ extern "C" void vQueueAddToRegistryWrapper(QueueHandle_t xQueue, const char * pcQueueName) { /* This function is intentionally left empty as the Queue Registry is disabled */ } extern "C" void vQueueUnregisterQueueWrapper(QueueHandle_t xQueue) { /* This function is intentionally left empty as the Queue Registry is disabled */ } // ================================================================================ // Main Code // ================================================================================ int main(void) { Board_init(); bpool((void *) GlobalHeapZoneBuffer, TOTAL_ICALL_HEAP_SIZE); GPIO_init(); NVS_init(); ECDH_init(); ECDSA_init(); AESECB_init(); SHA2_init(); int ret = GetAppTask().StartAppTask(); if (ret != 0) { // can't log until the kernel is started // PLAT_LOG("GetAppTask().StartAppTask() failed"); while (true) ; } vTaskStartScheduler(); // Should never get here. while (true) ; }