mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 05:24:47 +08:00
2752367979
Selecting this option produces: AS arch/arm/boot/compressed/debug.o arch/arm/boot/compressed/debug.S:4:33: fatal error: mach/debug-macro.S: No such file or directory compilation terminated. make[3]: *** [arch/arm/boot/compressed/debug.o] Error 1 The semihosting support cannot be modelled into a senduart macro as it requires memory space for argument passing. So the CONFIG_DEBUG_LL_INCLUDE may not have any sensible value and the include directive should be omitted. While at it, let's add proper semihosting output support to the decompressor. Signed-off-by: Nicolas Pitre <nico@linaro.org> Acked-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
41 lines
635 B
ArmAsm
41 lines
635 B
ArmAsm
#include <linux/linkage.h>
|
|
#include <asm/assembler.h>
|
|
|
|
#ifndef CONFIG_DEBUG_SEMIHOSTING
|
|
|
|
#include CONFIG_DEBUG_LL_INCLUDE
|
|
|
|
ENTRY(putc)
|
|
addruart r1, r2, r3
|
|
waituart r3, r1
|
|
senduart r0, r1
|
|
busyuart r3, r1
|
|
mov pc, lr
|
|
ENDPROC(putc)
|
|
|
|
#else
|
|
|
|
ENTRY(putc)
|
|
adr r1, 1f
|
|
ldmia r1, {r2, r3}
|
|
add r2, r2, r1
|
|
ldr r1, [r2, r3]
|
|
strb r0, [r1]
|
|
mov r0, #0x03 @ SYS_WRITEC
|
|
ARM( svc #0x123456 )
|
|
THUMB( svc #0xab )
|
|
mov pc, lr
|
|
.align 2
|
|
1: .word _GLOBAL_OFFSET_TABLE_ - .
|
|
.word semi_writec_buf(GOT)
|
|
ENDPROC(putc)
|
|
|
|
.bss
|
|
.global semi_writec_buf
|
|
.type semi_writec_buf, %object
|
|
semi_writec_buf:
|
|
.space 4
|
|
.size semi_writec_buf, 4
|
|
|
|
#endif
|