Flash signature is not the same unit to unit

cancel
Showing results for 
Search instead for 
Did you mean: 

Flash signature is not the same unit to unit

63 Views
NXP Employee
NXP Employee
Content originally posted in LPCWare by lenguyen on Mon May 19 14:17:28 MST 2014
Hi All,

I am working on to put flash signature in our software version for version control. We are having two development system (PCs). The software is shared between this two work station and is downloaded into two different MCU boards.  However the flash signature does not the same in these boards.
Here's our code:

uint8_t i;

/*<! Clear any previous "done flag" */
Chip_FMC_ClearSignatureBusy();

/*<! Start the signature generator for all flash memory */
Chip_FMC_ComputeSignatureBlocks(START_FLASH_ADDR, (FLASH_SIZE / 16));

/*<! Check for signature generation to be completed */
while (Chip_FMC_IsSignatureBusy()) {}

/*<! Clear busy flag */
Chip_FMC_ClearSignatureBusy();

/* Get all 128 bits of signature */
for (i = 0; i < SOFTWARE_SIGNATURE_BITS/32; i++) {
verChecksum = Chip_FMC_GetSignature(i);
        }


Any thought ?

Thanks
LN


Labels (1)
0 Kudos
3 Replies

13 Views
NXP Employee
NXP Employee
Content originally posted in LPCWare by xianghuiwang on Fri Jun 20 11:40:47 MST 2014
Hi, Lenguyen,

Please check two things;
1. is the area where you generated the flash signature fully covered by your firmware?
2. is there IAP called going on that may modify the contents of the flash?
3. is there any IAP called going on during the flash signature generation?

regards,
0 Kudos

13 Views
NXP Employee
NXP Employee
Content originally posted in LPCWare by lenguyen on Wed May 21 10:58:17 MST 2014
Any one has the answer or input ? NXP ?

Thanks
LN
0 Kudos

13 Views
NXP Employee
NXP Employee
Content originally posted in LPCWare by lenguyen on Tue May 20 11:47:20 MST 2014
Here's the code:

uint8_t i;

// Clear any previous "done flag"
Chip_FMC_ClearSignatureBusy();

// Start the signature generator for all flash memory
Chip_FMC_ComputeSignatureBlocks(START_FLASH_ADDR, (FLASH_SIZE / 16));

// Check for signature generation to be completed
while (Chip_FMC_IsSignatureBusy()) {}

// Clear busy flag
Chip_FMC_ClearSignatureBusy();

// Get all 128 bits of signature
for (i = 0; i < SOFTWARE_SIGNATURE_BITS/32; i++) {
verChecksum = Chip_FMC_GetSignature(i);
}


Thanks
L.N
0 Kudos