When I open the macro DEBUG in the front of file arch/arm/boot/decompressed/head.S,the kernel runs and stops at"Uncompressing Linux... done, booting the kernel." CONFIG_DEBUG_ICEDCC is closed by default, so I am sure the code runs tothe following branch: ........... ........... ........... .macro kputc,val mov r0, \val bl putc .endm .macro kphex,val,len mov r0, \val mov r1, #\len bl phex .endm .macro debug_reloc_start #ifdef DEBUG kputc #'\n' kphex r6, 8 /* processor id */ kputc #':' kphex r7, 8 /* architecture id */ ........... ........... ........... Problem is happened in a context like this: I have a board use cpu S5PV210,and an ok kernel provide by the factory anda kernel download from kernel.org which carshed after printing "starting kernel..." to dnw. To debug this,I want to test the macro kputc provided in this file?? using ok kernel. I add a line "kputc #'a' " after the tag ".text", then make error says "undefined reference to `putc' ",it seems that compiler cant find "putc" used in the definition of macro ?kputc?. This is an ok kernel,so I cant say the serial port is not open??can this mean "putc" is defined already?. So I open DEBUG hoping to see debugging info by kernel itself,but it stops at"Uncompressing Linux... done, booting the kernel." Opening DEBUG will lead to the call of ?kputc #'\n' ? in the code above which will also call putc! Here,my questions comes: 1?Why the error " undefined reference to `putc' " disappeared? 2?Why it stops at"Uncompressing Linux... done, booting the kernel."? 3?Can this error ( undefined reference to `putc' ) mean the serial port is not open? Where is it defined ? Is it refer to the C function or just an assembly macro? -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html