/****************************************************************************** * @file system_MK8000.h * @brief CMSIS Device System Header * File for Device MK8000 * @version V5.00 * @date 10. January 2018 ******************************************************************************/ /* * Copyright (c) 2009-2018 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * 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 * * 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. */ #ifndef SYSTEM_MK8000_H #define SYSTEM_MK8000_H #ifdef __cplusplus extern "C" { #endif #include // define the firmware version #define FIRMWARE_VERSION "V0.6.2" #define VERSION_MAJOR (0) #define VERSION_MID (6) #define VERSION_MINOR (2) // This version don't support secure boot #define SECURE_EN 0 // User define #define APP_BOOT_FLAG 0x10000000 #define APP_VERSION 0x00000002 #define APP_CPC 0x7F5AAAAA #define BOOT_HEADER_MARKER 0x4D4BA5A5 #define SIG_LEN 256 #define PW_LEN 16 /** \brief Exception / Interrupt Handler Function Prototype */ typedef void (*VECTOR_TABLE_Type)(void); struct BOOT_DESC_T { uint32_t header_marker; uint32_t boot_flag; uint32_t boot_addr; uint32_t cpc; uint32_t image_len; uint32_t image_crc; uint32_t image_ver; uint32_t code_crc; #if SECURE_EN uint8_t image_sig[SIG_LEN]; #endif const uint8_t isp_unprotect_pw[PW_LEN]; const uint8_t isp_backdoor_pw[PW_LEN]; uint32_t copy_len; uint32_t crc; }; extern const struct BOOT_DESC_T mk_boot_desc __attribute__((aligned(16))) __attribute__((section(".ZBOOT_SECTION"))); extern const char mk_build_inf[80] __attribute__((section(".ZBUILD_SECTION"))); /** \brief System Clock Frequency (Core Clock) */ extern uint32_t SystemCoreClock; /** \brief Setup the microcontroller system. Initialize the System and update the SystemCoreClock variable. */ extern void SystemInit(void); /** \brief Update SystemCoreClock variable. Updates the SystemCoreClock with current core Clock retrieved from cpu registers. */ extern void SystemCoreClockUpdate(void); #ifdef __cplusplus } #endif #endif /* SYSTEM_MK8000_H */