This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
hi,dear:
我需要对特定区域作为安全区(0x98000-----0x99000),对此区域flash做CRC校验(即和goldenCRC比较,一致则ok)
但是每次测试,对非安全区程序略有改动,安全区域CRC 会变化。
如下所示:在安全区只有calculateECC(),执行xorData = xorData ^ temp1;。打开反汇编可以看到,当执行 00C955BB FFC XAR7, LL$$XOR时候, 00C955BB会变化。
打开map文件,
0 0009542e C$$EXIT
0 00094d6d FS$$DIV
0 00095514 I$$DIV
0 00095525 I$$MOD
0 00095404 L$$DIV
0 00095413 L$$MOD
0 000955ab LL$$AND
0 00095554 LL$$CMP
0 000955b3 LL$$OR
0 000955bb LL$$XOR
0 00095601 U$$DIV
0 00095606 U$$MOD
0 00095421 UL$$DIV
0 00095428 UL$$MOD
0 00095566 ULL$$CMP
每次编译会发生变化。该如何固定LL$$XOR这些在flash中的位置呢?
谢谢!
#pragma CODE_SECTION(calculateECC,"FlashFusa2" );
void calculateECC(void);
#pragma DATA_SECTION(temp1,"ramgs1");
#pragma DATA_SECTION(xorData,"ramgs1");
uint64_t xorData,temp1;
void calculateECC(void)
{xorData = xorData ^ temp1;}
抱歉对CRC校验的问题不太熟悉,还请麻烦你移步至英文E2E论坛提问:e2e.ti.com/.../c2000-microcontrollers-forum