ZDBMS/output/sh_iec60730b_8051f_testproc...

382 lines
18 KiB
Plaintext
Raw Normal View History

2025-02-06 07:35:32 +00:00
C51 COMPILER V9.01 SH_IEC60730B_8051F_TESTPROC 10/11/2023 14:22:17 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE SH_IEC60730B_8051F_TESTPROC
OBJECT MODULE PLACED IN .\output\sh_iec60730b_8051f_testproc.obj
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c LARGE OPTIMIZE(7
-,SIZE) REGFILE(.\output\McuFlash_ISP.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage) DEB
-UG OBJECTEXTEND PRINT(.\output\sh_iec60730b_8051f_testproc.lst) OBJECT(.\output\sh_iec60730b_8051f_testproc.obj)
line level source
1 /*
2 * IEC60730 Class B TEST PROCESS for SINOWEALTH 8051 based ICs.
3 * File: sh_iec60730b_8051f_testproc.h
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 #include "sh_iec60730b_8051f_testproc.h"
*** WARNING C318 IN LINE 16 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: can't open file 'sh_iec60730b_80
-51f_testproc.h'
17 //#include "MAIN.H"
18
19
20 extern SHT_U32 __iec60730b_stack_top;
*** ERROR C129 IN LINE 20 OF CODE_CLASSB\IEC60730_PROC\SH_IEC60730B_8051F_TESTPROC.C: missing ';' before '__iec60730b_st
-ack_top'
21 extern SHT_U32 __iec60730b_stack_bottom;
22
23 SHT_U8 __iec60730b_bist_step;
24 static SHT_U32 __iec60730b_crc_addr;
25
26
27 SHT_RESULT sh_iec60730b_8051f_test_post(void)
28 {
29 SHT_RESULT checkResult = SH_CHK_PASS;
30 /******************************************************/
31 /*Initial global variables*/
32 __iec60730b_bist_step = 0;
33 __iec60730b_crc_addr = 0;
34
35 /******************************************************/
36 /* check watch dog */
37 #if SH_CHK_WDG_EN == 1
*** WARNING C322 IN LINE 37 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_wdg_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
42 /*******************************************************/
43 /* Disable Interrupt */
44 EA = 0;
45
46 /******** CHECK CPU REGISTERS *********/
47 #if SH_CHK_CPU_EN == 1
*** WARNING C322 IN LINE 47 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
C51 COMPILER V9.01 SH_IEC60730B_8051F_TESTPROC 10/11/2023 14:22:17 PAGE 2
checkResult = sh_8051f_cpu_register1();
if(checkResult != SH_CHK_PASS)
return checkResult;
checkResult = sh_8051f_cpu_register2();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
56
57 /******** CHECK PROGRAM COUNTER *********/
58 #if SH_CHK_PC_EN == 1
*** WARNING C322 IN LINE 58 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_pc_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
63
64 /******** CHECK RAM ADDRESSING LINE *********/
65 #if SH_CHK_ADDRLINE_TEST_EN == 1
*** WARNING C322 IN LINE 65 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
__iec60730b_addrline_address = 0;
checkResult = sh_8051f_addrline_data1();
if(checkResult != SH_CHK_PASS)
return checkResult;
checkResult = sh_8051f_addrline_data2();
if(checkResult != SH_CHK_PASS)
return checkResult;
checkResult = sh_8051f_addrline_xdata_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
79
80 /******** CHECK RAM *********/
81 #if SH_CHK_XDATA_EN == 1
*** WARNING C322 IN LINE 81 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
__iec60730b_ram_data_address = 0;
__iec60730b_ram_xdata_address = 0;
checkResult = sh_8051f_ram_data_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
checkResult = sh_8051f_ram_xdata_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
92 CLR_WDT();
93
94 /* Enable Interrupt */
95 EA = 1;
96
97 /******** CHECK BOOT *********/
98 #if SH_CHK_BOOT_EN == 1
*** WARNING C322 IN LINE 98 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
__iec60730b_boot_checksum = CWORD[(SH_CHK_BOOT_END_ADDR-2)/2];
if(sh_8051f_crc_code(SH_CHK_BOOT_START_ADDR,SH_CHK_BOOT_END_ADDR,MCU_CRC_FLASH) != __iec60730b_boot_ch
-ecksum)
checkResult = SH_CHK_FAIL_BOOT;
if(checkResult != SH_CHK_PASS)
return checkResult;
C51 COMPILER V9.01 SH_IEC60730B_8051F_TESTPROC 10/11/2023 14:22:17 PAGE 3
CLR_WDT();
#endif
107
108 /******** CHECK FLASH *********/
109 #if SH_CHK_FLASH_EN == 1
*** WARNING C322 IN LINE 109 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
__iec60730b_flash_addr = SH_CHK_FLASH_START_ADDR;
if(sh_8051f_crc_code(SH_CHK_FLASH_START_ADDR,SH_CHK_FLASH_END_ADDR,MCU_CRC_FLASH) != __iec60730b_flash
-_checksum)
checkResult = SH_CHK_FAIL_FLASH;
if(checkResult != SH_CHK_PASS)
return checkResult;
CLR_WDT();
#endif
118
119 /******** CHECK EEPROM *********/
120 #if SH_CHK_EE_EN == 1
*** WARNING C322 IN LINE 120 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
__iec60730b_ee1_addr = SH_CHK_EE1_START_ADDR;
__iec60730b_ee2_addr = SH_CHK_EE2_START_ADDR;
sh_8051f_ee_readchecksum((SH_CHK_EE1_END_ADDR-2), (SHT_RESULT xdata *)&__iec60730b_ee1_checksum, 2);
if(sh_8051f_crc_code(SH_CHK_EE1_START_ADDR,SH_CHK_EE1_END_ADDR,MCU_CRC_EE) != __iec60730b_ee1_checksum
-)
checkResult = SH_CHK_FAIL_EE;
if(checkResult != SH_CHK_PASS)
return checkResult;
CLR_WDT();
/******** CHECK EEPROM *********/
sh_8051f_ee_readchecksum((SH_CHK_EE2_END_ADDR-2), (SHT_RESULT xdata *)&__iec60730b_ee2_checksum, 2);
if(sh_8051f_crc_code(SH_CHK_EE2_START_ADDR,SH_CHK_EE2_END_ADDR,MCU_CRC_EE) != __iec60730b_ee2_checksum
-)
checkResult = SH_CHK_FAIL_EE;
if(checkResult != SH_CHK_PASS)
return checkResult;
CLR_WDT();
#endif
141
142 /******** STACK CHECK *********/
143 #if SH_CHK_STACK_EN == 1
*** WARNING C322 IN LINE 143 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
sh_8051f_stack_init();
checkResult = sh_8051f_stack_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
149
150 /********* CLOCK CHECK ********/
151 #if SH_CHK_CLOCK_EN == 1
*** WARNING C322 IN LINE 151 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
{
SHT_U16 timeout = 0x8000;
sh_8051f_clk_init();
__iec60730b_clk_limit_high = 0Xff00;
__iec60730b_clk_limit_low = 1;
SH_CHK_CLOCK_TIMER_START();
while(timeout)
{
C51 COMPILER V9.01 SH_IEC60730B_8051F_TESTPROC 10/11/2023 14:22:17 PAGE 4
EA = 0;
checkResult = sh_8051f_clk_check();
EA = 1;
if(checkResult != SH_CHK_FAIL_CLK_PROGRESS)
break;
timeout--;
CLR_WDT();
}
//CALCULATE CLOCK TOLERANCE RANGE
if(checkResult == SH_CHK_PASS)
{
SHT_U16 tmp = (__iec60730b_clk_context * SH_CHK_CLK_TOLERANCE) / 100;
__iec60730b_clk_limit_low = __iec60730b_clk_context - tmp;
__iec60730b_clk_limit_high = __iec60730b_clk_context + tmp;
}
}
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
179 CLR_WDT();
180
181 /********** AIO CHECK ****************/
182 #if SH_CHK_AIO_TEST_EN == 1
*** WARNING C322 IN LINE 182 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
__iec60730b_aio_state = SH_CHK_PASS;
checkResult = sh_8051f_aio_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
188
189 /********** DIO CHECK ****************/
190 #if SH_CHK_DIO_TEST_EN == 1
*** WARNING C322 IN LINE 190 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_dio_test();
if(checkResult != SH_CHK_PASS)
return checkResult;
#endif
195
196 return checkResult;
197 }
198
199 SHT_RESULT sh_iec60730b_8051f_test_bist(void)
200 {
201 SHT_RESULT checkResult = SH_CHK_PASS;
202
203 if((__iec60730b_bist_step >> 4) == 0)
204 {/************** 0: CHECK CPU REGISTERS **************/
205 #if SH_CHK_CPU_EN == 1
*** WARNING C322 IN LINE 205 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
EA = 0;
switch(__iec60730b_bist_step&0x0F)
{
case 0:
checkResult = sh_8051f_cpu_register1();
break;
case 1:
checkResult = sh_8051f_cpu_register2();
break;
}
EA = 1;
__iec60730b_bist_step++;
if((__iec60730b_bist_step&0xF) >= 2)
C51 COMPILER V9.01 SH_IEC60730B_8051F_TESTPROC 10/11/2023 14:22:17 PAGE 5
{
__iec60730b_bist_step = 0x10;
}
#else
223 __iec60730b_bist_step = 0x10;
224 #endif
225 }
226 else if((__iec60730b_bist_step >> 4) == 1)
227 {/************** 1: CHECK PROGRAM COUNTER **************/
228 #if SH_CHK_PC_EN == 1
*** WARNING C322 IN LINE 228 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
EA = 0;
checkResult = sh_8051f_pc_test();
EA = 1;
#endif
233 __iec60730b_bist_step = 0x20;
234 }
235 else if((__iec60730b_bist_step >> 4) == 2)
236 {/************** 2: CHECK RAM ADDRESSING LINE **************/
237 #if SH_CHK_ADDRLINE_TEST_EN == 1
*** WARNING C322 IN LINE 237 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
EA = 0;
if((__iec60730b_bist_step&0x0F) == 0)
{
checkResult = sh_8051f_addrline_data1();
__iec60730b_bist_step++;
}
else if((__iec60730b_bist_step&0x0F) == 1)
{
checkResult = sh_8051f_addrline_data2();
__iec60730b_bist_step++;
}
else if((__iec60730b_bist_step&0x0F) == 2)
{
checkResult = sh_8051f_addrline_xdata_runtime();
__iec60730b_bist_step++;
}
else
__iec60730b_bist_step = 0x30;
EA = 1;
#else
258 __iec60730b_bist_step = 0x30;
259 #endif
260 }
261 else if((__iec60730b_bist_step >> 4) == 3)
262 {/************** 3: CHECK RAM **************/
263 #if SH_CHK_XDATA_EN == 1
*** WARNING C322 IN LINE 263 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
EA = 0;
if((__iec60730b_bist_step&0x0F) == 0)
{
checkResult = sh_8051f_ram_data_runtime();
__iec60730b_bist_step++;
}
else if((__iec60730b_bist_step&0x0F) == 1)
{
checkResult = sh_8051f_ram_xdata_runtime();
__iec60730b_bist_step++;
}
else
__iec60730b_bist_step = 0x40;
EA = 1;
C51 COMPILER V9.01 SH_IEC60730B_8051F_TESTPROC 10/11/2023 14:22:17 PAGE 6
#else
279 __iec60730b_bist_step = 0x40;
280 #endif
281 }
282
283 else if((__iec60730b_bist_step >> 4) == 4)
284 {/************** 4: CHECK CODE ROM **************/
285 #if SH_CHK_FLASH_EN == 1
*** WARNING C322 IN LINE 285 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_flash_runtime();
#endif
288 __iec60730b_bist_step = 0x50;
289 }
290 else if((__iec60730b_bist_step >> 4) == 5)
291 {/************** 5: CHECK STACK **************/
292 #if SH_CHK_STACK_EN == 1
*** WARNING C322 IN LINE 292 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_stack_test();
#endif
295 __iec60730b_bist_step = 0x60;
296 }
297 else if((__iec60730b_bist_step >> 4) == 6)
298 {/************** 6: CHECK CLOCK **************/
299 #if SH_CHK_CLOCK_EN == 1
*** WARNING C322 IN LINE 299 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
EA = 0;
checkResult = sh_8051f_clk_check();
EA = 1;
#endif
304 __iec60730b_bist_step = 0x70;
305 }
306 else if((__iec60730b_bist_step >> 4) == 7)
307 {/************** 7: CHECK AIO **************/
308 #if SH_CHK_AIO_TEST_EN == 1
*** WARNING C322 IN LINE 308 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_aio_test_runtime();
#endif
311 __iec60730b_bist_step = 0x80;
312 }
313 else if((__iec60730b_bist_step >> 4) == 8)
314 {/************** 8: CHECK EEPROM1 **************/
315 #if SH_CHK_EE_EN == 1
*** WARNING C322 IN LINE 315 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_ee1_runtime();
#endif
318 __iec60730b_bist_step = 0x90;
319 }
320 else if((__iec60730b_bist_step >> 4) == 9)
321 {/************** 8: CHECK EEPROM2 **************/
322 #if SH_CHK_EE_EN == 1
*** WARNING C322 IN LINE 322 OF code_classb\iec60730_proc\sh_iec60730b_8051f_testproc.c: unknown identifier
checkResult = sh_8051f_ee2_runtime();
#endif
325 __iec60730b_bist_step = 0x00;
326 }
327 return checkResult;
328 }
C51 COMPILATION COMPLETE. 23 WARNING(S), 1 ERROR(S)