主题中讨论的其他器件: CC2538、CC2650、 UNIFLASH
您好!
我正在尝试使用 ROM 引导加载程序通过 UART 对 CC2340R5进行重新编程。 我正在正确写入应用(通过 CRC 下载并发送所有状态均正确的数据)、但当我尝试对 CCFG 部件进行编程时、在我写入 CCFG 的第一个数据块时收到错误 CMD_RET_FLASH_FAIL。 我将执行 SWCU193 8.5.4第469页描述的步骤。
我的固件为180704字节和 CCFG 2048字节。
这里我有三个问题:
1.- CMD_RET_FLASH_FAIL 的含义是什么 ?
2.-我 使用以下算法计算180704Bytes 的 CRC:
//按照 CC2538和 CC2650的方式计算 CRC32校验和。
int calcCrcLikeChip (const unsigned char * pData、unsigned long ulByteCount)
{
unsigned long d、ind;
无符号长整型 ACC = 0xFFFFFFFF;
常量无符号长整型 ulCrcRand32Lut[]=
{
0x00000000、0x1DB71064、0x3B6E20C8、0x26D930AC、
0x76DC4190、0x6B6B51F4、0x4DB26158、0x5005713C、
0xEDB88320、0xF00F9344、0xD6A3E8、0xCB61B38C、
0x9B64C2B0、0x86D3D2D4、0xA00AE278、0xBDBDF21C
};
while ( ulByteCount--)
{
D =*pData++;
IND =(ACC & 0x0F)^(d & 0x0F);
ACC =(ACC >> 4)^ ulCrcRand32Lut[ind];
IND =(ACC & 0x0F)^(d >> 4);
ACC =(ACC >> 4)^ ulCrcRand32Lut[ind];
}
返回(ACC ^ 0xFFFFFFFF);
}
是否有任何变化? 我是否必须考虑任何其他注意事项? (内存对齐等)
3.-当我生成固件时、是否必须用额外的零来填充它并执行某种对齐? 请告诉我是否需要考虑其他要求。
感谢您的支持