AnsweredAssumed Answered

data in 40bit memory don't update if IMDWx bit is zero

Question asked by bookevg on Nov 7, 2011
Latest reply on Nov 9, 2011 by bookevg

#pragma section("seg_dmda_48")
volatile fp32 Int_tst_40bit[4];

void run_tst(void)

{

volatile fp32 temp1     = 0.000005;
[12543A] i12=0x36a7c5ac;
[12543D] dm(0xfffffffd,i6)=i12;
volatile fp32 temp2     = 0.000005;
[12543F] nop;
[125440] dm(0xfffffffe,i6)=i12;
sysreg_bit_clr_nop(sysreg_MODE1,RND32);
[125442] bit clr mode1 0x10000;
[125445] nop;
*pSYSCTL          |= IMDW1;
[125446] nop;
[125447] r2=dm(0x30024);
[12544A] r1=0xa;
[12544C] r2=bset r2 by r1;
[12544E] dm(0x30024)=r2;
Int_tst_40bit[0]     = temp1 * temp2;     // Int_tst_40bit[0] = 0x2DDBE6FE1400
[125451] r2=dm(0xfffffffd,i6);
[125453] nop;
[125454] r4=dm(0xfffffffe,i6);
[125456] f2=f2*f4;
[125457] dm(Int_tst_40bit)=r2;
Int_tst_40bit[1]     = Int_tst_40bit[0];  // Int_tst_40bit[1] = 0x2DDBE6FE1400
[12545A] r2=dm(Int_tst_40bit);
[12545D] dm(0xb2001)=r2;
*pSYSCTL          &= ~IMDW1;
[125460] r2=dm(0x30024);
[125463] r2=bclr r2 by r1;
[125465] dm(0x30024)=r2;
Int_tst_40bit[2]     = Int_tst_40bit[1];
[125468] r2=dm(0xb2001);
[12546B] dm(0xb2002)=r2;      //   // Int_tst_40bit[2] = 0x000000000000 why doesn't the value of r2 put on Int_tst_40bit[2]

}

void main(void)

{

run_test();

}

Outcomes