AT9261裸奔,不用操作系统,采用SAM-ICE仿真调试的时候,程序是下载到芯片内部SRAM跑的,而脱机的<br /><br />时候程序是烧写道dataflash里面,资料上说,芯片会自动把dataflash的代码拷贝到芯片sram运行,但结<br /><br />果是脱机运行速度明显慢于仿真速度。<br />经过多次试验,是由STR,LDR这样的指令引起的。<br />例如:<br />int m,n,flag = 0;<br />int ram[256];<br />while(1)<br />{<br /> for(m=0;m<10000;m++)<br /> for(n=0;n<256;n++)<br /> ram[n] = n;//汇编相当于 LDR [Rn+n],#n<br /><br /> if(flag)<br /> pio = 1;//硬件端口便于示波器观测<br /> else<br /> pio = 0;//硬件端口便于示波器观测<br /> flag = ~flag;<br />}<br />我用示波器观测仿真时的波形周期比脱机要小200多ms!!!!<br />这到底是怎么回事,是脱机程序没有下载到sram里面吗? |
|