Linux Audio

Check our new training course

Loading...
 1#include <linux/linkage.h>
 2#include <asm/assembler.h>
 3
 4#ifndef CONFIG_DEBUG_SEMIHOSTING
 5
 6#include CONFIG_DEBUG_LL_INCLUDE
 7
 8ENTRY(putc)
 9	addruart r1, r2, r3
10	waituart r3, r1
11	senduart r0, r1
12	busyuart r3, r1
13	mov	 pc, lr
14ENDPROC(putc)
15
16#else
17
18ENTRY(putc)
19	adr	r1, 1f
20	ldmia	r1, {r2, r3}
21	add	r2, r2, r1
22	ldr	r1, [r2, r3]
23	strb	r0, [r1]
24	mov	r0, #0x03		@ SYS_WRITEC
25   ARM(	svc	#0x123456	)
26 THUMB(	svc	#0xab		)
27	mov	pc, lr
28	.align	2
291:	.word	_GLOBAL_OFFSET_TABLE_ - .
30	.word	semi_writec_buf(GOT)
31ENDPROC(putc)
32
33	.bss
34	.global	semi_writec_buf
35	.type   semi_writec_buf, %object
36semi_writec_buf:
37	.space	4
38	.size	semi_writec_buf, 4
39
40#endif