读FLASH中的值,为什么总有一些值 不对? <br /><br />void CUpProgram::LoadMcuToFlash(INT8U type)<br />{<br /> INT32U runproadd=0x00007ff8;<br /><br /> INT8U tempbuf[256+5];<br /> INT32U paadd32;<br /> INT32U temp32;<br /> paadd32=0;<br /> <br /> <br /> <br /> <br /> for(INT32U i=0;i<240*1024;i+=256)//读240K,从0x8000开始的MCU中FLASH中的值 ,程序此时也在这个区运行<br /> {<br /> for(INT32U m=0;m<256;m+=4)<br /> {<br /> runproadd+=4;<br /> temp32=(*((INT32U *) (runproadd)));//volatile <br /> tempbuf[m]=temp32;<br /> tempbuf[m+1]=temp32>>8;<br /> tempbuf[m+2]=temp32>>16;<br /> tempbuf[m+3]=temp32>>24;<br /> //为什么么0x8010,8030的值都不对呀?只要是runproadd=0xXXXC.只<br />//要最后4位是C,理应读0xXXXC+4地址的值 。实际上值总是不对?我读的有<br />//问题吗?<br /> ///////////////////////// <br /> }<br /> <br /> <br /> }<br />}<br />//我用的是2136<br /> <br /> <br /> |
|