阿南版主: 你好!正在学习ARM,有几个问题搞得不是很懂,希望能解释下 1、AXD调式,通过AXD和JTAG结合进入调试,假设SDRAM的起始地址是0X0C000000,是不是程序必须下载到SDRAM中才能进行调试??? 2、用AXD和JTAG结合调试,如果程序必须下载到SDRAM中,那么中断是怎样执行的。当发生IRQ中断了,是跳到0X00地址开始的相应中断,还是跳到SDRAM的起始地址0X0C000000开始的相应是中断地址。 3、关于烧写FLASH,是必须用并口才能烧写空FLASH吗。用串口可以吗。如果可以应该怎样做。 4、下面这段延时程序,是怎样理解。什么要用到WATCH-DOG??也不是很明白这段程序是怎样延时的? static int delayLoopCount=400; void Delay(int time) { int i,adjust=0; if(time==0) { time=200; adjust=1; delayLoopCount=400; rWTCON=((MCLK/1000000-1)<<8)|(2<<3); // 1M/64,Watch-dog,nRESET,interrupt disable rWTDAT=0xffff; rWTCNT=0xffff; WTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); // 1M/64,Watch-dog enable,nRESET,interrupt disable } for(;time>0;time--) for(i=0;i<delayLoopCount;i++); if(adjust==1) { rWTCON=((MCLK/1000000-1)<<8)|(2<<3); i=0xffff-rWTCNT; // 1count/16us????????? delayLoopCount=8000000/(i*64); //400*100/(i*64/200) } }
|