FXTH87 flash operation functions

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

FXTH87 flash operation functions

1,534 Views
fuhuiming
Contributor I

Why nothing changed after calling function TPMS_FLASH_ERASE() and TPMS_FLASH_WRITE() ? What's wrong with code below ?

fosc = 8MHz, fbus = 4MHz

FCDIV = 21;                                         // Fclk = 4MHz / (21+1) = 181.18KHz - 150KHz~200KHz

//----------------------------------------------------------------------------------

const BYTE CParaAddr[] @ 0xD200u =

{

0x44, 0x55, 0x66, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,

};

......

FCDIV = 21;

SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);          // receive data are { 44 55 66 }

mRfData1 = TPMS_FLASH_ERASE((WORD)CParaAddr);                      // the function return 0x00, ERASE succeed ?

mCommonBuffer[0] = 0x77;

mCommonBuffer[1] = 0x88;

mCommonBuffer[2] = 0x99;

TPMS_FLASH_WRITE_1A((WORD)CParaAddr, &mCommonBuffer[0], 10);

SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);

0 Kudos
2 Replies

1,332 Views
fuhuiming
Contributor I

Resolved. CParaAddr is defined as const array.

SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);

The compiler give three const to the function as parameters directly, instead of accessing the const array again.

0 Kudos

1,332 Views
fuhuiming
Contributor I

the 2nd time calling

SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);

receive data is still { 44 55 66 }, nothing changed

0 Kudos
%3CLINGO-SUB%20id%3D%22lingo-sub-448100%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFXTH87%20flash%20operation%20functions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-448100%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EWhy%20nothing%20changed%20after%20calling%20function%20TPMS_FLASH_ERASE()%20and%20TPMS_FLASH_WRITE()%20%3F%20What's%20wrong%20with%20code%20below%20%3F%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Efosc%20%3D%208MHz%2C%20fbus%20%3D%204MHz%3C%2FP%3E%3CP%3EFCDIV%20%3D%2021%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20Fclk%20%3D%204MHz%20%2F%20(21%2B1)%20%3D%20181.18KHz%20-%20150KHz~200KHz%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%2F%2F----------------------------------------------------------------------------------%3C%2FP%3E%3CP%3Econst%20BYTE%20CParaAddr%5B%5D%20%40%200xD200u%20%3D%3C%2FP%3E%3CP%3E%7B%3C%2FP%3E%3CP%3E%200x44%2C%200x55%2C%200x66%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%3C%2FP%3E%3CP%3E%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%200xff%2C%3C%2FP%3E%3CP%3E%20%7D%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E......%3C%2FP%3E%3CP%3EFCDIV%20%3D%2021%3B%3C%2FP%3E%3CP%3ESendDebugContent(CParaAddr%5B0%5D%2C%20CParaAddr%5B1%5D%2C%20CParaAddr%5B2%5D)%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20receive%20data%20are%20%7B%2044%2055%2066%20%7D%3C%2FP%3E%3CP%3EmRfData1%20%3D%20TPMS_FLASH_ERASE((WORD)CParaAddr)%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%20the%20function%20return%200x00%2C%20ERASE%20succeed%20%3F%3C%2FP%3E%3CP%3EmCommonBuffer%5B0%5D%20%3D%200x77%3B%3C%2FP%3E%3CP%3EmCommonBuffer%5B1%5D%20%3D%200x88%3B%3C%2FP%3E%3CP%3EmCommonBuffer%5B2%5D%20%3D%200x99%3B%3C%2FP%3E%3CP%3ETPMS_FLASH_WRITE_1A((WORD)CParaAddr%2C%20%26amp%3BmCommonBuffer%5B0%5D%2C%2010)%3B%3C%2FP%3E%3CP%3ESendDebugContent(CParaAddr%5B0%5D%2C%20CParaAddr%5B1%5D%2C%20CParaAddr%5B2%5D)%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-448102%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXTH87%20flash%20operation%20functions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-448102%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EResolved.%20CParaAddr%20is%20defined%20as%20const%20array.%3C%2FP%3E%3CP%3ESendDebugContent(CParaAddr%5B0%5D%2C%20CParaAddr%5B1%5D%2C%20CParaAddr%5B2%5D)%3B%3C%2FP%3E%3CP%3EThe%20compiler%20give%20three%20const%20to%20the%20function%20as%20parameters%20directly%2C%20instead%20of%20accessing%20the%20const%20array%20again.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-448101%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXTH87%20flash%20operation%20functions%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-448101%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Ethe%202nd%20time%20calling%3C%2FP%3E%3CP%3ESendDebugContent(CParaAddr%5B0%5D%2C%20CParaAddr%5B1%5D%2C%20CParaAddr%5B2%5D)%3B%3C%2FP%3E%3CP%3Ereceive%20data%20is%20still%20%7B%2044%2055%2066%20%7D%2C%20nothing%20changed%3C%2FP%3E%3C%2FLINGO-BODY%3E