📄 cardinfo.c
字号:
/*******************************************************************
*
* DESCRIPTION: cardInfo.c - module for reading and writing EEPROM
*
* AUTHOR: O. Kessel-Deynet
*
* Lightmaze AG
*
*******************************************************************/
/** include files **/
#include "Types/Basetypes.h"
#include "i2c.h"
#include "CAN/LMSAStructs_Common.h"
#include <string.h>
// the following globals are set once at bootup and are constant afterwards, i.e. harmless
extern byte* entryAddrMIB[];
extern const char M16C_TagString[];
extern char FPGA_TagString[];
byte loadCardInfo(byte* pCardInfo, word devAdr, word num, byte eepromType)
{
return readEEProm( 0, num, pCardInfo, devAdr, eepromType );
}
void checkSoftwareTag( byte *enablePort,byte enablePortMask, word devAdr, byte eepromType )
{
if(strncmp((char *) entryAddrMIB[e_Cmn_M16CSoftwareTag], M16C_TagString + M16C_TAG_OFFSET, S_COMMON_M16C_SW_TAG))
{
strncpy((char *) entryAddrMIB[e_Cmn_M16CSoftwareTag], M16C_TagString + M16C_TAG_OFFSET, S_COMMON_M16C_SW_TAG);
*enablePort &= ~enablePortMask; // EEPROM Protect = 0
writeEEProm( M16C_OFFSET, S_COMMON_M16C_SW_TAG, entryAddrMIB[e_Cmn_M16CSoftwareTag], devAdr, eepromType );
*enablePort |= enablePortMask; // EEPROM Protect = 1
}
}
void checkFPGATag( byte *enablePort,byte enablePortMask, word devAdr, byte eepromType )
{
if(strncmp((char *) entryAddrMIB[e_Cmn_FPGATag], FPGA_TagString, S_COMMON_FPGA_TAG))
{
strncpy((char *) entryAddrMIB[e_Cmn_FPGATag], FPGA_TagString, S_COMMON_FPGA_TAG);
*enablePort &= ~enablePortMask; // EEPROM Protect = 0
writeEEProm( FPGA_OFFSET, S_COMMON_FPGA_TAG, entryAddrMIB[e_Cmn_FPGATag], devAdr, eepromType );
*enablePort |= enablePortMask; // EEPROM Protect = 1
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -