在编译startup.A51时可能会遇到找不到?C_START的问题.
有人说这个定义在运行库里,可以加入C:KeilC51LIBC51S.lib解决,
或者在Project里加入STARTUP.A51将其中的?C_START替换成main即可.
可是我改了还是出现这个问题啊?
我在C里面有加入汇编的程序.然后用了
#pragmasrc
.
.
.
#pragmaasm
...
#pragmaendasm
只要去掉
#pragmaasm
...
#pragmaendasm这部分程序就可以通过.有那段的话就会一直找不到?C_START.
请教大家这是什么原因?怎么解决?
答:
定义在C:KeilC51LIBINIT.A51中,源代码如下:
?C_START:
MOV DPTR,#?C_INITSEG
Loop:
WATCHDOG
CLR A
MOV R6,#1
MOVC A,@A+DPTR
JZ INITEND
INC DPTR
MOV R7,A
ANL A,#3FH
JNB ACC.5,NOBIG
ANL A,#01FH
MOV R6,A
CLR A
MOVC A,@A+DPTR
INC DPTR
JZ NOBIG
INC R6
NOBIG: XCH A,R7