44 #define DEBUG_SILENT 0 45 #define DEBUG_PROCESSING 0 95 uint16_t recordType_of_record_to_process;
96 uint8_t successful_parse_of_record_type =
SUCCESS;
98 while ((record_to_process = getRecord()) != NULL && successful_parse_of_record_type ==
SUCCESS)
100 recordType_of_record_to_process = record_to_process->
RecordType;
102 switch (recordType_of_record_to_process)
111 successful_parse_of_record_type =
FAILURE;
120 successful_parse_of_record_type =
FAILURE;
123 successful_parse_of_record_type =
SUCCESS;
126 successful_parse_of_record_type =
SUCCESS;
153 successful_parse_of_record_type =
FAILURE;
162 successful_parse_of_record_type =
FAILURE;
206 successful_parse_of_record_type =
FAILURE;
211 return successful_parse_of_record_type;
228 uint16_t recordType_of_record_to_process;
229 uint8_t successful_parse_of_record_type =
SUCCESS;
232 while ((record_to_process = getRecord()) != NULL && successful_parse_of_record_type ==
SUCCESS)
234 recordType_of_record_to_process = record_to_process->
RecordType;
237 switch (recordType_of_record_to_process)
249 successful_parse_of_record_type =
FAILURE;
258 successful_parse_of_record_type =
FAILURE;
261 successful_parse_of_record_type =
SUCCESS;
264 successful_parse_of_record_type =
SUCCESS;
288 successful_parse_of_record_type =
FAILURE;
297 successful_parse_of_record_type =
FAILURE;
337 successful_parse_of_record_type =
FAILURE;
355 return successful_parse_of_record_type;
369 #if DEBUG_SILENT == 1 372 #if DEBUG_PROCESSING == 1 373 Serial.print(F(
"WriteByteOptionalPEC "));
375 Serial.print(F(
" "));
377 Serial.print(F(
" "));
378 Serial.println(pRecord->
dataByte, HEX);
381 Serial.print(F(
"WriteByteOptionalPEC "));
385 Serial.print(F(
" "));
386 Serial.println(pRecord->
dataByte, HEX);
418 Serial.print(F(
"WriteWordOptionalPEC "));
420 Serial.print(F(
" "));
422 Serial.print(F(
" "));
423 Serial.println(pRecord->
dataWord, HEX);
426 Serial.print(F(
"WriteWordOptionalPEC "));
428 Serial.print(F(
" "));
430 Serial.print(F(
" "));
431 Serial.println(pRecord->
dataWord, HEX);
461 Serial.print(F(
"ReadByteExpectOptionalPEC "));
463 Serial.print(F(
" "));
467 uint8_t actualByteValue;
476 Serial.print(F(
"ReadByteExpectOptionalPEC "));
478 Serial.print(F(
" "));
480 Serial.print(F(
" "));
481 Serial.print(actualByteValue, HEX);
482 Serial.print(F(
" "));
506 Serial.print(F(
"ReadWordExpectOptionalPEC "));
508 Serial.print(F(
" "));
512 uint16_t actualWordValue;
521 Serial.print(F(
"ReadWordExpectOptionalPEC "));
523 Serial.print(F(
" "));
525 Serial.print(F(
" "));
526 Serial.print(actualWordValue, HEX);
527 Serial.print(F(
" "));
551 Serial.print(F(
"NVMData "));
553 Serial.print(F(
" "));
555 Serial.print(F(
" "));
559 uint16_t *
words = (uint16_t *) ((uint16_t)pRecord+8);
562 Serial.println(words[
i], HEX);
567 Serial.print(F(
"NVMData "));
569 Serial.print(F(
" "));
571 Serial.print(F(
" "));
593 Serial.print(F(
"ReadByteLoopMaskOptionalPEC "));
595 Serial.print(F(
" "));
597 Serial.print(F(
" "));
598 Serial.println(pRecord->
byteMask, HEX);
600 uint8_t actualByteValue;
601 uint8_t actualByteValueWithMask;
602 uint8_t expectedByteValueWithMask;
613 actualByteValueWithMask = (actualByteValue & pRecord->
byteMask);
615 success = (actualByteValueWithMask == expectedByteValueWithMask);
617 Serial.print(F(
"ReadByteLoopMaskOptionalPEC "));
619 Serial.print(F(
" "));
621 Serial.print(F(
" "));
622 Serial.print(pRecord->
byteMask, HEX);
623 Serial.print(F(
" "));
624 Serial.print(actualByteValueWithMask, HEX);
625 Serial.print(F(
" "));
626 Serial.println(expectedByteValueWithMask, HEX);
652 Serial.print(F(
"WriteWordLoopMaskOptionalPEC %x "));
654 Serial.print(F(
" "));
656 Serial.print(F(
" "));
657 Serial.println(pRecord->
wordMask, HEX);
659 uint16_t actualWordValue;
660 uint16_t actualWordValueWithMask;
661 uint16_t expectedWordValueWithMask;
672 actualWordValueWithMask = (actualWordValue & pRecord->
wordMask);
674 success = (actualWordValueWithMask == expectedWordValueWithMask);
676 Serial.print(F(
"WriteWordLoopMaskOptionalPEC "));
678 Serial.print(F(
" "));
680 Serial.print(F(
" "));
681 Serial.print(pRecord->
wordMask, HEX);
682 Serial.print(F(
" "));
683 Serial.print(actualWordValueWithMask, HEX);
684 Serial.print(F(
" "));
685 Serial.println(expectedWordValueWithMask, HEX);
709 Serial.print(F(
"PollReadByteUntilAckNoPEC "));
711 Serial.print(F(
" "));
715 Serial.print(F(
"PollReadByteUntilAckNoPEC "));
717 Serial.print(F(
" "));
749 Serial.print(F(
"DelayMs "));
750 Serial.println(pRecord->
numMs);
752 uint16_t number_of_milliseconds_to_delay = pRecord->
numMs;
756 Serial.print(F(
"DelayMs "));
757 Serial.println(pRecord->
numMs);
761 for (ms_count_i=0; ms_count_i < number_of_milliseconds_to_delay; ms_count_i++)
763 for (delay_i=0; delay_i < 20000; delay_i++)
788 Serial.print(F(
"SendByteOptionalPEC "));
790 Serial.print(F(
" "));
794 Serial.print(F(
"SendByteOptionalPEC "));
796 Serial.print(F(
" "));
825 Serial.print(F(
"WriteByteNoPec "));
827 Serial.print(F(
" "));
829 Serial.print(F(
" "));
830 Serial.println(pRecord->
dataByte, HEX);
833 Serial.print(F(
"WriteByteNoPec %x "));
835 Serial.print(F(
" "));
837 Serial.print(F(
" "));
838 Serial.println(pRecord->
dataByte, HEX);
863 Serial.print(F(
"WriteWordNoPec "));
865 Serial.print(F(
" "));
867 Serial.print(F(
" "));
868 Serial.println(pRecord->
dataWord, HEX);
871 Serial.print(F(
"WriteWordNoPec %x "));
873 Serial.print(F(
" "));
875 Serial.print(F(
" "));
876 Serial.println(pRecord->
dataWord, HEX);
901 Serial.print(F(
"ReadByteExpectNoPEC "));
903 Serial.print(F(
" "));
907 uint8_t actualByteValue;
911 Serial.print(F(
"ReadByteExpectNoPEC "));
913 Serial.print(F(
" "));
915 Serial.print(F(
" "));
916 Serial.print(actualByteValue, HEX);
917 Serial.print(F(
" "));
940 Serial.print(F(
"ReadWordEx[ectNoPEC "));
942 Serial.print(F(
" "));
946 uint16_t actualWordValue;
951 Serial.print(F(
"ReadWordExpectNoPEC "));
953 Serial.print(F(
" "));
955 Serial.print(F(
" "));
956 Serial.print(actualWordValue, HEX);
957 Serial.print(F(
" "));
980 Serial.print(F(
"ReadByteLoopMaskNoPEC "));
982 Serial.print(F(
" "));
984 Serial.print(F(
" "));
985 Serial.println(pRecord->
byteMask, HEX);
987 uint8_t actualByteValue;
988 uint8_t actualByteValueWithMask;
989 uint8_t expectedByteValueWithMask;
996 actualByteValueWithMask = (actualByteValue & pRecord->
byteMask);
998 success = (actualByteValueWithMask == expectedByteValueWithMask);
1000 Serial.print(F(
"ReadByteLoopMaskNoPEC "));
1002 Serial.print(F(
" "));
1004 Serial.print(F(
" "));
1005 Serial.print(pRecord->
byteMask, HEX);
1006 Serial.print(F(
" "));
1007 Serial.print(actualByteValueWithMask, HEX);
1008 Serial.print(F(
" "));
1009 Serial.println(expectedByteValueWithMask, HEX);
1032 #if DEBUG_PROCESSING 1033 Serial.print(F(
"ReadWordLoopMaskNoPEC "));
1035 Serial.print(F(
" "));
1037 Serial.print(F(
" "));
1038 Serial.println(pRecord->
wordMask, HEX);
1040 uint16_t actualWordValue;
1041 uint16_t actualWordValueWithMask;
1042 uint16_t expectedWordValueWithMask;
1050 actualWordValueWithMask = (actualWordValue & pRecord->
wordMask);
1052 success = (actualWordValueWithMask == expectedWordValueWithMask);
1054 Serial.print(F(
"ReadWordLoopMaskNoPEC "));
1056 Serial.print(F(
" "));
1058 Serial.print(F(
" "));
1059 Serial.print(pRecord->
wordMask, HEX);
1060 Serial.print(F(
" "));
1061 Serial.print(actualWordValueWithMask, HEX);
1062 Serial.print(F(
" "));
1063 Serial.println(expectedWordValueWithMask, HEX);
1086 #if DEBUG_PROCESSING 1087 Serial.print(F(
"SendByteNoPEC "));
1089 Serial.print(F(
" "));
1093 Serial.print(F(
"SendByteNoPEC "));
1095 Serial.print(F(
" "));
1124 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1125 Serial.print(F(
"META DATA EVENT: The system is about to begin executing the programming recipe\n"));
1131 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1132 Serial.print(F(
"META DATA EVENT: The system is about to begin in system programming\n"));
1141 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1142 Serial.print(F(
"META DATA EVENT: The system is about to begin writing to the DUT Non-Volatile Memory\n"));
1148 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1149 Serial.print(F(
"META DATA EVENT: The system is about to begin programming a chip\n"));
1158 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1159 Serial.print(F(
"META DATA EVENT: The system is about to begin reading from the DUT's Non-Volatile Memory and verifying the contents match what is expected\n"));
1165 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1166 Serial.print(F(
"META DATA EVENT: The system is about to verify a chip\n"));
1172 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1173 Serial.print(F(
"META DATA EVENT: The system has finished verifying a chip\n"));
1179 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1180 Serial.print(F(
"META DATA EVENT: The system has finished verification\n"));
1187 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1188 Serial.print(F(
"META DATA EVENT: The system is done programming. If you reach this point without error, your device has been programmed and verified successfully\n"));
1193 #if (DEBUG_PRINT || DEBUG_PROCESSING) 1194 Serial.print(F(
"The META DATA EVENT type is not supported in your firmware. You will need to update your programming algorithms\n"));
1214 #if DEBUG_PROCESSING 1215 Serial.print(F(
"ReadByteExpectMaskNoPEC "));
1217 Serial.print(F(
" "));
1219 Serial.print(F(
" "));
1220 Serial.println(pRecord->
byteMask, HEX);
1223 uint8_t actualByteValue;
1224 uint8_t actualByteValueWithMask;
1225 uint8_t expectedByteValueWithMask;
1228 actualByteValueWithMask = (actualByteValue & pRecord->
byteMask);
1231 Serial.print(F(
"ReadByteExpectMaskNoPEC "));
1233 Serial.print(F(
" "));
1235 Serial.print(F(
" "));
1236 Serial.print(pRecord->
byteMask, HEX);
1237 Serial.print(F(
" "));
1238 Serial.print(actualByteValueWithMask, HEX);
1239 Serial.print(F(
" "));
1240 Serial.println(expectedByteValueWithMask, HEX);
1242 return (actualByteValueWithMask != expectedByteValueWithMask) ?
FAILURE :
SUCCESS;
1261 #if DEBUG_PROCESSING 1262 Serial.print(F(
"ReadWordExpectMaskNoPEC "));
1264 Serial.print(F(
" "));
1266 Serial.print(F(
" "));
1268 Serial.print(F(
" "));
1269 Serial.println(pRecord->
wordMask, HEX);
1272 uint16_t actualWordValue;
1273 uint16_t actualWordValueWithMask;
1274 uint16_t expectedWordValueWithMask;
1278 actualWordValueWithMask = (actualWordValue & pRecord->
wordMask);
1281 Serial.print(F(
"ReadWordExpectMaskNoPEC "));
1283 Serial.print(F(
" "));
1285 Serial.print(F(
" "));
1287 Serial.print(F(
" "));
1288 Serial.print(pRecord->
wordMask, HEX);
1289 Serial.print(F(
" "));
1290 Serial.print(actualWordValue, HEX);
1291 Serial.print(F(
" "));
1292 Serial.print(actualWordValueWithMask, HEX);
1293 Serial.print(F(
" "));
1294 Serial.println(expectedWordValueWithMask, HEX);
1296 return (actualWordValueWithMask != expectedWordValueWithMask) ?
FAILURE :
SUCCESS;
1315 #if DEBUG_PROCESSING 1316 Serial.print(F(
"WriteByteOptionalPEC\n"));
1319 uint16_t newGlobalBaseAddress;
1320 uint16_t serialNumberToWrite;
1321 uint16_t readBackValueOfSerialNumber;
1323 Serial.print(F(
"WriteByteOptionalPEC\n"));
1400 #if DEBUG_PROCESSING 1401 Serial.print(F(
"modifyWordNoPec "));
1403 Serial.print(F(
" "));
1405 Serial.print(F(
" "));
1408 uint16_t actualWordValue;
1409 uint16_t modifiedWordValue;
1411 Serial.print(F(
"modifyWordNoPec %x "));
1413 Serial.print(F(
" "));
1415 Serial.print(F(
" "));
1421 modifiedWordValue = (actualWordValue & (~pRecord->
wordMask));
1444 #if DEBUG_PROCESSING 1445 Serial.print(F(
"modifyByteNoPEC "));
1447 Serial.print(F(
" "));
1449 Serial.print(F(
" "));
1452 uint8_t actualByteValue;
1453 uint8_t modifiedByteValue;
1455 Serial.print(F(
"modifyByteNoPEC %x "));
1457 Serial.print(F(
" "));
1459 Serial.print(F(
" "));
1465 modifiedByteValue = (actualByteValue & (~pRecord->
byteMask));
1488 #if DEBUG_PROCESSING 1489 Serial.print(F(
"WriteNvmData\n"));
1493 Serial.print(F(
"WriteNvmData\n"));
1514 #if DEBUG_PROCESSING 1515 Serial.print(F(
"read_then_verifyNvmData \n"));
1519 Serial.print(F(
"read_then_verifyNvmData \n"));
1540 #if DEBUG_PROCESSING 1541 Serial.print(F(
"modifyByteOptionalPEC "));
1543 Serial.print(F(
" "));
1545 Serial.print(F(
" "));
1548 uint8_t actualByteValue;
1549 uint8_t modifiedByteValue;
1551 Serial.print(F(
"modifyByteOptionalPEC "));
1553 Serial.print(F(
" "));
1555 Serial.print(F(
" "));
1565 modifiedByteValue = (actualByteValue & (~pRecord->
byteMask));
1593 #if DEBUG_PROCESSING 1594 Serial.print(F(
"modifyWordOptionalPEC "));
1596 Serial.print(F(
" "));
1598 Serial.print(F(
" "));
1601 uint16_t actualWordValue;
1602 uint16_t modifiedWordValue;
1604 Serial.print(F(
"modifyWordOptionalPEC %x "));
1606 Serial.print(F(
" "));
1608 Serial.print(F(
" "));
1618 modifiedWordValue = (actualWordValue & (~pRecord->
wordMask));
uint8_t recordProcessor___0x01___processWriteByteOptionalPEC(t_RECORD_PMBUS_WRITE_BYTE *)
PRIVATE PROTOTYPES RELATING TO RECORD TYPE PARSING.
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
uint8_t recordProcessor___0x02___processWriteWordOptionalPEC(t_RECORD_PMBUS_WRITE_WORD *)
#define SYSTEM_AFTER_VERIFY
#define RECORD_TYPE_PMBUS_SEND_BYTE_NOPEC
void sendByte(uint8_t address, uint8_t command)
SMBus send byte command.
uint8_t recordProcessor___0x0A___processReadByteLoopMaskOptionalPEC(t_RECORD_PMBUS_READ_BYTE_LOOP_MASK *)
uint8_t recordProcessor___0x0F___processWriteByteNoPEC(t_RECORD_PMBUS_WRITE_BYTE_NOPEC *)
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
#define RECORD_TYPE_PMBUS_WRITE_WORD_NOPEC
uint8_t recordProcessor___0x10___processWriteWordNoPEC(t_RECORD_PMBUS_WRITE_WORD_NOPEC *)
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
void writeWord(uint8_t address, uint8_t command, uint16_t data)
SMBus write word command.
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
Copyright 2018(c) Analog Devices, Inc.
uint16_t expectedDataWord
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
#define RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT_NOPEC
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
void writeByte(uint8_t address, uint8_t command, uint8_t data)
SMBus write byte command.
#define RECORD_TYPE_PMBUS_MODIFY_BYTE
tRecordHeaderLengthAndType baseRecordHeader
#define RECORD_TYPE_EVENT
#define RECORD_TYPE_PMBUS_READ_WORD_EXPECT
uint8_t verifyRecordsOnDemand(pRecordHeaderLengthAndType(*getRecord)(void))
#define BEFORE_INSYSTEM_PROGRAMMING_BEGIN
uint8_t recordProcessor___0x0E___processSendByteOptionalPEC(t_RECORD_PMBUS_SEND_BYTE *)
#define RECORD_TYPE_DELAY_MS
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
uint8_t recordProcessor___0x18___processEvent(t_RECORD_EVENT *)
#define RECORD_TYPE_PMBUS_READ_BYTE_EXPECT
#define RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_MASK_NOPEC
#define RECORD_TYPE_PMBUS_MODIFY_WORD
static bool ignore_records
uint8_t bufferNvmData(t_RECORD_NVM_DATA *pRecord)
uint8_t recordProcessor___0x1E___writeNvmData(t_RECORD_NVM_DATA *)
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
#define RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK
#define RECORD_TYPE_PMBUS_READ_AND_VERIFY_EE_DATA
uint8_t recordProcessor___0x1D___modifyByteNoPEC(t_RECORD_PMBUS_MODIFY_BYTE_NO_PEC *)
#define META_SET_GLOBAL_BASE_ADDRESS
#define INSYSTEM_CHIP_BEFORE_VERIFY
uint8_t recordProcessor___0x0B___processReadWordLoopMaskOptionalPEC(t_RECORD_PMBUS_READ_WORD_LOOP_MASK *)
#define RECORD_TYPE_PACKING_CODE
#define RECORD_TYPE_PMBUS_READ_BLOCK_EXPECT
uint8_t recordProcessor___0x09___bufferNVMData(t_RECORD_NVM_DATA *)
#define RECORD_TYPE_PMBUS_SEND_BYTE
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
uint8_t recordProcessor___0x19___processReadByteExpectMaskNoPEC(t_RECORD_PMBUS_READ_BYTE_EXPECT_MASK_NOPEC *)
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
uint8_t recordProcessor___0x1A___processReadWordExpectMaskNoPEC(t_RECORD_PMBUS_READ_WORD_EXPECT_MASK_NOPEC *)
#define RECORD_TYPE_PMBUS_WRITE_BLOCK_NOPEC
#define RECORD_TYPE_NVM_DATA
#define RECORD_TYPE_PMBUS_WRITE_BLOCK
#define INSYSTEM_CHIP_AFTER_VERIFY
uint8_t readByte(uint8_t address, uint8_t command)
SMBus read byte command.
uint8_t recordProcessor___0x0D___processDelayMs(t_RECORD_DELAY_MS *)
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
uint8_t recordProcessor___0x1F___read_then_verifyNvmData(t_RECORD_NVM_DATA *)
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
#define RECORD_TYPE_PMBUS_WRITE_WORD
#define RECORD_TYPE_PMBUS_WRITE_BYTE
#define RECORD_TYPE_PMBUS_WRITE_EE_DATA
uint8_t recordProcessor___0x15___processReadByteLoopMaskNoPEC(t_RECORD_PMBUS_READ_BYTE_LOOP_MASK_NOPEC *)
uint16_t expectedDataWord
#define RECORD_TYPE_PMBUS_POLL_UNTIL_ACK_NOPEC
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
#define RECORD_TYPE_MODIFY_WORD_NOPEC
uint8_t recordProcessor___0x1B___processVariableMetaData(t_RECORD_VARIABLE_META_DATA *)
#define SYSTEM_BEFORE_VERIFY
Copyright 2018(c) Analog Devices, Inc.
uint8_t recordProcessor___0x05___processReadWordExpectOptionalPEC(t_RECORD_PMBUS_READ_WORD_EXPECT *)
uint8_t recordProcessor___0x04___processReadByteExpectOptionalPEC(t_RECORD_PMBUS_READ_BYTE_EXPECT *)
uint8_t recordProcessor___0x1C___modifyWordNoPEC(t_RECORD_PMBUS_MODIFY_WORD_NO_PEC *)
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
#define RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK_NOPEC
uint8_t processRecordsOnDemand(pRecordHeaderLengthAndType(*getRecord)(void))
#define RECORD_TYPE_PMBUS_READ_WORD_EXPECT_MASK_NOPEC
#define RECORD_TYPE_PMBUS_READ_WORD_EXPECT_NOPEC
uint16_t expectedDataWord
#define SYSTEM_BEFORE_PROGRAM
uint8_t recordProcessor___0x12___processReadByteExpectNoPEC(t_RECORD_PMBUS_READ_BYTE_EXPECT_NOPEC *)
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
#define RECORD_TYPE_PMBUS_READ_BYTE_EXPECT_NOPEC
uint8_t recordProcessor___0x0C___processPollReadByteUntilAckNoPEC(t_RECORD_PMBUS_POLL_READ_BYTE_UNTIL_ACK *)
#define RECORD_TYPE_DEVICE_ADDRESS
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
uint16_t expectedDataWord
#define INSYSTEM_CHIP_BEFORE_PROGRAM
uint8_t recordProcessor___0x20___modifyByteOptionalPEC(t_RECORD_PMBUS_MODIFY_BYTE *)
uint8_t writeNvmData(t_RECORD_NVM_DATA *pRecord)
#define RECORD_TYPE_PMBUS_READ_WORD_LOOP_MASK
uint8_t recordProcessor___0x16___processReadWordLoopMaskNoPEC(t_RECORD_PMBUS_READ_WORD_LOOP_MASK_NOPEC *)
#define RECORD_TYPE_PMBUS_WRITE_BYTE_NOPEC
uint16_t expectedDataWord
#define RECORD_TYPE_MODIFY_BYTE_NOPEC
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
tRecordHeaderAddressAndCommandWithOptionalPEC detailedRecordHeader
#define RECORD_TYPE_VARIABLE_META_DATA
tRecordHeaderAddressAndCommandWithoutPEC detailedRecordHeader
LT_SMBusNoPec * smbusNoPec__
#define RECORD_TYPE_PMBUS_READ_BYTE_LOOP_MASK_NOPEC
uint8_t readThenVerifyNvmData(t_RECORD_NVM_DATA *pRecord)
#define META_OEM_SERIAL_NUMBER
uint8_t recordProcessor___0x17___processSendByteNoPEC(t_RECORD_PMBUS_SEND_BYTE_NOPEC *)
uint8_t recordProcessor___0x21___modifyWordOptionalPEC(t_RECORD_PMBUS_MODIFY_WORD *)
uint8_t recordProcessor___0x13___processReadWordExpectNoPEC(t_RECORD_PMBUS_READ_WORD_EXPECT_NOPEC *)
static bool verification_in_progress
VARIABLES.
#define RECORD_TYPE_END_OF_RECORDS
uint16_t readWord(uint8_t address, uint8_t command)
SMBus read word command.
uint8_t waitForAck(uint8_t address, uint8_t command)
Read with the address and command in loop until ack, then issue stop.