Part Number: CC2652R
I checked with sblAppEx_1_03_00_00 source file sblAppEx.cpp and found its flow steps for cc2652 chipset are listed below:
(1) collect some variables (baudRate, deviceType, fileName, devFlashBase, bEnableXosc),
(2) Create SblDevice and connect.
(3) Open FW file (fileName size is 360448 bytes) and calculate file checksum to have fileCrc value.
(4) Erase flash (360448 bytes) and write flash (360448 bytes).
(5) Calculate CRC checksum of flashed content to have devCrc value.
(6) Compare fileCrc and devCrc to make sure FW flash is OK or not.
(7) Reset device.
If I add extra step ( same as (5) ) between (3) and (4) for not to flash FW when the FW is same as flashed content as below:
(1) collect some variables (baudRate, deviceType, fileName, devFlashBase, bEnableXosc),
(2) Create SblDevice and connect.
(3) Open FW file (fileName size is 360448 bytes) and calculate file checksum to have fileCrc value.
(4) Calculate CRC checksum of flashed content to have devCrc value [Value A]. Compare fileCrc and devCrc & not to flash FW when the FW is same as flashed content.
(5) Erase flash (360448 bytes) and write flash (360448 bytes).
(6) Calculate CRC checksum of flashed content to have devCrc value [Value B].
(7) Compare fileCrc and devCrc to make sure FW flash is OK or not.
(8) Reset device.
My question is : will the [Value A] be same as [Value B]? And why?
(Note: we had ported sblAppEx to ARM platform but I verify & find [Value A] seems have different value every time it run again. And I build the FW from CCS tool)
Peter.