Subject: OpenRISC port to NetBSD
To: None <tech-ports@netbsd.org, netbsd-ports@netbsd.org>
From: Nir Mor <nir.mor@gmail.com>
List: tech-ports
Date: 12/21/2004 04:48:03
------=_Part_1895_24459187.1103597283413
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi

Hello I am software engineer.

I am enthusiastic about the NetBSD,OpenRISC and Wishbone projects.

I began the port of OpenRISC to NetBSD.

NetBSD 2.0 uses 2.14 binutils which support OpenRISC.

I have back ported the OR32 form gcc 3.4.2 on opencores CVS to gcc
3.3.3 in netbsd src tree.

I have complied the ork1sim.

To test the binutils and gcc I complied the hello-uart program it now works.
the resualts are attached.

now I am building a skelton kernel files to start the build the NetBSD kernel.

Some qustions for opencores.org;

1 What hardware is recomneded for this port (which reference board to use) ?
2 Is this hardware simulated in ork1sim matches the reference board ?
3 Is there an openfirmware port for OpenRISC.

Some qustions for netbsd.org:

1 Is there a guide of porting a new CPU to NetBSD ?
2 Can i get a branch for this port ?

Thanks.

Nir Mor.

------=_Part_1895_24459187.1103597283413
Content-Type: application/octet-stream; name=hello.s
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="hello.s"

	.file	"hello.c"
.section .text
	.align 4
.proc _uart_init
	.global _uart_init
	.type	_uart_init, @function
_uart_init:

	# gpr_save_area 0 vars 92 current_function_outgoing_args_size 0
	l.addi  	r1,r1,-96
	l.sw    	0(r1),r2
	l.addi  	r2,r1,96
	l.movhi 	r3,hi(-1879048190)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048190)	 # move immediate (low)
	l.sw    	-8(r2),r3
	l.addi  	r3,r0,-57	 # move immediate
	l.lwz    	r4,-8(r2)	 # SI load
	l.sb    	0(r4),r3
	l.movhi 	r4,hi(-1879048191)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048191)	 # move immediate (low)
	l.sw    	-12(r2),r4
	l.addi  	r4,r0,0	 # move immediate
	l.lwz    	r3,-12(r2)	 # SI load
	l.sb    	0(r3),r4
	l.movhi 	r3,hi(-1879048189)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048189)	 # move immediate (low)
	l.sw    	-16(r2),r3
	l.addi  	r3,r0,3	 # move immediate
	l.lwz    	r4,-16(r2)	 # SI load
	l.sb    	0(r4),r3
	l.addi  	r4,r0,162	 # move immediate
	l.sw    	-4(r2),r4
	l.movhi 	r3,hi(-1879048189)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048189)	 # move immediate (low)
	l.sw    	-20(r2),r3
	l.movhi 	r4,hi(-1879048189)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048189)	 # move immediate (low)
	l.sw    	-24(r2),r4
	l.lwz    	r3,-24(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-25(r2),r3
	l.addi  	r3,r0,-128	 # move immediate
	l.lbz   	r4,-25(r2)
	l.or    	r3,r4,r3
	l.sw    	-32(r2),r3
	l.lwz    	r3,-32(r2)	 # SI load
	l.lwz    	r4,-20(r2)	 # SI load
	l.sb    	0(r4),r3
	l.movhi 	r4,hi(-1879048192)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048192)	 # move immediate (low)
	l.sw    	-36(r2),r4
	l.addi  	r3,r0,-1	 # move immediate
	l.sb    	-37(r2),r3
	l.lbz   	r4,-1(r2)
	l.sb    	-41(r2),r4
	l.lbz   	r3,-41(r2)
	l.lbz   	r4,-37(r2)
	l.and   	r3,r3,r4
	l.sw    	-48(r2),r3
	l.lwz    	r4,-48(r2)	 # SI load
	l.lwz    	r3,-36(r2)	 # SI load
	l.sb    	0(r3),r4
	l.movhi 	r3,hi(-1879048191)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048191)	 # move immediate (low)
	l.sw    	-52(r2),r3
	l.lwz    	r4,-4(r2)	 # SI load
	l.sw    	-60(r2),r4
	l.lwz    	r3,-60(r2)	 # SI load
	l.srai  	r3,r3,8
	l.sw    	-56(r2),r3
	l.addi  	r4,r0,-1	 # move immediate
	l.sb    	-61(r2),r4
	l.lwz    	r3,-56(r2)	 # SI load
	l.sb    	-65(r2),r3
	l.lbz   	r4,-65(r2)
	l.lbz   	r3,-61(r2)
	l.and   	r4,r4,r3
	l.sw    	-72(r2),r4
	l.lwz    	r3,-72(r2)	 # SI load
	l.lwz    	r4,-52(r2)	 # SI load
	l.sb    	0(r4),r3
	l.movhi 	r4,hi(-1879048189)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048189)	 # move immediate (low)
	l.sw    	-76(r2),r4
	l.movhi 	r3,hi(-1879048189)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048189)	 # move immediate (low)
	l.sw    	-80(r2),r3
	l.addi  	r4,r0,127	 # move immediate
	l.sb    	-81(r2),r4
	l.lwz    	r3,-80(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-85(r2),r3
	l.lbz   	r4,-85(r2)
	l.lbz   	r3,-81(r2)
	l.and   	r4,r4,r3
	l.sw    	-92(r2),r4
	l.lwz    	r3,-92(r2)	 # SI load
	l.lwz    	r4,-76(r2)	 # SI load
	l.sb    	0(r4),r3
	l.lwz   	r2,0(r1)
	l.jr    	r9
	l.addi  	r1,r1,96
	.size	_uart_init, .-_uart_init
	.align 4
.proc _uart_putc
	.global _uart_putc
	.type	_uart_putc, @function
_uart_putc:

	# gpr_save_area 0 vars 72 current_function_outgoing_args_size 0
	l.addi  	r1,r1,-76
	l.sw    	0(r1),r2
	l.addi  	r2,r1,76
	l.sw    	-8(r2),r3
	l.lwz    	r3,-8(r2)	 # SI load
	l.sb    	-1(r2),r3
.L3:
	l.movhi 	r4,hi(-1879048187)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048187)	 # move immediate (low)
	l.sw    	-12(r2),r4
	l.lwz    	r3,-12(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-2(r2),r3
	l.lbz   	r4,-2(r2)	 # zero_extendqisi2
	l.sw    	-16(r2),r4
	l.lwz    	r3,-16(r2)	 # SI load
	l.srli  	r3,r3,5
	l.sw    	-20(r2),r3
	l.lwz    	r4,-20(r2)	 # SI load
	l.xori  	r4,r4,1
	l.sw    	-24(r2),r4
	l.lwz    	r3,-24(r2)	 # SI load
	l.andi  	r3,r3,1
	l.sw    	-28(r2),r3
	l.lwz    	r4,-28(r2)	 # SI load
	l.sfnei   	r4, 0
	l.bf    	.L3
	l.nop   	0		 # nop delay slot
	l.movhi 	r3,hi(-1879048192)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048192)	 # move immediate (low)
	l.sw    	-32(r2),r3
	l.lbz   	r3,-1(r2)
	l.lwz    	r4,-32(r2)	 # SI load
	l.sb    	0(r4),r3
	l.lbs   	r4,-1(r2)	 # extendqisi2
	l.sw    	-36(r2),r4
	l.lwz    	r3,-36(r2)	 # SI load
	l.sfnei   	r3, 10
	l.bf    	.L7
	l.nop   	0		 # nop delay slot
