Part Number: CC3100MOD
Other Parts Discussed in Thread: CC3200, CC3100, UNIFLASH
Hello
I have a desing on CC3100mod with Service Pack:
NWP Patch version: 2.6.0.5
MAC Patch version: 1.4.0.1
PHY Patch version: 1.0.3.34
I downloaded
- CC3100_CC3200_ServicePack_1.0.1.6-2.7.0.0
- CC3100_CC3200_ServicePack_1.0.1.11-2.9.0.0
and want to update Service Pack.
UniFlash work correct, but am planning use Host Programming in production.
In ServicePack Readme is written:
3. Header files for Host Programming (only for CC3100)
================================================================================
Files:
- host_programming\host_programming_1.0.1.11-2.9.0.0_ucf.h
- host_programming\host_programming_1.0.1.11-2.9.0.0_ucf-signed.h
This ServicePack image can be used with production silicon only.
The list of silicon that are compatible with this ServicePack are:
- CC3100R1
The ServicePack shall be programmed using the host_programming example found in the host_programming Update package for CC3100 SDK.
but i cant find the "host_programming example" in CC3100 SDK.
I use this code to upgrade:
int cc3100_UpgradeFW (void)
{
_i32 fileHandle = -1;
_u32 Token = 0;
_i32 retVal = 0;
_u32 remainingLen, movingOffset, chunkLen;
/* Initializing the CC3100 device */
sl_Start(0, 0, 0);
ReadVersion();
/* create/open the servicepack file for 128KB with rollback, secured and public write */
retVal = sl_FsOpen("/sys/servicepack.ucf",
FS_MODE_OPEN_CREATE(LEN_128KB, _FS_FILE_OPEN_FLAG_SECURE|_FS_FILE_OPEN_FLAG_COMMIT|_FS_FILE_PUBLIC_WRITE),
&Token, &fileHandle);
if(retVal < 0)
{
return -1;
}
/* program the servicepack */
remainingLen = sizeof(servicePackImage);
movingOffset = 0;
chunkLen = (_u32)find_min(CHUNK_LEN, remainingLen);
/* Flashing must be done in 1024 bytes chunks */
do
{
retVal = sl_FsWrite(fileHandle, movingOffset, (_u8 *)&servicePackImage[movingOffset], chunkLen);
if (retVal < 0)
{
return -1;
}
remainingLen -= chunkLen;
movingOffset += chunkLen;
chunkLen = (_u32)find_min(CHUNK_LEN, remainingLen);
}while (chunkLen > 0);
/* close the servicepack file */
retVal = sl_FsClose(fileHandle, 0, (_u8 *)servicePackImageSig, sizeof(servicePackImageSig));
if (retVal < 0)
{
return -1;
}
/* Stop the CC3100 device */
sl_Stop(0xFF);
/* Initializing the CC3100 device */
sl_Start(0, 0, 0);
ReadVersion();
sl_Stop(0xFF);
return 0;
}
This code works strange. All sl_ functions return success, but version of servicePack after upgrade allways is:
NWP Patch version: 2.6.0.5
MAC Patch version: 1.4.0.1
PHY Patch version: 1.0.3.34
I tried to update CC3100mod using files:
Files:
- host_programming\host_programming_1.0.1.11-2.9.0.0_ucf.h
- host_programming\host_programming_1.0.1.11-2.9.0.0_ucf-signed.h
and
- host_programming\host_programming_1.0.1.6-2.7.0.0_ucf.h
- host_programming\host_programming_1.0.1.6-2.7.0.0_ucf-signed.h
if i'll update CC3100mod by UniFlash witn servicepack_1.0.1.11-2.9.0.0.bin and after that try to use Host Programming with
- host_programming\host_programming_1.0.1.11-2.9.0.0_ucf.h
- host_programming\host_programming_1.0.1.11-2.9.0.0_ucf-signed.h
then the servicepack version will again become old 2.6.0.5
That is a problem?