OBJTREE := $(CURDIR)
SRCTREE := $(CURDIR)
TOPDIR := $(SRCTREE)
LNDIR := $(OBJTREE)
obj :=
src :=
CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
TEXT_BASE = 0xc0008000
CC = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
export CROSS_COMPILE CC
OBJS =
LIBS += s3c6410/libarch.a
LIBS += common/libcommon.a
LIBS += $(BOARDLIBS)
__OBJS := $(subst $(obj),,$(OBJS))
__LIBS := $(subst $(obj),,$(LIBS))
#########################################################################
#walt
%.o: %.S
arm-linux-gcc -c -o $@ $<
%.o: %.c
arm-linux-gcc -c -o $@ $<
6410_test.bin:6410_test
arm-linux-objcopy --gap-fill=0xff -O binary $< $@
arm-linux-objdump -D $< > $<.dis
6410_test:depend $(SUBDIRS) $(OBJS) $(LIBS) 6410_test.lds
UNDEF_SYM=`arm-linux-objdump -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
cd $(LNDIR) && arm-linux-ld -Bstatic -T 6410_test.lds -Ttext $(TEXT_BASE) $$UNDEF_SYM $(__OBJS) \
--start-group $(__LIBS) -Map 6410_test.map -o 6410_test
$(OBJS):
make -C cpu/$(s3c64xx)
$(LIBS):
make -C $(dir $(subst $(obj),,$@))
$(SUBDIRS):
make -C $@ all
depend dep:
for dir in $(SUBDIRS) ; do make -C; done
#########################################################################
clean:
find $(OBJTREE) -type f \( -name '*.o' -o -name '*.a' \) -print | xargs rm -f
rm -f 6410_test
rm -f 6410_test.bin
rm -f 6410_test.dis
rm -f 6410_test.map
#########################################################################
6410_test.lds:
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(__ENTRY)
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
s3c6410/6410init.o
(.text)
*(.text)
}
. = ALIGN(4);
.rodata : { *(.rodata) }
. = ALIGN(4);
.data : { *(.data) }
. = ALIGN(4);
.got : { *(.got) }
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = ALIGN(4);
.mmudata : { *(.mmudata) }
. = ALIGN(4);
__bss_start = .;
.bss : { *(.bss) }
_end = .;
}
6410_test.dis:
6410_test: file format elf32-littlearm
Disassembly of section .text:
c0008000 <__ENTRY>:
c0008000: ea00003d
b c00080fc <ResetHandler>
c0008004: ea00001b
b c0008078 <HandlerUndef>
c0008008: ea000020
b c0008090 <HandlerSWI>
c000800c: ea00002b
b c00080c0 <HandlerPabort>
c0008010: ea000024
b c00080a8 <HandlerDabort>
c0008014: eafffffe
b c0008014 <__ENTRY+0x14>
c0008018: ea000010
b c0008060 <HandlerIRQ>
c000801c: ea000009
b c0008048 <HandlerFIQ>
c0008020: ea000014
b c0008078 <HandlerUndef>
c0008024 <ChangeBigEndian>:
c0008024: 0f10ee11
.word 0x0f10ee11
c0008028: 0080e380
.word 0x0080e380
c000802c: 0f10ee01
.word 0x0f10ee01
c0008030: ffffffff
.word 0xffffffff
c0008034: ffffffff
.word 0xffffffff
c0008038: ffffffff
.word 0xffffffff
c000803c: ffffffff
.word 0xffffffff
c0008040: ffffffff
.word 0xffffffff
c0008044: ea00002c
b c00080fc <ResetHandler>
c0008048 <HandlerFIQ>:
c0008048: e24dd004
sub sp, sp, #4
; 0x4
c000804c: e92d0001
push {r0}
c0008050: e59f0100
ldr r0, [pc, #256]
; c0008158 <InitStacks+0x4c>
c0008054: e5900000
ldr r0, [r0]
c0008058: e58d0004
str r0, [sp, #4]
c000805c: e8bd8001
pop {r0, pc}
c0008060 <HandlerIRQ>:
c0008060: e24dd004
sub sp, sp, #4
; 0x4
c0008064: e92d0001
push {r0}
c0008068: e59f00ec
ldr r0, [pc, #236]
; c000815c <InitStacks+0x50>
c000806c: e5900000
ldr r0, [r0]
c0008070: e58d0004
str r0, [sp, #4]
c0008074: e8bd8001
pop {r0, pc}
c0008078 <HandlerUndef>:
c0008078: e24dd004
sub sp, sp, #4
; 0x4
c000807c: e92d0001
push {r0}
c0008080: e59f00d8
ldr r0, [pc, #216]
; c0008160 <InitStacks+0x54>
c0008084: e5900000
ldr r0, [r0]
c0008088: e58d0004
str r0, [sp, #4]
c000808c: e8bd8001
pop {r0, pc}
c0008090 <HandlerSWI>:
c0008090: e24dd004
sub sp, sp, #4
; 0x4
c0008094: e92d0001
push {r0}
c0008098: e59f00c4
ldr r0, [pc, #196]
; c0008164 <InitStacks+0x58>
c000809c: e5900000
ldr r0, [r0]
c00080a0: e58d0004
str r0, [sp, #4]
c00080a4: e8bd8001
pop {r0, pc}
c00080a8 <HandlerDabort>:
c00080a8: e24dd004
sub sp, sp, #4
; 0x4
c00080ac: e92d0001
push {r0}
c00080b0: e59f00b0
ldr r0, [pc, #176]
; c0008168 <InitStacks+0x5c>
c00080b4: e5900000
ldr r0, [r0]
c00080b8: e58d0004
str r0, [sp, #4]
c00080bc: e8bd8001
pop {r0, pc}
c00080c0 <HandlerPabort>:
c00080c0: e24dd004
sub sp, sp, #4
; 0x4
c00080c4: e92d0001
push {r0}
c00080c8: e59f009c
ldr r0, [pc, #156]
; c000816c <InitStacks+0x60>
c00080cc: e5900000
ldr r0, [r0]
c00080d0: e58d0004
str r0, [sp, #4]
c00080d4: e8bd8001
pop {r0, pc}
c00080d8 <IsrIRQ>:
c00080d8: e24dd004
sub sp, sp, #4
; 0x4
c00080dc: e92d0300
push {r8, r9}
c00080e0: e59f9088
ldr r9, [pc, #136]
; c0008170 <InitStacks+0x64>
c00080e4: e5999000
ldr r9, [r9]
c00080e8: e59f8084
ldr r8, [pc, #132]
; c0008174 <InitStacks+0x68>
c00080ec: e0888109
add r8, r8, r9, lsl #2
c00080f0: e5988000
ldr r8, [r8]
c00080f4: e58d8008
str r8, [sp, #8]
c00080f8: e8bd8300
pop {r8, r9, pc}
c00080fc <ResetHandler>:
c00080fc: eb000002
bl c000810c <InitStacks>
c0008100: e59f0054
ldr r0, [pc, #84]
; c000815c <InitStacks+0x50>
c0008104: eb000034
bl c00081dc <Main>
c0008108: eafffffe
b c0008108 <ResetHandler+0xc>
c000810c <InitStacks>:
c000810c: e10f0000
mrs r0, CPSR
c0008110: e3c0001f
bic r0, r0, #31
; 0x1f
c0008114: e38010db
orr r1, r0, #219
; 0xdb
c0008118: e12ff001
msr CPSR_fsxc, r1
c000811c: e59fd054
ldr sp, [pc, #84]
; c0008178 <InitStacks+0x6c>
c0008120: e38010d7
orr r1, r0, #215
; 0xd7
c0008124: e12ff001
msr CPSR_fsxc, r1
c0008128: e59fd04c
ldr sp, [pc, #76]
; c000817c <InitStacks+0x70>
c000812c: e38010d2
orr r1, r0, #210
; 0xd2
c0008130: e12ff001
msr CPSR_fsxc, r1
c0008134: e59fd044
ldr sp, [pc, #68]
; c0008180 <InitStacks+0x74>
c0008138: e38010d1
orr r1, r0, #209
; 0xd1
c000813c: e12ff001
msr CPSR_fsxc, r1
c0008140: e59fd03c
ldr sp, [pc, #60]
; c0008184 <InitStacks+0x78>
c0008144: e3c000df
bic r0, r0, #223
; 0xdf
c0008148: e3801013
orr r1, r0, #19
; 0x13
c000814c: e12ff001
msr CPSR_fsxc, r1
c0008150: e59fd030
ldr sp, [pc, #48]
; c0008188 <InitStacks+0x7c>
c0008154: e1a0f00e
mov pc, lr
c0008158: c7ff7e1c
.word 0xc7ff7e1c
c000815c: c7ff7e18
.word 0xc7ff7e18
c0008160: c7ff7e04
.word 0xc7ff7e04
c0008164: c7ff7e08
.word 0xc7ff7e08
c0008168: c7ff7e10
.word 0xc7ff7e10
c000816c: c7ff7e0c
.word 0xc7ff7e0c
c0008170: 4a000014
.word 0x4a000014
c0008174: c7ff7e20
.word 0xc7ff7e20
c0008178: c7ff5a00
.word 0xc7ff5a00
c000817c: c7ff5e00
.word 0xc7ff5e00
c0008180: c7ff6e00
.word 0xc7ff6e00
c0008184: c7ff7e00
.word 0xc7ff7e00
c0008188: c7ff5600
.word 0xc7ff5600
c000818c <delay_about_1s>:
c000818c: e1a0c00d
mov ip, sp
c0008190: e92dd800
push {fp, ip, lr, pc}
c0008194: e24cb004
sub fp, ip, #4
; 0x4
c0008198: e24dd008
sub sp, sp, #8
; 0x8
c000819c: e3a03000
mov r3, #0
; 0x0
c00081a0: e50b3010
str r3, [fp, #-16]
c00081a4: ea000002
b c00081b4 <delay_about_1s+0x28>
c00081a8: e51b3010
ldr r3, [fp, #-16]
c00081ac: e2833001
add r3, r3, #1
; 0x1
c00081b0: e50b3010
str r3, [fp, #-16]
c00081b4: e51b2010
ldr r2, [fp, #-16]
c00081b8: e3a03605
mov r3, #5242880
; 0x500000
c00081bc: e2433001
sub r3, r3, #1
; 0x1
c00081c0: e1520003
cmp r2, r3
c00081c4: dafffff7
ble c00081a8 <delay_about_1s+0x1c>
c00081c8: e3a03000
mov r3, #0
; 0x0
c00081cc: e1a00003
mov r0, r3
c00081d0: e24bd00c
sub sp, fp, #12
; 0xc
c00081d4: e89d6800
ldm sp, {fp, sp, lr}
c00081d8: e12fff1e
bx lr
c00081dc <Main>:
c00081dc: e1a0c00d
mov ip, sp
c00081e0: e92dd800
push {fp, ip, lr, pc}
c00081e4: e24cb004
sub fp, ip, #4
; 0x4
c00081e8: e24dd018
sub sp, sp, #24
; 0x18
c00081ec: e50b0018
str r0, [fp, #-24]
c00081f0: e50b101c
str r1, [fp, #-28]
c00081f4: eb00016a
bl c00087a4 <uart0_init>
c00081f8: eb000038
bl c00082e0 <gpio_led_init>
c00081fc: e3a00003
mov r0, #3
; 0x3
c0008200: eb0000a0
bl c0008488 <led_off>
c0008204: e59f00cc
ldr r0, [pc, #204]
; c00082d8 <Main+0xfc>
c0008208: eb000102
bl c0008618 <uart_printf>
c000820c: e51b3010
ldr r3, [fp, #-16]
c0008210: e3530000
cmp r3, #0
; 0x0
c0008214: da000024
ble c00082ac <Main+0xd0>
c0008218: e51b2010
ldr r2, [fp, #-16]
c000821c: e3a03801
mov r3, #65536
; 0x10000
c0008220: e2433003
sub r3, r3, #3
; 0x3
c0008224: e1520003
cmp r2, r3
c0008228: ca00001f
bgt c00082ac <Main+0xd0>
c000822c: ebffffd6
bl c000818c <delay_about_1s>
c0008230: e51b1010
ldr r1, [fp, #-16]
c0008234: e59f30a0
ldr r3, [pc, #160]
; c00082dc <Main+0x100>
c0008238: e0c32391
smull r2, r3, r1, r3
c000823c: e1a020c3
asr r2, r3, #1
c0008240: e1a03fc1
asr r3, r1, #31
c0008244: e0632002
rsb r2, r3, r2
c0008248: e50b2024
str r2, [fp, #-36]
c000824c: e51b3024
ldr r3, [fp, #-36]
c0008250: e1a03103
lsl r3, r3, #2
c0008254: e51b2024
ldr r2, [fp, #-36]
c0008258: e0833002
add r3, r3, r2
c000825c: e0631001
rsb r1, r3, r1
c0008260: e50b1024
str r1, [fp, #-36]
c0008264: e51b0024
ldr r0, [fp, #-36]
c0008268: eb000086
bl c0008488 <led_off>
c000826c: ebffffc6
bl c000818c <delay_about_1s>
c0008270: e51b1010
ldr r1, [fp, #-16]
c0008274: e59f3060
ldr r3, [pc, #96]
; c00082dc <Main+0x100>
c0008278: e0c32391
smull r2, r3, r1, r3
c000827c: e1a020c3
asr r2, r3, #1
c0008280: e1a03fc1
asr r3, r1, #31
c0008284: e0632002
rsb r2, r3, r2
c0008288: e50b2020
str r2, [fp, #-32]
c000828c: e51b3020
ldr r3, [fp, #-32]
c0008290: e1a03103
lsl r3, r3, #2
c0008294: e51b2020
ldr r2, [fp, #-32]
c0008298: e0833002
add r3, r3, r2
c000829c: e0631001
rsb r1, r3, r1
c00082a0: e50b1020
str r1, [fp, #-32]
c00082a4: e51b0020
ldr r0, [fp, #-32]
c00082a8: eb00006b
bl c000845c <led_on>
c00082ac: e51b3010
ldr r3, [fp, #-16]
c00082b0: e2833001
add r3, r3, #1
; 0x1
c00082b4: e50b3010
str r3, [fp, #-16]
c00082b8: e51b2010
ldr r2, [fp, #-16]
c00082bc: e3a03801
mov r3, #65536
; 0x10000
c00082c0: e2433001
sub r3, r3, #1
; 0x1
c00082c4: e1520003
cmp r2, r3
c00082c8: 1affffcf
bne c000820c <Main+0x30>
c00082cc: e3a03001
mov r3, #1
; 0x1
c00082d0: e50b3010
str r3, [fp, #-16]
c00082d4: eaffffcc
b c000820c <Main+0x30>
c00082d8: c00088b4
.word 0xc00088b4
c00082dc: 66666667
.word 0x66666667
c00082e0 <gpio_led_init>:
c00082e0: e1a0c00d
mov ip, sp
c00082e4: e92dd800
push {fp, ip, lr, pc}
c00082e8: e24cb004
sub fp, ip, #4
; 0x4
c00082ec: e24dd008
sub sp, sp, #8
; 0x8
c00082f0: eb000021
bl c000837c <S3C64XX_GetBase_GPM>
c00082f4: e1a03000
mov r3, r0
c00082f8: e50b3010
str r3, [fp, #-16]
c00082fc: e51b3010
ldr r3, [fp, #-16]
c0008300: e5933000
ldr r3, [r3]
c0008304: e1a03823
lsr r3, r3, #16
c0008308: e1a03803
lsl r3, r3, #16
c000830c: e51b2010
ldr r2, [fp, #-16]
c0008310: e5823000
str r3, [r2]
c0008314: e51b3010
ldr r3, [fp, #-16]
c0008318: e5933000
ldr r3, [r3]
c000831c: e3833c11
orr r3, r3, #4352
; 0x1100
c0008320: e3833011
orr r3, r3, #17
; 0x11
c0008324: e51b2010
ldr r2, [fp, #-16]
c0008328: e5823000
str r3, [r2]
c000832c: e51b3010
ldr r3, [fp, #-16]
c0008330: e5933008
ldr r3, [r3, #8]
c0008334: e3c320ff
bic r2, r3, #255
; 0xff
c0008338: e51b3010
ldr r3, [fp, #-16]
c000833c: e5832008
str r2, [r3, #8]
c0008340: e51b3010
ldr r3, [fp, #-16]
c0008344: e5933008
ldr r3, [r3, #8]
c0008348: e38320aa
orr r2, r3, #170
; 0xaa
c000834c: e51b3010
ldr r3, [fp, #-16]
c0008350: e5832008
str r2, [r3, #8]
c0008354: e51b3010
ldr r3, [fp, #-16]
c0008358: e5933004
ldr r3, [r3, #4]
c000835c: e383200f
orr r2, r3, #15
; 0xf
c0008360: e51b3010
ldr r3, [fp, #-16]
c0008364: e5832004
str r2, [r3, #4]
c0008368: e3a03000
mov r3, #0
; 0x0
c000836c: e1a00003
mov r0, r3
c0008370: e24bd00c
sub sp, fp, #12
; 0xc
c0008374: e89d6800
ldm sp, {fp, sp, lr}
c0008378: e12fff1e
bx lr
c000837c <S3C64XX_GetBase_GPM>:
c000837c: e1a0c00d
mov ip, sp
c0008380: e92dd800
push {fp, ip, lr, pc}
c0008384: e24cb004
sub fp, ip, #4
; 0x4
c0008388: e3a0347f
mov r3, #2130706432
; 0x7f000000
c000838c: e2833b22
add r3, r3, #34816
; 0x8800
c0008390: e2833020
add r3, r3, #32
; 0x20
c0008394: e1a00003
mov r0, r3
c0008398: e24bd00c
sub sp, fp, #12
; 0xc
c000839c: e89d6800
ldm sp, {fp, sp, lr}
c00083a0: e12fff1e
bx lr
c00083a4 <led_onff>:
c00083a4: e1a0c00d
mov ip, sp
c00083a8: e92dd800
push {fp, ip, lr, pc}
c00083ac: e24cb004
sub fp, ip, #4
; 0x4
c00083b0: e24dd010
sub sp, sp, #16
; 0x10
c00083b4: e50b0018
str r0, [fp, #-24]
c00083b8: e50b101c
str r1, [fp, #-28]
c00083bc: ebffffee
bl c000837c <S3C64XX_GetBase_GPM>
c00083c0: e1a03000
mov r3, r0
c00083c4: e50b3010
str r3, [fp, #-16]
c00083c8: e51b3018
ldr r3, [fp, #-24]
c00083cc: e3530000
cmp r3, #0
; 0x0
c00083d0: da00001e
ble c0008450 <led_onff+0xac>
c00083d4: e51b3018
ldr r3, [fp, #-24]
c00083d8: e3530004
cmp r3, #4
; 0x4
c00083dc: da000000
ble c00083e4 <led_onff+0x40>
c00083e0: ea00001a
b c0008450 <led_onff+0xac>
c00083e4: e51b3018
ldr r3, [fp, #-24]
c00083e8: e2433001
sub r3, r3, #1
; 0x1
c00083ec: e50b3018
str r3, [fp, #-24]
c00083f0: e3a02001
mov r2, #1
; 0x1
c00083f4: e51b3018
ldr r3, [fp, #-24]
c00083f8: e1a03312
lsl r3, r2, r3
c00083fc: e50b3014
str r3, [fp, #-20]
c0008400: e51b301c
ldr r3, [fp, #-28]
c0008404: e2033001
and r3, r3, #1
; 0x1
c0008408: e50b301c
str r3, [fp, #-28]
c000840c: e51b301c
ldr r3, [fp, #-28]
c0008410: e3530000
cmp r3, #0
; 0x0
c0008414: 0a000007
beq c0008438 <led_onff+0x94>
c0008418: e51b3010
ldr r3, [fp, #-16]
c000841c: e5932004
ldr r2, [r3, #4]
c0008420: e51b3014
ldr r3, [fp, #-20]
c0008424: e1e03003
mvn r3, r3
c0008428: e0022003
and r2, r2, r3
c000842c: e51b3010
ldr r3, [fp, #-16]
c0008430: e5832004
str r2, [r3, #4]
c0008434: ea000005
b c0008450 <led_onff+0xac>
c0008438: e51b3010
ldr r3, [fp, #-16]
c000843c: e5932004
ldr r2, [r3, #4]
c0008440: e51b3014
ldr r3, [fp, #-20]
c0008444: e1822003
orr r2, r2, r3
c0008448: e51b3010
ldr r3, [fp, #-16]
c000844c: e5832004
str r2, [r3, #4]
c0008450: e24bd00c
sub sp, fp, #12
; 0xc
c0008454: e89d6800
ldm sp, {fp, sp, lr}
c0008458: e12fff1e
bx lr
c000845c <led_on>:
c000845c: e1a0c00d
mov ip, sp
c0008460: e92dd800
push {fp, ip, lr, pc}
c0008464: e24cb004
sub fp, ip, #4
; 0x4
c0008468: e24dd008
sub sp, sp, #8
; 0x8
c000846c: e50b0010
str r0, [fp, #-16]
c0008470: e51b0010
ldr r0, [fp, #-16]
c0008474: e3a01001
mov r1, #1
; 0x1
c0008478: ebffffc9
bl c00083a4 <led_onff>
c000847c: e24bd00c
sub sp, fp, #12
; 0xc
c0008480: e89d6800
ldm sp, {fp, sp, lr}
c0008484: e12fff1e
bx lr
c0008488 <led_off>:
c0008488: e1a0c00d
mov ip, sp
c000848c: e92dd800
push {fp, ip, lr, pc}
c0008490: e24cb004
sub fp, ip, #4
; 0x4
c0008494: e24dd008
sub sp, sp, #8
; 0x8
c0008498: e50b0010
str r0, [fp, #-16]
c000849c: e51b0010
ldr r0, [fp, #-16]
c00084a0: e3a01000
mov r1, #0
; 0x0
c00084a4: ebffffbe
bl c00083a4 <led_onff>
c00084a8: e24bd00c
sub sp, fp, #12
; 0xc
c00084ac: e89d6800
ldm sp, {fp, sp, lr}
c00084b0: e12fff1e
bx lr
c00084b4 <uart_putc>:
c00084b4: e1a0c00d
mov ip, sp
c00084b8: e92dd800
push {fp, ip, lr, pc}
c00084bc: e24cb004
sub fp, ip, #4
; 0x4
c00084c0: e24dd010
sub sp, sp, #16
; 0x10
c00084c4: e50b0018
str r0, [fp, #-24]
c00084c8: e3a0347f
mov r3, #2130706432
; 0x7f000000
c00084cc: e2833a05
add r3, r3, #20480
; 0x5000
c00084d0: e2833020
add r3, r3, #32
; 0x20
c00084d4: e50b3010
str r3, [fp, #-16]
c00084d8: e51b2010
ldr r2, [fp, #-16]
c00084dc: e51b3018
ldr r3, [fp, #-24]
c00084e0: e5823000
str r3, [r2]
c00084e4: e24bd00c
sub sp, fp, #12
; 0xc
c00084e8: e89d6800
ldm sp, {fp, sp, lr}
c00084ec: e12fff1e
bx lr
c00084f0 <serial_tstc>:
c00084f0: e1a0c00d
mov ip, sp
c00084f4: e92dd800
push {fp, ip, lr, pc}
c00084f8: e24cb004
sub fp, ip, #4
; 0x4
c00084fc: e24dd008
sub sp, sp, #8
; 0x8
c0008500: e3a00000
mov r0, #0
; 0x0
c0008504: eb000008
bl c000852c <S3C64XX_GetBase_UART>
c0008508: e1a03000
mov r3, r0
c000850c: e50b3010
str r3, [fp, #-16]
c0008510: e51b3010
ldr r3, [fp, #-16]
c0008514: e5933010
ldr r3, [r3, #16]
c0008518: e2033001
and r3, r3, #1
; 0x1
c000851c: e1a00003
mov r0, r3
c0008520: e24bd00c
sub sp, fp, #12
; 0xc
c0008524: e89d6800
ldm sp, {fp, sp, lr}
c0008528: e12fff1e
bx lr
c000852c <S3C64XX_GetBase_UART>:
c000852c: e1a0c00d
mov ip, sp
c0008530: e92dd800
push {fp, ip, lr, pc}
c0008534: e24cb004
sub fp, ip, #4
; 0x4
c0008538: e24dd008
sub sp, sp, #8
; 0x8
c000853c: e50b0010
str r0, [fp, #-16]
c0008540: e51b3010
ldr r3, [fp, #-16]
c0008544: e1a03703
lsl r3, r3, #14
c0008548: e283347f
add r3, r3, #2130706432
; 0x7f000000
c000854c: e2833a05
add r3, r3, #20480
; 0x5000
c0008550: e1a00003
mov r0, r3
c0008554: e24bd00c
sub sp, fp, #12
; 0xc
c0008558: e89d6800
ldm sp, {fp, sp, lr}
c000855c: e12fff1e
bx lr
c0008560 <serial_getc>:
c0008560: e1a0c00d
mov ip, sp
c0008564: e92dd800
push {fp, ip, lr, pc}
c0008568: e24cb004
sub fp, ip, #4
; 0x4
c000856c: e24dd008
sub sp, sp, #8
; 0x8
c0008570: e3a00000
mov r0, #0
; 0x0
c0008574: ebffffec
bl c000852c <S3C64XX_GetBase_UART>
c0008578: e1a03000
mov r3, r0
c000857c: e50b3010
str r3, [fp, #-16]
c0008580: e51b3010
ldr r3, [fp, #-16]
c0008584: e5933010
ldr r3, [r3, #16]
c0008588: e2033001
and r3, r3, #1
; 0x1
c000858c: e3530000
cmp r3, #0
; 0x0
c0008590: 0afffffa
beq c0008580 <serial_getc+0x20>
c0008594: e51b3010
ldr r3, [fp, #-16]
c0008598: e5933024
ldr r3, [r3, #36]
c000859c: e20330ff
and r3, r3, #255
; 0xff
c00085a0: e1a00003
mov r0, r3
c00085a4: e24bd00c
sub sp, fp, #12
; 0xc
c00085a8: e89d6800
ldm sp, {fp, sp, lr}
c00085ac: e12fff1e
bx lr
c00085b0 <serial_putc>:
c00085b0: e1a0c00d
mov ip, sp
c00085b4: e92dd800
push {fp, ip, lr, pc}
c00085b8: e24cb004
sub fp, ip, #4
; 0x4
c00085bc: e24dd010
sub sp, sp, #16
; 0x10
c00085c0: e1a03000
mov r3, r0
c00085c4: e54b3015
strb r3, [fp, #-21]
c00085c8: e3a00000
mov r0, #0
; 0x0
c00085cc: ebffffd6
bl c000852c <S3C64XX_GetBase_UART>
c00085d0: e1a03000
mov r3, r0
c00085d4: e50b3010
str r3, [fp, #-16]
c00085d8: e51b3010
ldr r3, [fp, #-16]
c00085dc: e5933010
ldr r3, [r3, #16]
c00085e0: e2033002
and r3, r3, #2
; 0x2
c00085e4: e3530000
cmp r3, #0
; 0x0
c00085e8: 0afffffa
beq c00085d8 <serial_putc+0x28>
c00085ec: e55b3015
ldrb r3, [fp, #-21]
c00085f0: e51b2010
ldr r2, [fp, #-16]
c00085f4: e5823020
str r3, [r2, #32]
c00085f8: e55b3015
ldrb r3, [fp, #-21]
c00085fc: e353000a
cmp r3, #10
; 0xa
c0008600: 1a000001
bne c000860c <serial_putc+0x5c>
c0008604: e3a0000d
mov r0, #13
; 0xd
c0008608: ebffffe8
bl c00085b0 <serial_putc>
c000860c: e24bd00c
sub sp, fp, #12
; 0xc
c0008610: e89d6800
ldm sp, {fp, sp, lr}
c0008614: e12fff1e
bx lr
c0008618 <uart_printf>:
c0008618: e1a0c00d
mov ip, sp
c000861c: e92dd800
push {fp, ip, lr, pc}
c0008620: e24cb004
sub fp, ip, #4
; 0x4
c0008624: e24dd008
sub sp, sp, #8
; 0x8
c0008628: e50b0010
str r0, [fp, #-16]
c000862c: ea000006
b c000864c <uart_printf+0x34>
c0008630: e51b3010
ldr r3, [fp, #-16]
c0008634: e5d32000
ldrb r2, [r3]
c0008638: e51b3010
ldr r3, [fp, #-16]
c000863c: e2833001
add r3, r3, #1
; 0x1
c0008640: e50b3010
str r3, [fp, #-16]
c0008644: e1a00002
mov r0, r2
c0008648: ebffffd8
bl c00085b0 <serial_putc>
c000864c: e51b3010
ldr r3, [fp, #-16]
c0008650: e5d33000
ldrb r3, [r3]
c0008654: e3530000
cmp r3, #0
; 0x0
c0008658: 1afffff4
bne c0008630 <uart_printf+0x18>
c000865c: e24bd00c
sub sp, fp, #12
; 0xc
c0008660: e89d6800
ldm sp, {fp, sp, lr}
c0008664: e12fff1e
bx lr
c0008668 <uart_rx>:
c0008668: e1a0c00d
mov ip, sp
c000866c: e92dd800
push {fp, ip, lr, pc}
c0008670: e24cb004
sub fp, ip, #4
; 0x4
c0008674: e24dd008
sub sp, sp, #8
; 0x8
c0008678: e1a03000
mov r3, r0
c000867c: e54b300d
strb r3, [fp, #-13]
c0008680: e55b300d
ldrb r3, [fp, #-13]
c0008684: e353000d
cmp r3, #13
; 0xd
c0008688: 1a000001
bne c0008694 <uart_rx+0x2c>
c000868c: e3a0300a
mov r3, #10
; 0xa
c0008690: e54b300d
strb r3, [fp, #-13]
c0008694: e55b300d
ldrb r3, [fp, #-13]
c0008698: e1a00003
mov r0, r3
c000869c: ebffffc3
bl c00085b0 <serial_putc>
c00086a0: e24bd00c
sub sp, fp, #12
; 0xc
c00086a4: e89d6800
ldm sp, {fp, sp, lr}
c00086a8: e12fff1e
bx lr
c00086ac <uart_err>:
c00086ac: e1a0c00d
mov ip, sp
c00086b0: e92dd800
push {fp, ip, lr, pc}
c00086b4: e24cb004
sub fp, ip, #4
; 0x4
c00086b8: e59f000c
ldr r0, [pc, #12]
; c00086cc <uart_err+0x20>
c00086bc: ebffffd5
bl c0008618 <uart_printf>
c00086c0: e24bd00c
sub sp, fp, #12
; 0xc
c00086c4: e89d6800
ldm sp, {fp, sp, lr}
c00086c8: e12fff1e
bx lr
c00086cc: c00088c4
.word 0xc00088c4
c00086d0 <uart0_isr>:
c00086d0: e1a0c00d
mov ip, sp
c00086d4: e92dd800
push {fp, ip, lr, pc}
c00086d8: e24cb004
sub fp, ip, #4
; 0x4
c00086dc: e24dd018
sub sp, sp, #24
; 0x18
c00086e0: e50b0020
str r0, [fp, #-32]
c00086e4: e3a00000
mov r0, #0
; 0x0
c00086e8: ebffff8f
bl c000852c <S3C64XX_GetBase_UART>
c00086ec: e1a03000
mov r3, r0
c00086f0: e50b3010
str r3, [fp, #-16]
c00086f4: e3a03471
mov r3, #1895825408
; 0x71000000
c00086f8: e2833602
add r3, r3, #2097152
; 0x200000
c00086fc: e2833c0f
add r3, r3, #3840
; 0xf00
c0008700: e50b3018
str r3, [fp, #-24]
c0008704: e51b3018
ldr r3, [fp, #-24]
c0008708: e5933000
ldr r3, [r3]
c000870c: e50b3014
str r3, [fp, #-20]
c0008710: e51b3010
ldr r3, [fp, #-16]
c0008714: e5933030
ldr r3, [r3, #48]
c0008718: e50b3014
str r3, [fp, #-20]
c000871c: e59f307c
ldr r3, [pc, #124]
; c00087a0 <uart0_isr+0xd0>
c0008720: e5933000
ldr r3, [r3]
c0008724: e1a01003
mov r1, r3
c0008728: e2832001
add r2, r3, #1
; 0x1
c000872c: e59f306c
ldr r3, [pc, #108]
; c00087a0 <uart0_isr+0xd0>
c0008730: e5832000
str r2, [r3]
c0008734: e3a00001
mov r0, #1
; 0x1
c0008738: ebffff19
bl c00083a4 <led_onff>
c000873c: e51b3014
ldr r3, [fp, #-20]
c0008740: e2033001
and r3, r3, #1
; 0x1
c0008744: e20330ff
and r3, r3, #255
; 0xff
c0008748: e3530000
cmp r3, #0
; 0x0
c000874c: 0a000005
beq c0008768 <uart0_isr+0x98>
c0008750: e51b3010
ldr r3, [fp, #-16]
c0008754: e5933024
ldr r3, [r3, #36]
c0008758: e20330ff
and r3, r3, #255
; 0xff
c000875c: e1a00003
mov r0, r3
c0008760: ebffffc0
bl c0008668 <uart_rx>
c0008764: ea000004
b c000877c <uart0_isr+0xac>
c0008768: e51b3014
ldr r3, [fp, #-20]
c000876c: e2033002
and r3, r3, #2
; 0x2
c0008770: e3530000
cmp r3, #0
; 0x0
c0008774: 0a000000
beq c000877c <uart0_isr+0xac>
c0008778: ebffffcb
bl c00086ac <uart_err>
c000877c: e51b2010
ldr r2, [fp, #-16]
c0008780: e51b3014
ldr r3, [fp, #-20]
c0008784: e5823030
str r3, [r2, #48]
c0008788: e51b2018
ldr r2, [fp, #-24]
c000878c: e3a03000
mov r3, #0
; 0x0
c0008790: e5823000
str r3, [r2]
c0008794: e24bd00c
sub sp, fp, #12
; 0xc
c0008798: e89d6800
ldm sp, {fp, sp, lr}
c000879c: e12fff1e
bx lr
c00087a0: c00088dc
.word 0xc00088dc
c00087a4 <uart0_init>:
c00087a4: e1a0c00d
mov ip, sp
c00087a8: e92dd800
push {fp, ip, lr, pc}
c00087ac: e24cb004
sub fp, ip, #4
; 0x4
c00087b0: e24dd008
sub sp, sp, #8
; 0x8
c00087b4: e3a00000
mov r0, #0
; 0x0
c00087b8: ebffff5b
bl c000852c <S3C64XX_GetBase_UART>
c00087bc: e1a03000
mov r3, r0
c00087c0: e50b3014
str r3, [fp, #-20]
c00087c4: eb000031
bl c0008890 <S3C64XX_GetBase_GPA>
c00087c8: e1a03000
mov r3, r0
c00087cc: e50b3010
str r3, [fp, #-16]
c00087d0: e51b3010
ldr r3, [fp, #-16]
c00087d4: e5933000
ldr r3, [r3]
c00087d8: e3c320ff
bic r2, r3, #255
; 0xff
c00087dc: e51b3010
ldr r3, [fp, #-16]
c00087e0: e5832000
str r2, [r3]
c00087e4: e51b3010
ldr r3, [fp, #-16]
c00087e8: e5933000
ldr r3, [r3]
c00087ec: e3832022
orr r2, r3, #34
; 0x22
c00087f0: e51b3010
ldr r3, [fp, #-16]
c00087f4: e5832000
str r2, [r3]
c00087f8: e51b2014
ldr r2, [fp, #-20]
c00087fc: e3a03003
mov r3, #3
; 0x3
c0008800: e5823000
str r3, [r2]
c0008804: e51b2014
ldr r2, [fp, #-20]
c0008808: e3a03d39
mov r3, #3648
; 0xe40
c000880c: e2833005
add r3, r3, #5
; 0x5
c0008810: e5823004
str r3, [r2, #4]
c0008814: e51b2014
ldr r2, [fp, #-20]
c0008818: e3a03000
mov r3, #0
; 0x0
c000881c: e5823008
str r3, [r2, #8]
c0008820: e51b2014
ldr r2, [fp, #-20]
c0008824: e3a03000
mov r3, #0
; 0x0
c0008828: e582300c
str r3, [r2, #12]
c000882c: e51b2014
ldr r2, [fp, #-20]
c0008830: e3a03022
mov r3, #34
; 0x22
c0008834: e5823028
str r3, [r2, #40]
c0008838: e51b2014
ldr r2, [fp, #-20]
c000883c: e3a03d7f
mov r3, #8128
; 0x1fc0
c0008840: e283303f
add r3, r3, #63
; 0x3f
c0008844: e582302c
str r3, [r2, #44]
c0008848: e51b2014
ldr r2, [fp, #-20]
c000884c: e3a0300c
mov r3, #12
; 0xc
c0008850: e5823038
str r3, [r2, #56]
c0008854: e51b2014
ldr r2, [fp, #-20]
c0008858: e3a0300f
mov r3, #15
; 0xf
c000885c: e5823034
str r3, [r2, #52]
c0008860: e51b2014
ldr r2, [fp, #-20]
c0008864: e3a0300f
mov r3, #15
; 0xf
c0008868: e5823030
str r3, [r2, #48]
c000886c: e3e0330e
mvn r3, #939524096
; 0x38000000
c0008870: e2433c81
sub r3, r3, #33024
; 0x8100
c0008874: e243304b
sub r3, r3, #75
; 0x4b
c0008878: e59f200c
ldr r2, [pc, #12]
; c000888c <uart0_init+0xe8>
c000887c: e5832000
str r2, [r3]
c0008880: e24bd00c
sub sp, fp, #12
; 0xc
c0008884: e89d6800
ldm sp, {fp, sp, lr}
c0008888: e12fff1e
bx lr
c000888c: c00086d0
.word 0xc00086d0
c0008890 <S3C64XX_GetBase_GPA>:
c0008890: e1a0c00d
mov ip, sp
c0008894: e92dd800
push {fp, ip, lr, pc}
c0008898: e24cb004
sub fp, ip, #4
; 0x4
c000889c: e3a0347f
mov r3, #2130706432
; 0x7f000000
c00088a0: e2833902
add r3, r3, #32768
; 0x8000
c00088a4: e1a00003
mov r0, r3
c00088a8: e24bd00c
sub sp, fp, #12
; 0xc
c00088ac: e89d6800
ldm sp, {fp, sp, lr}
c00088b0: e12fff1e
bx lr
Disassembly of section .rodata:
c00088b4 <.rodata>:
c00088b4: 6c65480a
stclvs 8, cr4, [r5], #-40
c00088b8: 57206f6c
.word 0x57206f6c
c00088bc: 646c726f
strbtvs r7, [ip], #-623
c00088c0: 00000a21
andeq r0, r0, r1, lsr #20
c00088c4: 74726175
.word 0x74726175
c00088c8: 20787220
rsbscs r7, r8, r0, lsr #4
c00088cc: 20727265
rsbscs r7, r2, r5, ror #4
c00088d0: 72746e69
.word 0x72746e69
c00088d4: 74707572
ldrbtvc r7, [r0], #-1394
c00088d8: 00000a21
andeq r0, r0, r1, lsr #20
Disassembly of section .bss:
c00088dc <uart_rx_cnt>:
c00088dc: 00000000
andeq r0, r0, r0
Disassembly of section .ARM.attributes:
00000000 <.ARM.attributes>:
0: 00001741
andeq r1, r0, r1, asr #14
4: 61656100
cmnvs r5, r0, lsl #2
8: 01006962
tsteq r0, r2, ror #18
c: 0000000d
andeq r0, r0, sp
10: 00543405
subseq r3, r4, r5, lsl #8
14: 01080206
tsteq r8, r6, lsl #4
Disassembly of section .comment:
00000000 <.comment>:
0: 43434700
movtmi r4, #14080
; 0x3700
4: 4728203a
undefined
8: 2029554e
eorcs r5, r9, lr, asr #10
c: 2e322e34
mrccs 14, 1, r2, cr2, cr4, {1}
10: 47000032
smladxmi r0, r2, r0, r0
14: 203a4343
eorscs r4, sl, r3, asr #6
18: 554e4728
strbpl r4, [lr, #-1832]
1c: 2e342029
cdpcs 0, 3, cr2, cr4, cr9, {1}
20: 00322e32
eorseq r2, r2, r2, lsr lr
24: 43434700
movtmi r4, #14080
; 0x3700
28: 4728203a
undefined
2c: 2029554e
eorcs r5, r9, lr, asr #10
30: 2e322e34
mrccs 14, 1, r2, cr2, cr4, {1}
34: Address 0x00000034 is out of bounds.
剩下兩個資料夾:common和s3c6410資料夾,裏面簡化得就剩makefile和源文件,
libcommon.a:main.o led.o uart.o
arm-linux-ar rv $@ main.o led.o uart.
libarch.a:6410init.o
arm-linux-ar crv $@ 6410init.o