.L8:
	l.movhi 	r4,hi(-1879048187)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048187)	 # move immediate (low)
	l.sw    	-40(r2),r4
	l.lwz    	r3,-40(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-2(r2),r3
	l.lbz   	r4,-2(r2)	 # zero_extendqisi2
	l.sw    	-44(r2),r4
	l.lwz    	r3,-44(r2)	 # SI load
	l.srli  	r3,r3,5
	l.sw    	-48(r2),r3
	l.lwz    	r4,-48(r2)	 # SI load
	l.xori  	r4,r4,1
	l.sw    	-52(r2),r4
	l.lwz    	r3,-52(r2)	 # SI load
	l.andi  	r3,r3,1
	l.sw    	-56(r2),r3
	l.lwz    	r4,-56(r2)	 # SI load
	l.sfnei   	r4, 0
	l.bf    	.L8
	l.nop   	0		 # nop delay slot
	l.movhi 	r3,hi(-1879048192)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048192)	 # move immediate (low)
	l.sw    	-60(r2),r3
	l.addi  	r3,r0,13	 # move immediate
	l.lwz    	r4,-60(r2)	 # SI load
	l.sb    	0(r4),r3
.L7:
	l.nop   	0
.L12:
	l.movhi 	r4,hi(-1879048187)	 # move immediate (high)
	l.ori   	r4,r4,lo(-1879048187)	 # move immediate (low)
	l.sw    	-64(r2),r4
	l.lwz    	r3,-64(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-2(r2),r3
	l.lbz   	r4,-2(r2)	 # zero_extendqisi2
	l.sw    	-68(r2),r4
	l.lwz    	r3,-68(r2)	 # SI load
	l.andi  	r3,r3,96
	l.sw    	-72(r2),r3
	l.lwz    	r4,-72(r2)	 # SI load
	l.sfnei   	r4, 96
	l.bf    	.L12
	l.nop   	0		 # nop delay slot
	l.lwz   	r2,0(r1)
	l.jr    	r9
	l.addi  	r1,r1,76
	.size	_uart_putc, .-_uart_putc
	.align 4
.proc _uart_getc
	.global _uart_getc
	.type	_uart_getc, @function
_uart_getc:

	# gpr_save_area 0 vars 32 current_function_outgoing_args_size 0
	l.addi  	r1,r1,-36
	l.sw    	0(r1),r2
	l.addi  	r2,r1,36
	l.nop   	0
.L17:
	l.movhi 	r3,hi(-1879048187)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048187)	 # move immediate (low)
	l.sw    	-12(r2),r3
	l.lwz    	r3,-12(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-1(r2),r3
	l.lbz   	r3,-1(r2)	 # zero_extendqisi2
	l.sw    	-16(r2),r3
	l.lwz    	r3,-16(r2)	 # SI load
	l.xori  	r3,r3,1
	l.sw    	-20(r2),r3
	l.lwz    	r3,-20(r2)	 # SI load
	l.andi  	r3,r3,1
	l.sw    	-24(r2),r3
	l.lwz    	r3,-24(r2)	 # SI load
	l.sfnei   	r3, 0
	l.bf    	.L17
	l.nop   	0		 # nop delay slot
	l.movhi 	r3,hi(-1879048192)	 # move immediate (high)
	l.ori   	r3,r3,lo(-1879048192)	 # move immediate (low)
	l.sw    	-28(r2),r3
	l.lwz    	r3,-28(r2)	 # SI load
	l.lbz   	r3,0(r3)
	l.sb    	-2(r2),r3
	l.lbs   	r3,-2(r2)	 # extendqisi2
	l.sw    	-32(r2),r3
	l.lwz    	r3,-32(r2)	 # SI load
	l.sw    	-8(r2),r3
	l.lwz    	r11,-8(r2)	 # SI load
	l.lwz   	r2,0(r1)
	l.jr    	r9
	l.addi  	r1,r1,36
	.size	_uart_getc, .-_uart_getc
	.section	.rodata
.LC0:
	.string	"Hello world!!!\n"
	.global _str
.section .data
	.align 4
	.type	_str, @object
	.size	_str, 4
_str:
	.long	.LC0
.section .text
	.align 4
.proc _main
	.global _main
	.type	_main, @function
_main:

	# gpr_save_area 0 vars 44 current_function_outgoing_args_size 0
	l.addi  	r1,r1,-52
	l.sw    	4(r1),r2
	l.addi  	r2,r1,52
	l.sw    	0(r1),r9
	l.jal   	_uart_init
	l.nop   	0		 # nop delay slot
	l.movhi 	r3,hi(_str)	 # move immediate (high)
	l.ori   	r3,r3,lo(_str)	 # move immediate (low)
	l.sw    	-8(r2),r3
	l.lwz    	r3,-8(r2)	 # SI load
	l.lwz    	r3,0(r3)	 # SI load
	l.sw    	-4(r2),r3
.L22:
	l.lwz    	r3,-4(r2)	 # SI load
	l.sw    	-12(r2),r3
	l.lwz    	r3,-12(r2)	 # SI load
	l.lbs   	r3,0(r3)	 # extendqisi2
	l.sw    	-16(r2),r3
	l.lwz    	r3,-16(r2)	 # SI load
	l.sfnei   	r3, 0
	l.bf    	.L25
	l.nop   	0		 # nop delay slot
	l.j     	.L23
	l.nop   	0		 # nop delay slot
.L25:
	l.lwz    	r3,-4(r2)	 # SI load
	l.sw    	-20(r2),r3
	l.lwz    	r3,-20(r2)	 # SI load
	l.lbs   	r3,0(r3)	 # extendqisi2
	l.sw    	-24(r2),r3
	l.lwz    	r3,-24(r2)	 # SI load
	l.jal   	_uart_putc
	l.nop   	0		 # nop delay slot
	l.lwz    	r3,-4(r2)	 # SI load
	l.sw    	-28(r2),r3
	l.lwz    	r3,-28(r2)	 # SI load
	l.addi  	r3,r3,1
	l.sw    	-32(r2),r3
	l.lwz    	r3,-32(r2)	 # SI load
	l.sw    	-4(r2),r3
	l.j     	.L22
	l.nop   	0		 # nop delay slot
.L23:
	l.nop   	0
.L26:
	l.jal   	_uart_getc
	l.nop   	0		 # nop delay slot
	l.sw    	-36(r2),r11
	l.lwz    	r3,-36(r2)	 # SI load
	l.addi  	r3,r3,1
	l.sw    	-40(r2),r3
	l.lwz    	r3,-40(r2)	 # SI load
	l.slli  	r3,r3,24
	l.srai  	r3,r3,24	 # extendqisi2
	l.sw    	-44(r2),r3
	l.lwz    	r3,-44(r2)	 # SI load
	l.jal   	_uart_putc
	l.nop   	0		 # nop delay slot
	l.j     	.L26
	l.nop   	0		 # nop delay slot
	l.lwz   	r9,0(r1)
	l.lwz   	r2,4(r1)
	l.jr    	r9
	l.addi  	r1,r1,52
	.size	_main, .-_main
	.ident	"GCC: (GNU) 3.3.3 (NetBSD nb3 20040520)"



------=_Part_1895_24459187.1103597283413
Content-Type: application/octet-stream; name=hello.or32
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="hello.or32"

f0VMRgECAQAAAAAAAAAAAAAChHIAAAABAAAgAAAAADQAAC1QAAAAAAA0ACAAAgAoABEADgAAAAEA
ABAAAAAAAAAAAAAAAAEoAAABKAAAAAUAABAAAAAAAQAAIAAAACAAAAAgAAAABFwAAQRcAAAABwAA
EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAYIAACqCEkWJxA//3gIRADGEAAAKhCI1hEABAAnEAAAEQASAAV
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcIf+g1AEQAJxBAGAYYJAA
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
RAAAOgAAAAAAAAAARAAAPAAAAAwAAAAARAAAPgAAABAAAAAARAAAPwAAAFgAAAAARAAAQAAAAHAA
AAAARAAAQQAAAIAAAAQogAAAO/////8AAAQzgAAAPP////4AAAAAwAAAAAAAAAwAAAAA4AAAAAAA
AIAAAAAAJAAAAAAAAJAAAAQ7JAAARQAAI1gAAAAARAAARQAAAAAAAAAARAAASAAAABAAAAAARAAA
SQAAABgAAAAARAAASgAAAFwAAAAARAAASQAAAHwAAAAARAAATQAAAKQAAAAARAAAUAAAAOAAAARH
gAAARv////wAAAAAwAAAAAAAABAAAAAA4AAAAAAAAOAAAAAAJAAAAAAAAPAAAARWIAAAQwAAAAAA
AAAAZAAAAAAAJEgAaGVsbG8uYwAvaG9tZS9uaXIvb3BlbmNvcmVzL29yMWsvaGVsbG8tdWFydC8A
aGVsbG8uYwBnY2MyX2NvbXBpbGVkLgBpbnQ6dCgwLDEpPXIoMCwxKTstMjE0NzQ4MzY0ODsyMTQ3
NDgzNjQ3OwBjaGFyOnQoMCwyKT1yKDAsMik7MDsxMjc7AGxvbmcgaW50OnQoMCwzKT1yKDAsMyk7
LTIxNDc0ODM2NDg7MjE0NzQ4MzY0NzsAdW5zaWduZWQgaW50OnQoMCw0KT1yKDAsNCk7MDAwMDAw
MDAwMDAwMDswMDM3Nzc3Nzc3Nzc3OwBsb25nIHVuc2lnbmVkIGludDp0KDAsNSk9cigwLDUpOzAw
MDAwMDAwMDAwMDA7MDAzNzc3Nzc3Nzc3NzsAbG9uZyBsb25nIGludDp0KDAsNik9QHM2NDtyKDAs
Nik7MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDA7MDc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzsAbG9uZyBs
b25nIHVuc2lnbmVkIGludDp0KDAsNyk9QHM2NDtyKDAsNyk7MDAwMDAwMDAwMDAwMDswMTc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3NzsAc2hvcnQgaW50OnQoMCw4KT1AczE2O3IoMCw4KTstMzI3Njg7MzI3
Njc7AHNob3J0IHVuc2lnbmVkIGludDp0KDAsOSk9QHMxNjtyKDAsOSk7MDs2NTUzNTsAc2lnbmVk
IGNoYXI6dCgwLDEwKT1Aczg7cigwLDEwKTstMTI4OzEyNzsAdW5zaWduZWQgY2hhcjp0KDAsMTEp
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
------=_Part_1895_24459187.1103597283413
Content-Type: application/octet-stream; name=system.map
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="system.map"

00000100 t _reset
00000120 T ___main
00002000 T _uart_init
00002174 T _uart_putc
000022c8 T _uart_getc
00002358 T _main
00002448 D _str
00002448 t Letext
0001245c B _src_addr
0001245c b _stack



------=_Part_1895_24459187.1103597283413--