C51 COMPILER V9.01 SH_IEC60730B_8051F_WDG 10/11/2023 14:22:17 PAGE 1 C51 COMPILER V9.01, COMPILATION OF MODULE SH_IEC60730B_8051F_WDG OBJECT MODULE PLACED IN .\output\sh_iec60730b_8051f_wdg.obj COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE code_classb\iec60730_lib\sh_iec60730b_8051f_wdg.c LARGE OPTIMIZE(7,SIZE) - REGFILE(.\output\McuFlash_ISP.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage) DEBUG OBJ -ECTEXTEND PRINT(.\output\sh_iec60730b_8051f_wdg.lst) OBJECT(.\output\sh_iec60730b_8051f_wdg.obj) line level source 1 /* 2 * IEC60730 Class B Library for SINOWEALTH 8051 based ICs. 3 * File: sh_iec60730b_8051f_wdg.c 4 * Version: 1.0 5 * Author: Robin.zhang Chaoming.luo 6 * Date: 04/21/2023 7 * SINOWEALTH IS SUPPLYING THIS SOFTWARE FOR USE EXCLUSIVELY ON SINOWEALTH'S 8 * MICROCONTROLLER PRODUCTS. IT IS PROTECTED UNDER APPLICABLE COPYRIGHT LAWS. 9 * THIS SOFTWARE IS FOR GUIDANCE IN ORDER TO SAVE TIME. AS A RESULT, SINOWEALTH 10 * SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES 11 * WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR 12 * THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN 13 * CONNECTION WITH THEIR PRODUCTS. 14 * 15 */ 16 17 #include "sh_iec60730b_8051f_cfg.h" *** WARNING C318 IN LINE 17 OF code_classb\iec60730_lib\sh_iec60730b_8051f_wdg.c: can't open file 'sh_iec60730b_8051f_cf -g.h' 18 19 #if SH_CHK_WDG_EN == 1 *** WARNING C322 IN LINE 19 OF code_classb\iec60730_lib\sh_iec60730b_8051f_wdg.c: unknown identifier xdata SHT_IEC60730B_WDG_TEST __iec60730b_wdg_test_obj _at_ (SH_CHK_XDATA_SIZE-sizeof(SHT_IEC60730B_WDG_TES -T)); /****************************************************************************** * Functions ******************************************************************************/ /******************************************************************************* * * @brief This function should be called only once after POR reset. * Each calling of this function causes a wd reset. * Function clears the WD resets counter to 0. * No WD settings are changed here. It starts the LPTMR which must * be configured before the function call occurs. * Within the waiting endless loop, value from LPTMR is periodically * stored to reserved area in RAM. * * @param void * * @return SH_CHK_PASS ;watchdog timeout has measured * SH_CHK_FAIL_WDG ;watchdog timeout need remeasured * ******************************************************************************/ SHT_RESULT sh_8051f_wdg_setup() { if((__iec60730b_wdg_test_obj.resetSource & SH_IEC60730B_RESET_SRC_POR) ||(__iec60730b_wdg_test_obj.resetSource & SH_IEC60730B_RESET_SRC_LVR) // ||(__iec60730b_wdg_test_obj.resetSource == 0) //FOR DEBUG ) { __iec60730b_wdg_test_obj.counter = 0; __iec60730b_wdg_test_obj.resets = 0; C51 COMPILER V9.01 SH_IEC60730B_8051F_WDG 10/11/2023 14:22:17 PAGE 2 return SH_CHK_FAIL_WDG; } return SH_CHK_PASS; } /******************************************************************************* * * @brief Function should be called after every WD reset, its calling should * be handled by conditional execution in application. * * If the source of reset is WD, function increments the wd_reset counter. * If the reset counter has overflowed, function will wait in endless * loop if it is enabled. * * If the source of reset is WD, function check the timeout * value. If it is not in range, function will wait in the endless * loop if enabled. * * If the source of reset isn't WD or POR, function will sets the * wdTestUncompleteFlag and will wait in endless loop if enabled. * * @param void * * @return SH_CHK_PASS - successfull execution of test * SH_CHK_FAIL_WDG - reset counter doesn't fit into limit * ******************************************************************************/ SHT_RESULT sh_8051f_wdg_check() { SHT_RESULT checkResult = SH_CHK_PASS; if(__iec60730b_wdg_test_obj.resetSource & SH_IEC60730B_RESET_SRC_IWDG) { __iec60730b_wdg_test_obj.resets++; if(__iec60730b_wdg_test_obj.resets > SH_CHK_WDG_RESET_LIMIT) { checkResult = SH_CHK_FAIL_WDG; } else if(__iec60730b_wdg_test_obj.counter < SH_CHK_WDG_LIMIT_LOW || __iec60730b_wdg_test_obj.counter > SH_CHK_WDG_LIMIT_HIGH) { checkResult = SH_CHK_FAIL_WDG; } } else { if(__iec60730b_wdg_test_obj.counter < SH_CHK_WDG_LIMIT_LOW | __iec60730b_wdg_test_obj.counter > SH_CHK_WDG_LIMIT_HIGH ) { checkResult = SH_CHK_FAIL_WDG; } } return checkResult; } #endif MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = ---- ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- C51 COMPILER V9.01 SH_IEC60730B_8051F_WDG 10/11/2023 14:22:17 PAGE 3 PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)