修改了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;
}