163 lines
7.5 KiB
Plaintext
163 lines
7.5 KiB
Plaintext
|
C51 COMPILER V9.01 SH_IEC60730B_8051F_FLASH 10/11/2023 14:22:17 PAGE 1
|
|||
|
|
|||
|
|
|||
|
C51 COMPILER V9.01, COMPILATION OF MODULE SH_IEC60730B_8051F_FLASH
|
|||
|
OBJECT MODULE PLACED IN .\output\sh_iec60730b_8051f_flash.obj
|
|||
|
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE code_classb\iec60730_lib\sh_iec60730b_8051f_flash.c LARGE OPTIMIZE(7,SIZ
|
|||
|
-E) REGFILE(.\output\McuFlash_ISP.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage) DEBUG O
|
|||
|
-BJECTEXTEND PRINT(.\output\sh_iec60730b_8051f_flash.lst) OBJECT(.\output\sh_iec60730b_8051f_flash.obj)
|
|||
|
|
|||
|
line level source
|
|||
|
|
|||
|
1 /*
|
|||
|
2 * IEC60730 Class B Library for SINOWEALTH 8051 based ICs.
|
|||
|
3 * File: sh_iec60730b_8051f_flash.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_flash.c: can't open file 'sh_iec60730b_8051f_
|
|||
|
-cfg.h'
|
|||
|
18 #include "MCURegister.h"
|
|||
|
19
|
|||
|
20 #if SH_CHK_FLASH_EN == 1
|
|||
|
*** WARNING C322 IN LINE 20 OF code_classb\iec60730_lib\sh_iec60730b_8051f_flash.c: unknown identifier
|
|||
|
SHT_FLASHADDR __iec60730b_flash_addr;
|
|||
|
SHT_U16 __iec60730b_flash_crc;
|
|||
|
SHT_U16 __iec60730b_boot_checksum;
|
|||
|
|
|||
|
/*******************************************************************************
|
|||
|
*
|
|||
|
* @brief This function generate the 16-bit CRC value using SW.
|
|||
|
*
|
|||
|
* @param dataIn - tested data.
|
|||
|
* @param crcVal - start condition seed (for the first iteration it is
|
|||
|
* typically user defined value, for the next iterations
|
|||
|
* it is the result from the previous function call).
|
|||
|
*
|
|||
|
* @return 16-bit crc value of the memory range (CRC-16-CCITT - normal 0x1021).
|
|||
|
*
|
|||
|
******************************************************************************/
|
|||
|
SHT_U16 sh_8051f_crc_sw16(SHT_U8 dataIn, SHT_U16 crcVal)
|
|||
|
{
|
|||
|
SHT_U8 crcVH;
|
|||
|
SHT_U8 i;
|
|||
|
for(i = 0; i < 8; i++)
|
|||
|
{
|
|||
|
crcVH = crcVal>>8;
|
|||
|
crcVal <<= 1;
|
|||
|
if((dataIn ^ crcVH) >> 7)
|
|||
|
crcVal ^= 0x1021;
|
|||
|
dataIn <<= 1;
|
|||
|
}
|
|||
|
return crcVal;
|
|||
|
}
|
|||
|
C51 COMPILER V9.01 SH_IEC60730B_8051F_FLASH 10/11/2023 14:22:17 PAGE 2
|
|||
|
|
|||
|
#endif
|
|||
|
52 #if ((SH_CHK_FLASH_EN == 1)||(SH_CHK_EE_EN == 1)||(SH_CHK_BOOT_EN == 1))
|
|||
|
*** WARNING C322 IN LINE 52 OF code_classb\iec60730_lib\sh_iec60730b_8051f_flash.c: unknown identifier
|
|||
|
*** WARNING C322 IN LINE 52 OF code_classb\iec60730_lib\sh_iec60730b_8051f_flash.c: unknown identifier
|
|||
|
*** WARNING C322 IN LINE 52 OF code_classb\iec60730_lib\sh_iec60730b_8051f_flash.c: unknown identifier
|
|||
|
/*******************************************************************************
|
|||
|
*
|
|||
|
* @brief This function generate the ROM CRC.
|
|||
|
*
|
|||
|
* @param startaddr - start addr.
|
|||
|
* @param endaddr - end addr.
|
|||
|
* @param crcromtype - crc code or eeprom.
|
|||
|
*
|
|||
|
* @return 16-bit crc value of the memory range (CRC-16-CCITT - normal 0x1021).
|
|||
|
*
|
|||
|
******************************************************************************/
|
|||
|
SHT_U16 sh_8051f_crc_code(SHT_EEADDR startaddr,SHT_EEADDR endaddr,SHT_U8 crcromtype)
|
|||
|
{
|
|||
|
CRCCON &= ~0x40;
|
|||
|
CRCCON &= ~0x80; //stop CRC
|
|||
|
|
|||
|
CRCDL = 0xFF;
|
|||
|
CRCDH = 0xFF;
|
|||
|
|
|||
|
if(crcromtype == MCU_CRC_EE)
|
|||
|
{
|
|||
|
FLASHCON |= 0x02;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
FLASHCON &= ~0x02;
|
|||
|
}
|
|||
|
endaddr -= 3;
|
|||
|
|
|||
|
CRCSTAL = (SHT_U8)startaddr;
|
|||
|
CRCSTAH = (SHT_U8)(startaddr >> 8);
|
|||
|
|
|||
|
CRCSTOL = (SHT_U8)endaddr;
|
|||
|
CRCSTOH = (SHT_U8)(endaddr >> 8);
|
|||
|
|
|||
|
CRCCON |= 0x80; //start CRC
|
|||
|
|
|||
|
while((CRCCON & 0x40) == 0){}
|
|||
|
|
|||
|
CRCCON &= ~0x40;
|
|||
|
return CRCD_16;
|
|||
|
}
|
|||
|
#endif
|
|||
|
96
|
|||
|
97 #if SH_CHK_FLASH_EN == 1
|
|||
|
*** WARNING C322 IN LINE 97 OF code_classb\iec60730_lib\sh_iec60730b_8051f_flash.c: unknown identifier
|
|||
|
/*******************************************************************************
|
|||
|
*
|
|||
|
* @brief This function caculate CRC in runtime and check the result after done.
|
|||
|
*
|
|||
|
* @param void
|
|||
|
*
|
|||
|
* @return SH_CHK_PASS
|
|||
|
* SH_CHK_FAIL_FLASH
|
|||
|
*
|
|||
|
******************************************************************************/
|
|||
|
SHT_RESULT sh_8051f_flash_runtime(void)
|
|||
|
C51 COMPILER V9.01 SH_IEC60730B_8051F_FLASH 10/11/2023 14:22:17 PAGE 3
|
|||
|
|
|||
|
{
|
|||
|
SHT_RESULT checkResult = SH_CHK_PASS;
|
|||
|
if(__iec60730b_flash_addr == SH_CHK_FLASH_START_ADDR)
|
|||
|
__iec60730b_flash_crc = 0xFFFF;
|
|||
|
|
|||
|
__iec60730b_flash_crc = sh_8051f_crc_sw16(*(SHT_U8 code *)__iec60730b_flash_addr, __iec60730b_flash_c
|
|||
|
-rc);
|
|||
|
|
|||
|
__iec60730b_flash_addr++;
|
|||
|
if(__iec60730b_flash_addr >= (SH_CHK_FLASH_END_ADDR-2))
|
|||
|
{
|
|||
|
if(__iec60730b_flash_crc != __iec60730b_flash_checksum)
|
|||
|
checkResult = SH_CHK_FAIL_FLASH;
|
|||
|
__iec60730b_flash_addr = SH_CHK_FLASH_START_ADDR;
|
|||
|
}
|
|||
|
return checkResult;
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|||
|
CODE SIZE = ---- ----
|
|||
|
CONSTANT SIZE = ---- ----
|
|||
|
XDATA SIZE = ---- ----
|
|||
|
PDATA SIZE = ---- ----
|
|||
|
DATA SIZE = ---- ----
|
|||
|
IDATA SIZE = ---- ----
|
|||
|
BIT SIZE = ---- ----
|
|||
|
END OF MODULE INFORMATION.
|
|||
|
|
|||
|
|
|||
|
C51 COMPILATION COMPLETE. 6 WARNING(S), 0 ERROR(S)
|