回复: OpenJTAG常见问题

修改了example 下面的 leds.c
改为如下内容

make 后将 load_image leds\leds_elf 0xa0000000 我的板子RAM起始地址是 0xa0000000
然后resume 0xa0000000
报错为 time out writing RX register
我再试试烧到其他地址


#define  __REG(x) (*((volatile unsigned int *)(x)))
#define GPLR0  __REG(0x40E00000)  /* GPIO Pin-Level Register GPIO<31:0> */
#define GPLR1  __REG(0x40E00004)  /* GPIO Pin-Level Register GPIO<63:32> */
#define GPLR2  __REG(0x40E00008)  /* GPIO Pin-Level Register GPIO<80:64> */
#define GPDR0  __REG(0x40E0000C)  /* GPIO Pin Direction Register GPIO<31:0> */
#define GPDR1  __REG(0x40E00010)  /* GPIO Pin Direction Register GPIO<63:32> */
#define GPDR2  __REG(0x40E00014)  /* GPIO Pin Direction Register GPIO<80:64> */
#define GPSR0  __REG(0x40E00018)  /* GPIO Pin Output Set Register GPIO<31:0> */
#define GPSR1  __REG(0x40E0001C)  /* GPIO Pin Output Set Register GPIO<63:32> */
#define GPSR2  __REG(0x40E00020)  /* GPIO Pin Output Set Register GPIO<80:64> */
#define GPCR0  __REG(0x40E00024)  /* GPIO Pin Output Clear Register GPIO<31:0> */
#define GPCR1  __REG(0x40E00028)  /* GPIO Pin Output Clear Register GPIO <63:32> */
#define GPCR2  __REG(0x40E0002C)  /* GPIO Pin Output Clear Register GPIO <80:64> */
void  wait(volatile unsigned long dly)
{
for(; dly > 0; dly--);
}
#define LED1  (1<<(50-32))
#define LED2  (1<<(57-32))
#define LED3  (1<<(51-32))
#define LED4  (1<<(56-32))
int main(void)
{
unsigned long i = 0;
//50 51 56 57
GPDR1=LED1|LED2|LED3|LED4;

while(1){
  wait(30000);
  switch(i){
  case 0: GPSR1=LED1; GPCR1=LED2|LED3|LED4;break;
  case 1: GPSR1=LED2; GPCR1=LED1|LED3|LED4;break;
  case 2: GPSR1=LED3; GPCR1=LED1|LED2|LED4;break;
  case 3: GPSR1=LED4; GPCR1=LED1|LED2|LED3;break;
  }
  i++;
  if(i >= 4)
  {
  i = 0;
  }
}
return 0;
}