Error: constant expression required -- `mrc p15,0,r0,c1,c0,

时间:2022-01-29 03:40:24
代码如下:
......
int main()
{
/* enable VE (VIC ENABLE) */
__asm__ __volatile__(
"mrc p15,0,r0,c1,c0,0/n"
"orr r0,r0,#(1<<24)/n"
"mcr p15,0,r0,c1,c0,0"
:::"r0"
);
/* GPIO stuff */
GPNCON &= 1<<2;
GPNCON |= 0x2; // set GPNCON (0-1) to extern interrupt.
GPNPUD &= ~(1<<2); // disable pull down/up.
EINT0CON0 &= 1<< 3;
EINT0CON0 |= 0x3; // set signal both edge trigger.
// EINT0FLTCON0 |= (0x1 << 7);
EINT0MASK &= ~(0x1); // clear the interrupt mask.

/* VIC stuff */
VIC0VECTADDR = &print;
VIC0INTSELECT &= ~(1<<0);
VIC0INTENABLE |= 1<<0;
return 0;
}
void __do_irq(void)
{
show("hello extern interrupt./n");
VIC0IRQSTATUS &= ~(1<<1);
EINT0PEND = 1;
VIC0ADDRESS = 0;
VIC1ADDRESS =0; //just in case.
}

error:
ggjjlldd@ggjjlldd-HuronRiver-Platform:~/os-study/LAKED-PROGRAM/key-interrupt$ make
arm-linux-gcc -g -c key.c -o key.o
key.c: In function 'main':
key.c:41: warning: assignment makes integer from pointer without a cast
/tmp/cc3FVRN4.s: Assembler messages:
/tmp/cc3FVRN4.s:53: Error: constant expression required -- `mrc p15,0,r0,c1,c0,0/norr r0,r0,#(1<<24)/nmcr p15,0,r0,c1,c0,0'
make: *** [key.o] Error 1
出现以上错误,我不知道怎么解决,请教大侠???

1 个解决方案

#1


"mrc p15,0,r0,c1,c0,0\n"
"orr r0,r0,#(1<<24)\n"
"mcr p15,0,r0,c1,c0,0"
:::"r0"
其中,/n写错了\n

#1


"mrc p15,0,r0,c1,c0,0\n"
"orr r0,r0,#(1<<24)\n"
"mcr p15,0,r0,c1,c0,0"
:::"r0"
其中,/n写错了\n