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