40 lines · 635 B · Assembly
RawDownload
#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, lrENDPROC(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	21:	.word	_GLOBAL_OFFSET_TABLE_ - .	.word	semi_writec_buf(GOT)ENDPROC(putc) 	.bss	.global	semi_writec_buf	.type   semi_writec_buf, %objectsemi_writec_buf:	.space	4	.size	semi_writec_buf, 4 #endif