void main(void) { PTS_PTS1=0; PTS_PTS2=0; PTS_PTS3=1; PTS_PTS4=0; DelayXms(3000); FCNFG= 1; PPAGE=0x20; FlashPointer = &FlashAdr; biao1_data=*(FlashPointer+0x0000); if(biao1_data == Password) { COPCTL=0x05; } DDRT_DDRT1=0; DDRT_DDRT2=0; DDRT_DDRT3=0; FCNFG= 1; PPAGE=0x20; FlashPointer = &FlashAdr; biao1_data=*(FlashPointer+0x0000); if(biao1_data != Password)//密码不通过,则写表格 { .................................................. .................................................... }
以上程序在codewarrior中仿真单步运行,先进入主函数第一行 PTS_PTS1=0; 然后进入start12.c 做初始化 然后到main()函数外面 再单步执行就到 if(Table1_data == Password) (为什么先执行这个if语句呢?) 下一步单才到main()的第一行 PTS_PTS1=0; ..................... ..................... 开始初始化I/0 到这一行时 biao1_data=*(FlashPointer+0x0000); 再单步就先执行到主函数外面 再单步跳到 if(biao1_data != Password)(为什么不是顺序执行呢?而是先到main()函数外面,再跳回来到这一句执行?)
|