Part Number:TMS320F280049
hi,dear:
我需要对特定区域作为安全区(0x98000—–0x99000),对此区域flash做CRC校验(即和goldenCRC比较,一致则ok)
但是每次测试,对非安全区程序略有改动,安全区域CRC 会变化。
如下所示:在安全区只有calculateECC(),执行xorData = xorData ^ temp1;。打开反汇编可以看到,当执行 00C955BB FFC XAR7, LL$$XOR时候, 00C955BB会变化。
打开map文件,
0 0009542e C$$EXIT0 00094d6d FS$$DIV0 00095514 I$$DIV0 00095525 I$$MOD0 00095404 L$$DIV0 00095413 L$$MOD0 000955ab LL$$AND0 00095554 LL$$CMP0 000955b3 LL$$OR0 000955bb LL$$XOR0 00095601 U$$DIV0 00095606 U$$MOD0 00095421 UL$$DIV0 00095428 UL$$MOD0 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;}
Green Deng:
抱歉对CRC校验的问题不太熟悉,还请麻烦你移步至英文E2E论坛提问:e2e.ti.com/…/c2000-microcontrollers-forum