/** * @file hv_boot_Common.c * @brief boot common source code. * @details This file provides the following functions: \n * (1) Initialization and de-initialization functions \n * (2) Start and stop functions \n * (3) Feed functions \n * * @author HiView SoC Software Team * @version 1.0.0 * @date 2022-08-18 * @copyright Copyright(c),2022-8, Hiview Software. All rights reserved. * @par History: * *
Author Date Change Description *
HiView SoC Software Team 2022-08-23 init *
*/ #include "hv_chip_Config.h" #include "hv_boot_Common.h" char g_cBootString[32] = {0}; static char* toStrHex(unsigned int uiVal) { int iIndex = 0; unsigned int uiTemp = uiVal; g_cBootString[0] = '0'; g_cBootString[1] = 'x'; for (iIndex = 0; iIndex < 8; iIndex++) { uiTemp = (uiVal >> ((7-iIndex) * 4)) & 0xf; if (uiTemp < 0xa) { g_cBootString[2+iIndex] = uiTemp + 0x30; } else { g_cBootString[2+iIndex] = 'A' + uiTemp - 0xa; } } g_cBootString[10] = '\n'; g_cBootString[11] = '\0'; return g_cBootString; } void Hv_Boot_PrintHex(unsigned int Level, unsigned int uiVal) { if (Level >= BOOT_DEBUG_CONTR_LEVELL) { Hv_Chip_DebugUartPuts(toStrHex(uiVal)); } return; } void Hv_Boot_Print_String(unsigned int Level, const char *pcString) { if (Level >= BOOT_DEBUG_CONTR_LEVELL) { Hv_Chip_DebugUartPuts(pcString); } return; } void Hv_Boot_Wait_Us(unsigned int Us) { unsigned int uiCnt = Us * (HV_CHIP_CLK_CPU / 7000000); while (uiCnt--) { asm("nop"); } return; } void Hv_Boot_Wait_Ms(unsigned int Ms) { unsigned int uiCnt = Ms * (HV_CHIP_CLK_CPU / 7000); while(uiCnt--) { asm("nop"); } return; }