Have Gameboy ROM only cart dump working!

Had to fix io_reset, was trying to modify GB POWER pin before turning on
GPIO blocks..

Will be putting nightly builds for "INL6" pcb v2.0 in the build_stm
folder.  This is the primary device most people have.  Not going to
bother versioning it.  But it can easily be flashed onto devices running
v2.3 firmware which includes the fwupdater now.  There is a call
commented out in inlretro.lua which performs the firmware update to the
nightly build:

fwupdate.update_firmware("../firmware/build_stm/inlretro_stm.bin")

the binary isn't versioned so there will be a warning, when flashing
over the top of it but it can be ignored.

Only really created the gameboy page dump function so far.  Next need to
implement the read/write functions so we can start interfacing with MBC
gameboy mappers.
This commit is contained in:
Paul XPS 2018-12-01 22:38:29 -06:00
parent 48b7437d10
commit cadc615621
12 changed files with 2666 additions and 29 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,886 @@
Archive member included to satisfy reference by file (symbol)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
C:\Users\paul\AppData\Local\Temp\ccILlO7q.o (__aeabi_unwind_cpp_pr0)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o) (restore_core_regs)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o) (__gnu_unwind_execute)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o) (abort)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o (exit)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o) (_global_impure_ptr)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o (__libc_init_array)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o) (memcpy)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o (memset)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o) (raise)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o) (_kill_r)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o) (__call_exitprocs)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o) (atexit)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o) (__libc_fini_array)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o) (__retarget_lock_acquire_recursive)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o) (_malloc_r)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o) (__malloc_lock)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o) (errno)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o) (_sbrk_r)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o) (__register_exitproc)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o) (_free_r)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o) (_getpid)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o) (_kill)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o) (_sbrk)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o) (_exit)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
Allocating common symbols
Common symbol size file
buff3 0x14 source/buffer.o (symbol from plugin)
__lock___atexit_recursive_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
cur_buff 0x4 source/buffer.o (symbol from plugin)
__lock___arc4random_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
tdo_pin 0x1 source/jtag.o (symbol from plugin)
errno 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
pbje_status 0x1 source/jtag.o (symbol from plugin)
pbje_command 0x1 source/jtag.o (symbol from plugin)
tck_base 0x4 source/jtag.o (symbol from plugin)
tck_pin 0x1 source/jtag.o (symbol from plugin)
bank_table 0x2 source/nes.o (symbol from plugin)
addrh 0x2 source/bootload.o (symbol from plugin)
buff1 0x14 source/buffer.o (symbol from plugin)
incoming_bytes_remain
0x1 source/buffer.o (symbol from plugin)
__lock___env_recursive_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
__lock___sinit_recursive_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
pbje_cmd_update_flag
0x1 source/jtag.o (symbol from plugin)
tms_pin 0x1 source/jtag.o (symbol from plugin)
__lock___malloc_recursive_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
tdi_base 0x4 source/jtag.o (symbol from plugin)
tdo_base 0x4 source/jtag.o (symbol from plugin)
buff2 0x14 source/buffer.o (symbol from plugin)
cur_bank 0x1 source/nes.o (symbol from plugin)
addr_ptr 0x4 source/bootload.o (symbol from plugin)
tdi_pin 0x1 source/jtag.o (symbol from plugin)
buff0 0x14 source/buffer.o (symbol from plugin)
raw_bank_status 0x10 source/buffer.o (symbol from plugin)
oper_info_struct 0x20 source/operation.o (symbol from plugin)
raw_buffer16 0x200 source/buffer.o (symbol from plugin)
tms_base 0x4 source/jtag.o (symbol from plugin)
swim_base 0x4 source/swim.o (symbol from plugin)
swim_pin 0x1 source/swim.o (symbol from plugin)
__lock___at_quick_exit_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
cur_usb_load_buff 0x4 source/buffer.o (symbol from plugin)
pbje_numclk 0x1 source/jtag.o (symbol from plugin)
__lock___dd_hash_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
__lock___tz_mutex 0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
pbje_data 0x20 source/jtag.o (symbol from plugin)
__lock___sfp_recursive_mutex
0x1 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
Discarded input sections
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
.text 0x00000000 0x48 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.data 0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.bss 0x00000000 0x1c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.init_array 0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.fini_array 0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.eh_frame 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
.text 0x00000000 0x78 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.ARM.extab 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.ARM.exidx 0x00000000 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.ARM.attributes
0x00000000 0x1b c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.debug_aranges
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.debug_str 0x00000000 0x80 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.ARM.attributes
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.debug_aranges
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.debug_str 0x00000000 0x7d C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.ARM.attributes
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.debug_frame 0x00000000 0x2b4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
.ARM.attributes
0x00000000 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
.debug_frame 0x00000000 0xf4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
.debug_frame 0x00000000 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
.text.exit 0x00000000 0x20 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
.debug_frame 0x00000000 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-exit.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
.rodata._global_impure_ptr
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
.text.__libc_init_array
0x00000000 0x48 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
.debug_frame 0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-init.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
.debug_frame 0x00000000 0x30 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
.text.memset 0x00000000 0x9c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
.debug_frame 0x00000000 0x30 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memset.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text._init_signal_r.part.0
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text._init_signal_r
0x00000000 0x1c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text._signal_r
0x00000000 0x3c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text.__sigtramp_r
0x00000000 0x50 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text.signal 0x00000000 0x18 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text._init_signal
0x00000000 0x20 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text.__sigtramp
0x00000000 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.debug_frame 0x00000000 0xf8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
.debug_frame 0x00000000 0x44 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.text.startup.register_fini
0x00000000 0x18 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.init_array.00000
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.text.__call_exitprocs
0x00000000 0x118 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.data.__atexit_recursive_mutex
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.debug_frame 0x00000000 0x54 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__call_atexit.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
.text.atexit 0x00000000 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
.debug_frame 0x00000000 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-atexit.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
.text.__libc_fini_array
0x00000000 0x34 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
.debug_frame 0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-fini.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_init
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_init_recursive
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_close
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_close_recursive
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_acquire
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_acquire_recursive
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_try_acquire
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_try_acquire_recursive
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_release
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text.__retarget_lock_release_recursive
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.debug_frame 0x00000000 0xb0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
COMMON 0x00000000 0x21 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-lock.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.text._malloc_r
0x00000000 0x554 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.bss.__malloc_current_mallinfo
0x00000000 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.bss.__malloc_max_sbrked_mem
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.bss.__malloc_max_total_mem
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.bss.__malloc_top_pad
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.data.__malloc_av_
0x00000000 0x408 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.data.__malloc_sbrk_base
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.data.__malloc_trim_threshold
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.debug_frame 0x00000000 0x3c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mallocr.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.text.__malloc_lock
0x00000000 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.text.__malloc_unlock
0x00000000 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.debug_frame 0x00000000 0x40 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-mlock.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.text.cleanup_glue
0x00000000 0x1c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.text._reclaim_reent
0x00000000 0x94 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.debug_frame 0x00000000 0x48 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
.text._sbrk_r 0x00000000 0x24 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
.debug_frame 0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-sbrkr.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
.text.__register_exitproc
0x00000000 0xf4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
.debug_frame 0x00000000 0x3c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-__atexit.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.text._malloc_trim_r
0x00000000 0xa0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.text._free_r 0x00000000 0x1d4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.debug_frame 0x00000000 0x58 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-freer.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
.stab 0x00000000 0x24 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
.debug_frame 0x00000000 0x20 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
.stab 0x00000000 0x18 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
0x24 (size before relaxing)
.debug_frame 0x00000000 0x20 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.text._sbrk 0x00000000 0x1c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.bss.heap_end.4102
0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.debug_frame 0x00000000 0x20 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(sbrk.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
.debug_frame 0x00000000 0x20 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
.eh_frame 0x00000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
.ARM.attributes
0x00000000 0x2c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
.text 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.init 0x00000000 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.fini 0x00000000 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.ARM.attributes
0x00000000 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
Memory Configuration
Name Origin Length Attributes
FLASH 0x08000000 0x00008000 xr
RAM 0x20000000 0x00001800 xrw
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtbegin.o
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
LOAD C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
LOAD C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccILlO7q.o
LOAD C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
START GROUP
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libc.a
END GROUP
START GROUP
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libc.a
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a
END GROUP
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtend.o
LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crtn.o
.text 0x08000000 0x4f50
*(.isr_vector)
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
0x08000000 __isr_vector
*(.usb_driver)
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x08000198 USB_IRQHandler
*(.usb_desc)
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*(.hardfault)
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
0x08000534 TIM1_CC_IRQHandler
0x08000534 TSC_IRQHandler
0x08000534 ADC1_COMP_IRQHandler
0x08000534 SysTick_Handler
0x08000534 PendSV_Handler
0x08000534 NMI_Handler
0x08000534 I2C1_IRQHandler
0x08000534 RCC_CRS_IRQHandler
0x08000534 SPI1_IRQHandler
0x08000534 TIM6_DAC_IRQHandler
0x08000534 USART3_4_IRQHandler
0x08000534 EXTI2_3_IRQHandler
0x08000534 I2C2_IRQHandler
0x08000534 TIM17_IRQHandler
0x08000534 CEC_CAN_IRQHandler
0x08000534 PVD_VDDIO2_IRQHandler
0x08000534 DMA1_Channel4_5_6_7_IRQHandler
0x08000534 TIM16_IRQHandler
0x08000534 TIM3_IRQHandler
0x08000534 EXTI4_15_IRQHandler
0x08000534 DMA1_Channel1_IRQHandler
0x08000534 Default_Handler
0x08000534 TIM14_IRQHandler
0x08000534 TIM7_IRQHandler
0x08000534 TIM15_IRQHandler
0x08000534 EXTI0_1_IRQHandler
0x08000534 SPI2_IRQHandler
0x08000534 SVC_Handler
0x08000534 RTC_IRQHand
0x08000534 WWDG_IRQHandler
0x08000534 TIM2_IRQHandler
0x08000534 DEF_IRQHandler
0x08000534 DMA1_Channel2_3_IRQHandler
0x08000534 USART2_IRQHandler
0x08000534 FLASH_IRQHandler
0x08000534 USART1_IRQHandler
0x08000534 TIM1_BRK_UP_TRG_COM_IRQHandler
*fill* 0x08000536 0x2 ff
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x08000538 HardFault_Handler
*_thumb1_case_uqi.o()
.text 0x08000544 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
0x08000544 __gnu_thumb1_case_uqi
.ARM.attributes
0x08000558 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
*_thumb1_case_shi.o()
*_thumb1_case_uhi.o()
*fill* 0x08000576 0x2 ff
.text 0x08000578 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
0x08000578 __gnu_thumb1_case_uhi
.ARM.attributes
0x0800058c 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
*(.fw_update)
*fill* 0x080005aa 0x2 ff
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x00000770 . = 0x770
*fill* 0x080006fc 0x74 ff
*(.fw_up_main)
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x00000800 . = 0x800
*fill* 0x080007e0 0x20 ff
*(.appver)
0x00000804 . = 0x804
*fill* 0x08000800 0x4 ff
*(.reset_handler)
.reset_handler
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
0x08000804 Reset_Handler
*(.usbFuncWrite)
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*(.usbFuncSetup)
.usbFuncSetup 0x08000884 0x1800 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*(.text*)
.text.snes_page_rd_poll.constprop.23
0x08002084 0x7c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_cpu_page_rd_poll.constprop.22
0x08002100 0x6c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_ppu_page_rd_poll.constprop.19
0x0800216c 0x68 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.append_pairity
0x080021d4 0x1e C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.delay_us
0x080021f2 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x08002206 0x2 ff
.text.snes_wr 0x08002208 0x60 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.snes_rd 0x08002268 0x48 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.write_page_snes.constprop.31
0x080022b0 0x194 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.snes_3v_flash_wr
0x08002444 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.snes_5v_flash_wr
0x08002494 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_dualport_wr
0x080024e4 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_dualport_rd
0x08002534 0x38 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_ppu_wr
0x0800256c 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_ppu_rd
0x080025bc 0x38 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.mmc3_chrrom_flash_wr
0x080025f4 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nrom_chrrom_flash_wr
0x08002638 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_cpu_wr
0x0800267c 0x6c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.cdream_chrrom_flash_wr
0x080026e8 0x84 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.mmc4_chrrom_flash_wr
0x0800276c 0x74 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.cnrom_chrrom_flash_wr
0x080027e0 0x7c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nes_cpu_rd
0x0800285c 0x40 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.mmc4_prgrom_sop_flash_wr
0x0800289c 0x54 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.mmc3_prgrom_flash_wr
0x080028f0 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.disc_push_exp0_prgrom_wr
0x08002940 0x48 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.discrete_exp0_prgrom_wr
0x08002988 0x58 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.unrom_prgrom_flash_wr
0x080029e0 0x64 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.nrom_prgrom_flash_wr
0x08002a44 0x44 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.pbje_scan
0x08002a88 0x10c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.pbje_state_change
0x08002b94 0x88 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.jtag_init_pbje
0x08002c1c 0xe0 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.jtag_run_pbje.part.0
0x08002cfc 0xb8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.io_reset
0x08002db4 0x15c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.write_page_verify
0x08002f10 0x5c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.write_page
0x08002f6c 0x34 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.get_next_buff
0x08002fa0 0x54 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.mmc1_wr.constprop.11
0x08002ff4 0x22 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x08003016 0x2 ff
.text.mmc1_chrrom_flash_wr
0x08003018 0x60 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.mmc1_prgrom_flash_wr
0x08003078 0x50 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.swim_wotf
0x080030c8 0xb4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.swim_rotf
0x0800317c 0xac C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.text.startup.main
0x08003228 0xb80 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x08003228 main
*fill* 0x08003da8 0x8 ff
.text 0x08003db0 0x154 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
0x08003db0 swim_xfr
.text 0x08003f04 0xa08 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
0x080041c0 _Unwind_GetCFA
0x080041c4 __gnu_Unwind_RaiseException
0x08004218 __gnu_Unwind_ForcedUnwind
0x0800422c __gnu_Unwind_Resume
0x08004274 __gnu_Unwind_Resume_or_Rethrow
0x08004290 _Unwind_Complete
0x08004294 _Unwind_DeleteException
0x080042a4 _Unwind_VRS_Get
0x080042ec _Unwind_VRS_Set
0x08004334 __gnu_Unwind_Backtrace
0x08004684 __aeabi_unwind_cpp_pr0
0x08004690 __aeabi_unwind_cpp_pr1
0x0800469c __aeabi_unwind_cpp_pr2
0x080046a8 _Unwind_VRS_Pop
.text 0x0800490c 0x144 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(libunwind.o)
0x0800490c __restore_core_regs
0x0800490c restore_core_regs
0x08004938 __gnu_Unwind_Restore_VFP
0x0800493c __gnu_Unwind_Save_VFP
0x08004940 __gnu_Unwind_Restore_VFP_D
0x08004944 __gnu_Unwind_Save_VFP_D
0x08004948 __gnu_Unwind_Restore_VFP_D_16_to_31
0x0800494c __gnu_Unwind_Save_VFP_D_16_to_31
0x08004950 __gnu_Unwind_Restore_WMMXD
0x08004954 __gnu_Unwind_Save_WMMXD
0x08004958 __gnu_Unwind_Restore_WMMXC
0x0800495c __gnu_Unwind_Save_WMMXC
0x08004960 ___Unwind_RaiseException
0x08004960 _Unwind_RaiseException
0x08004990 _Unwind_Resume
0x08004990 ___Unwind_Resume
0x080049c0 _Unwind_Resume_or_Rethrow
0x080049c0 ___Unwind_Resume_or_Rethrow
0x080049f0 _Unwind_ForcedUnwind
0x080049f0 ___Unwind_ForcedUnwind
0x08004a20 ___Unwind_Backtrace
0x08004a20 _Unwind_Backtrace
.text 0x08004a50 0x39c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
0x08004aa4 __gnu_unwind_execute
0x08004d94 __gnu_unwind_frame
0x08004dbc _Unwind_GetRegionStart
0x08004dc8 _Unwind_GetLanguageSpecificData
0x08004ddc _Unwind_GetDataRelBase
0x08004de4 _Unwind_GetTextRelBase
.text.abort 0x08004dec 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
0x08004dec abort
.text.memcpy 0x08004dfc 0x88 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
0x08004dfc memcpy
.text._raise_r
0x08004e84 0x5c c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
0x08004e84 _raise_r
.text.raise 0x08004ee0 0x14 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
0x08004ee0 raise
.text._kill_r 0x08004ef4 0x28 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
0x08004ef4 _kill_r
.text._getpid_r
0x08004f1c 0x8 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
0x08004f1c _getpid_r
.text._getpid 0x08004f24 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
0x08004f24 _getpid
.text._kill 0x08004f34 0x10 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
0x08004f34 _kill
.text._exit 0x08004f44 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
0x08004f44 _exit
*(.init)
.init 0x08004f48 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
0x08004f48 _init
*(.fini)
.fini 0x08004f4c 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
0x08004f4c _fini
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
*(SORT_BY_NAME(.ctors.*))
*(.ctors)
*crtbegin.o(.dtors)
*crtbegin?.o(.dtors)
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .dtors)
*(SORT_BY_NAME(.dtors.*))
*(.dtors)
*(.rodata*)
*(.eh_frame*)
.glue_7 0x08004f50 0x0
.glue_7 0x08004f50 0x0 linker stubs
.glue_7t 0x08004f50 0x0
.glue_7t 0x08004f50 0x0 linker stubs
.vfp11_veneer 0x08004f50 0x0
.vfp11_veneer 0x08004f50 0x0 linker stubs
.v4_bx 0x08004f50 0x0
.v4_bx 0x08004f50 0x0 linker stubs
.iplt 0x08004f50 0x0
.iplt 0x08004f50 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.ARM.extab 0x08004f50 0x30
*(.ARM.extab* .gnu.linkonce.armextab.*)
.ARM.extab 0x08004f50 0x24 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.ARM.extab 0x08004f74 0xc c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
0x08004f80 __exidx_start = .
.ARM.exidx 0x08004f80 0xd0
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
.ARM.exidx 0x08004f80 0x8 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
0x10 (size before relaxing)
.ARM.exidx 0x08004f88 0x98 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(unwind-arm.o)
0xd8 (size before relaxing)
.ARM.exidx 0x08005020 0x30 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m\libgcc.a(pr-support.o)
0x48 (size before relaxing)
0x08005050 __exidx_end = .
0x08005050 __etext = ALIGN (0x4)
.rel.dyn 0x08005050 0x0
.rel.iplt 0x08005050 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.data 0x20000000 0x430 load address 0x08005050
0x20000000 __data_start__ = .
*(vtable)
*(.data*)
.data._impure_ptr
0x20000000 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
0x20000000 _impure_ptr
*fill* 0x20000004 0x4
.data.impure_data
0x20000008 0x428 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-impure.o)
0x20000430 . = ALIGN (0x4)
0x20000430 PROVIDE (__preinit_array_start = .)
*(.preinit_array)
0x20000430 PROVIDE (__preinit_array_end = .)
0x20000430 . = ALIGN (0x4)
0x20000430 PROVIDE (__init_array_start = .)
*(SORT_BY_NAME(.init_array.*))
*(.init_array)
0x20000430 PROVIDE (__init_array_end = .)
0x20000430 . = ALIGN (0x4)
0x20000430 PROVIDE (__fini_array_start = .)
*(SORT_BY_NAME(.fini_array.*))
*(.fini_array)
0x20000430 PROVIDE (__fini_array_end = .)
0x20000430 . = ALIGN (0x4)
*(.fastrun)
0x20000430 __data_end__ = .
.igot.plt 0x20000430 0x0 load address 0x08005480
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccQ7ryii.o
.bss 0x20000430 0x2f8 load address 0x08005480
0x20000430 . = ALIGN (0x4)
0x20000430 __bss_start__ = .
*(.bss*)
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.bank_table
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x20000489 0x3
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.cur_usb_load_buff
0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.incoming_bytes_remain
0x20000494 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.num_buff.5073
0x20000495 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x20000496 0x2
.bss.oper_info_struct
0x20000498 0x20 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.pbje_command
0x200004b8 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.pbje_data
0x200004b9 0x20 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.pbje_numclk
0x200004d9 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.pbje_status
0x200004da 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.raw_bank_status
0x200004db 0x10 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x200004eb 0x1
.bss.raw_buffer16
0x200004ec 0x200 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.rv16.4756
0x200006ec 0x8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.rv16.4993
0x200006f4 0x8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.swim_base
0x200006fc 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.swim_pin 0x20000700 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x20000701 0x3
.bss.tck_base 0x20000704 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.tck_pin 0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x20000709 0x3
.bss.tdi_base 0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.tdi_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x20000711 0x3
.bss.tdo_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.tdo_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*fill* 0x20000719 0x3
.bss.tms_base 0x2000071c 0x4 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.bss.tms_pin 0x20000720 0x1 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
*(COMMON)
*fill* 0x20000721 0x3
COMMON 0x20000724 0x4 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
0x20000724 errno
0x20000728 . = ALIGN (0x4)
0x20000728 __bss_end__ = .
.heap 0x20000728 0x0
0x20000728 __end__ = .
0x20000728 PROVIDE (end = .)
*(.heap*)
0x20000728 __HeapLimit = .
.stack_dummy 0x20000728 0x0
*(.stack*)
0x20001800 __StackTop = (ORIGIN (RAM) + LENGTH (RAM))
0x20001800 __StackLimit = (__StackTop - SIZEOF (.stack_dummy))
0x20001800 PROVIDE (__stack = __StackTop)
0x00000001 ASSERT ((__StackLimit >= __HeapLimit), region RAM overflowed with stack)
OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
.ARM.attributes
0x00000000 0x28
.ARM.attributes
0x00000000 0x1e c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/thumb/v6-m/crti.o
.ARM.attributes
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.ARM.attributes
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.comment 0x00000000 0x7f
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x80 (size before relaxing)
.debug_info 0x00000000 0x4cf2
.debug_info 0x00000000 0x4ccc C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.debug_info 0x00004ccc 0x26 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.debug_abbrev 0x00000000 0x67b
.debug_abbrev 0x00000000 0x667 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.debug_abbrev 0x00000667 0x14 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.debug_loc 0x00000000 0x500b
.debug_loc 0x00000000 0x500b C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.debug_aranges 0x00000000 0x1c8
.debug_aranges
0x00000000 0x1a8 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.debug_aranges
0x000001a8 0x20 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.debug_ranges 0x00000000 0xc80
.debug_ranges 0x00000000 0xc80 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.debug_line 0x00000000 0x184b
.debug_line 0x00000000 0x1758 C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.debug_line 0x00001758 0xf3 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.debug_str 0x00000000 0x1115
.debug_str 0x00000000 0x109c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
0x11b1 (size before relaxing)
.debug_str 0x0000109c 0x79 C:\Users\paul\AppData\Local\Temp\cc8YgOYB.o
.debug_frame 0x00000000 0x54c
.debug_frame 0x00000000 0x54c C:\Users\paul\AppData\Local\Temp\ccuar51r.ltrans0.ltrans.o
.stabstr 0x00000000 0x76
.stabstr 0x00000000 0x76 c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)

View File

@ -74,6 +74,16 @@ uint8_t dump_buff( buffer *buff ) {
break;
#endif
#ifdef GB_CONN
case GAMEBOY_PAGE:
//mapper byte specifies CPU A15-8
addrH |= buff->mapper;
buff->cur_byte = gameboy_page_rd_poll( buff->data, addrH, buff->id,
//id contains MSb of page when <256B buffer
buff->last_idx, 1 );
break;
#endif
#ifdef NES_CONN
case PRGROM:
addrH |= 0x80; //$8000

View File

@ -61,5 +61,72 @@ void dmg_wr( uint16_t addr, uint8_t data )
return;
}
/* Desc:GAMEBOY 8bit CPU Page Read with optional USB polling
* decode A15 from addrH to set SRAM /CE as expected
* if poll is true calls usbdrv.h usbPoll fuction
* this is needed to keep from timing out when double buffering usb data
* Pre: gameboy_init() setup of io pins
* num_bytes can't exceed 256B page boundary
* Post:address left on bus
* data bus left clear
* data buffer filled starting at first to last
* Rtn: Index of last byte read
*/
uint8_t gameboy_page_rd_poll( uint8_t *data, uint8_t addrH, uint8_t first, uint8_t len, uint8_t poll )
{
uint8_t i;
//set address bus
ADDRH(addrH);
//enable /RD pin
CSRD_LO();
//set SRAM /CS
//low for $A000-BFFF
if( (addrH >= 0xA0) && (addrH <= 0xBF) ) { //addressing cart RAM space
ROMSEL_LO(); //this is actually the SRAM /CS pin
}
//set lower address bits
ADDRL(first); //doing this prior to entry and right after latching
//extra NOP was needed on stm6 as address hadn't settled in time for the very first read
NOP();
//gives longest delay between address out and latching data
for( i=0; i<=len; i++ ) {
//testing shows that having this if statement doesn't affect overall dumping speed
if ( poll ) {
usbPoll(); //Call usbdrv.h usb polling while waiting for data
} else {
NOP(); //couple more NOP's waiting for data
NOP(); //one prob good enough considering the if/else
}
//gameboy needed some extra NOPS
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
//latch data
DATA_RD(data[i]);
//set lower address bits
//ADDRL(++first); THIS broke things, on stm adapter because macro expands it twice!
first++;
ADDRL(first);
}
//return bus to default
CSRD_HI();
ROMSEL_HI();
//return index of last byte read
return i;
}
#endif //GB_CONN

View File

@ -2,6 +2,7 @@
#define _gameboy_h
#include "pinport.h"
#include "buffer.h"
#include "shared_dictionaries.h"
#include "shared_errors.h"
@ -10,4 +11,6 @@ uint8_t gameboy_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_
uint8_t dmg_rd( uint16_t addr );
void dmg_wr( uint16_t addr, uint8_t data );
uint8_t gameboy_page_rd_poll( uint8_t *data, uint8_t addrH, uint8_t first, uint8_t len, uint8_t poll );
#endif

View File

@ -34,7 +34,11 @@ uint8_t io_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *rd
case SNES_INIT: snes_init(); break;
#endif
#ifdef GB_CONN
case GAMEBOY_INIT: gameboy_init(); break;
case GB_POWER_3V:
GBP_OP(); GBP_3V(); break;
case GB_POWER_5V:
GBP_OP(); GBP_5V(); break;
case GAMEBOY_INIT: gameboy_init(); break;
// case GBA_INIT: gba_init(); break;
#endif
#ifdef SEGA_CONN
@ -74,14 +78,22 @@ void io_reset()
RCC->AHBRSTR &= ~( RCC_AHBRSTR_GPIOARST | RCC_AHBRSTR_GPIOBRST | RCC_AHBRSTR_GPIOCRST | RCC_AHBRSTR_GPIODRST | RCC_AHBRSTR_GPIOFRST );
#endif
//First set gameboy/GBA power, default to 3v (safe for both)
//enable the GPIO blocks before can access them
CTL_ENABLE();
#ifndef C16nodef
GBP_OP();
GBP_3V();
//First set gameboy/GBA power, default to 3v (safe for both)
//pull up the GB power control pin
//prevents conflicts, but also pulls up the
//Pmosfet gate which turns off the mosfet
//leaving the 3v power diode to supply the gameboy cart
GBP_IP_PU();
//If there's a load on the gameboy cart power there will be ~3v present.
//If no load/cart, the voltage will will float up to 5v because of Rds_off of the mosfet.
#endif
//pull up control port
CTL_ENABLE();
M2_IP_PU();
ROMSEL_IP_PU();
PRGRW_IP_PU();
@ -238,19 +250,29 @@ void gameboy_init()
io_reset();
//enable control outputs and disable memories
//ROM
//ROM-RAM
ROMSEL_OP();
ROMSEL_HI();
ROMSEL_HI(); //gameboy pin 5 "SRAM /CS"
CSRD_OP();
CSRD_HI();
CSRD_HI(); //gameboy pin 4 /RD
CSWR_OP();
CSWR_HI();
CSWR_HI(); //gameboy pin 3 /WR
//Set #RESET pin low
EXP0_LO();
EXP0_OP();
//if SWIM is active, EXP0 must be set to pullup prior to SWIM transfers
EXP0_HI(); //gameboy pin 30 "GAMEBOY /RESET" (GBA /CS2)
//AUDIO IN (from cart) gameboy pin 31
//if the cart generates audio it will drive this pin
//this pin is also used for ROM /WE on some carts
//such carts should have a pullup on this pin though..
//use "AUDR" ctl pin to access this pin
//CLK is a 1MHz signal from the gameboy
//INL6 connects this to GPIO PA8, haven't even assigned this in pinport yet..
//don't think any carts even need it though..
//This is also the MCO pin from the STM32
//other control pins are inputs or unused, leave as IP pullup from reset
//memories are now disabled Data bus should be clear
@ -262,11 +284,12 @@ void gameboy_init()
ADDR_ENABLE();
ADDR_SET(0x0000);
#ifndef C16nodef
//set GB/GBA power to 5v
GBP_OP();
GBP_5V();
#endif
//want to control this separately
//#ifndef C16nodef
// //set GB/GBA power to 5v
// GBP_OP();
// GBP_5V();
//#endif
}
#endif
@ -309,6 +332,8 @@ void gba_init()
ADDR_ENABLE();
ADDR_SET(0x0000);
//default is 3v on gameboy/GBA port
}
#endif

Binary file not shown.

282
host/scripts/gb/romonly.lua Normal file
View File

@ -0,0 +1,282 @@
-- create the module's table
local romonly = {}
-- import required modules
local dict = require "scripts.app.dict"
local dump = require "scripts.app.dump"
local flash = require "scripts.app.flash"
-- file constants
local mapname = "ROMONLY"
-- local functions
--read PRG-ROM flash ID
local function rom_manf_id( debug )
--init_mapper()
if debug then print("reading PRG-ROM manf ID") end
--enter software mode
--ROMSEL controls PRG-ROM /OE which needs to be low for flash writes
--So unlock commands need to be addressed below $8000
--DISCRETE_EXP0_PRGROM_WR doesn't toggle /ROMSEL by definition though, so A15 is unused
-- 15 14 13 12
-- 0x5 = 0b 0 1 0 1 -> $5555
-- 0x2 = 0b 0 0 1 0 -> $2AAA
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0x90)
--read manf ID
local rv = dict.nes("NES_CPU_RD", 0x8000)
if debug then print("attempted read PRG-ROM manf ID:", string.format("%X", rv)) end
--read prod ID
rv = dict.nes("NES_CPU_RD", 0x8001)
if debug then print("attempted read PRG-ROM prod ID:", string.format("%X", rv)) end
--exit software
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x8000, 0xF0)
--verify exited
-- rv = dict.nes("NES_CPU_RD", 0x8001)
-- if debug then print("attempted read PRG-ROM prod ID:", string.format("%X", rv)) end
end
--dump the ROM
local function dump_rom( file, rom_size_KB, debug )
--ROM ONLY dump all 32KB, most of this code is overkill for no MBC.
-- but follows same format as MBC's
local KB_per_read = 32 --$0000-7FFF is ROM space (32KByte)
local num_reads = rom_size_KB / KB_per_read
local read_count = 0
local addr_base = 0x00 -- $0000 base address for ROM
while ( read_count < num_reads ) do
if debug then print( "dump ROM part ", read_count, " of ", num_reads) end
dump.dumptofile( file, KB_per_read, addr_base, "GAMEBOY_PAGE", false )
read_count = read_count + 1
end
end
--write a single byte to ROM flash
local function wr_flash_byte(addr, value, debug)
if (addr < 0x8000 or addr > 0xFFFF) then
print("\n ERROR! flash write to PRG-ROM", string.format("$%X", addr), "must be $8000-FFFF \n\n")
return
end
--send unlock command and write byte
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xA0)
dict.nes("DISCRETE_EXP0_PRGROM_WR", addr, value)
local rv = dict.nes("NES_CPU_RD", addr)
local i = 0
while ( rv ~= value ) do
rv = dict.nes("NES_CPU_RD", addr)
i = i + 1
end
if debug then print(i, "naks, done writing byte.") end
--TODO handle timeout for problems
--TODO return pass/fail/info
end
--fast host flash one bank at a time...
--this is controlled from the host side one bank at a time
--but requires specific firmware MMC3 flashing functions
--there is super slow version commented out that doesn't require MMC3 specific firmware code
local function flash_rom(file, rom_size_KB, debug)
--init_mapper()
--test some bytes
--wr_flash_byte(0x8000, 0xA5, true)
--wr_flash_byte(0xFFFF, 0x5A, true)
print("\nProgramming PRG-ROM flash")
--most of this is overkill for NROM, but it's how we want to handle things for bigger mappers
local base_addr = 0x8000 --writes occur $8000-9FFF
local bank_size = 32*1024 --MMC3 8KByte per PRG bank
local buff_size = 1 --number of bytes to write at a time
local cur_bank = 0
local total_banks = rom_size_KB*1024/bank_size
local byte_num --byte number gets reset for each bank
local byte_str, data, readdata
while cur_bank < total_banks do
if (cur_bank %8 == 0) then
print("writting PRG bank: ", cur_bank, " of ", total_banks-1)
end
--program the entire bank's worth of data
flash.write_file( file, 32, mapname, "PRGROM", false )
cur_bank = cur_bank + 1
end
print("Done Programming PRG-ROM flash")
end
--Cart should be in reset state upon calling this function
--this function processes all user requests for this specific board/mapper
local function process( test, read, erase, program, verify, dumpfile, flashfile, verifyfile, mirror)
local rv = nil
local file
local rom_size = 32
local ram_size = 0
--initialize device i/o for NES
dict.io("IO_RESET")
dict.io("GAMEBOY_INIT")
dict.io("GB_POWER_5V") --gameboy carts prob run fine at 3v if want to be safe
--test the cart
if test then
-- print("Testing ", mapname)
-- nes.detect_mapper_mirroring(true)
-- print("EXP0 pull-up test:", dict.io("EXP0_PULLUP_TEST"))
-- --nes.read_flashID_prgrom_exp0(true)
-- rom_manf_id(true)
-- --nes.read_flashID_chrrom_8K(true)
-- chrrom_manf_id(true)
end
--dump the cart to dumpfile
if read then
print("\nDumping ROM...")
--init_mapper()
file = assert(io.open(dumpfile, "wb"))
--dump cart into file
dump_rom(file, rom_size, false)
--close file
assert(file:close())
print("DONE Dumping ROM")
end
--erase the cart
if erase then
-- print("\nErasing ", mapname);
--
-- --init_mapper()
--
-- print("erasing PRG-ROM");
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0x80)
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0xAA)
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x2AAA, 0x55)
-- dict.nes("DISCRETE_EXP0_PRGROM_WR", 0x5555, 0x10)
-- rv = dict.nes("NES_CPU_RD", 0x8000)
--
-- local i = 0
--
-- --TODO create some function to pass the read value
-- --that's smart enough to figure out if the board is actually erasing or not
-- while ( rv ~= 0xFF ) do
-- rv = dict.nes("NES_CPU_RD", 0x8000)
-- i = i + 1
-- end
-- print(i, "naks, done erasing prg.");
--
-- print("erasing CHR-ROM");
-- dict.nes("NES_PPU_WR", 0x1555, 0xAA)
-- dict.nes("NES_PPU_WR", 0x0AAA, 0x55)
-- dict.nes("NES_PPU_WR", 0x1555, 0x80)
-- dict.nes("NES_PPU_WR", 0x1555, 0xAA)
-- dict.nes("NES_PPU_WR", 0x0AAA, 0x55)
-- dict.nes("NES_PPU_WR", 0x1555, 0x10)
-- rv = dict.nes("NES_PPU_RD", 0x0000)
--
-- i = 0
-- while ( rv ~= 0xFF ) do
-- rv = dict.nes("NES_PPU_RD", 0x0000)
-- i = i + 1
-- end
-- print(i, "naks, done erasing chr.\n");
end
--program flashfile to the cart
if program then
-- --open file
-- file = assert(io.open(flashfile, "rb"))
-- --determine if auto-doubling, deinterleaving, etc,
-- --needs done to make board compatible with rom
-- --flash cart
-- flash_rom(file, rom_size, true)
-- --close file
-- assert(file:close())
--
end
--verify flashfile is on the cart
if verify then
--for now let's just dump the file and verify manually
print("\nPost dumping ROM...")
--init_mapper()
file = assert(io.open(verifyfile, "wb"))
--dump cart into file
dump_rom(file, rom_size, false)
--close file
assert(file:close())
print("DONE post dumping ROM")
end
dict.io("IO_RESET")
end
-- global variables so other modules can use them
-- call functions desired to run when script is called/imported
-- functions other modules are able to call
romonly.process = process
-- return the module's table
return romonly

View File

@ -73,7 +73,7 @@ function main ()
--local curcart = require "scripts.nes.mmc4"
--local curcart = require "scripts.nes.mm2"
--local curcart = require "scripts.nes.mapper30"
local curcart = require "scripts.nes.bnrom"
--local curcart = require "scripts.nes.bnrom"
--local curcart = require "scripts.nes.cdream"
--local curcart = require "scripts.nes.cninja"
--local curcart = require "scripts.nes.action53"
@ -85,15 +85,16 @@ function main ()
--local curcart = require "scripts.snes.lorom_5volt" --catskull design
--local curcart = require "scripts.snes.v2proto"
--local curcart = require "scripts.snes.v2proto_hirom" --quickly becoming the master SNES script...
local curcart = require "scripts.gb.romonly"
-- =====================================================
-- USERS: set cart_console to the to point to the mapper script you would like to use here.
-- =====================================================
local cart_console = "NES" --includes Famicom
--local cart_console = "NES" --includes Famicom
--local cart_console = "SNES"
--local cart_console = "SEGA"
--local cart_console = "N64"
--local cart_console = "DMG"
local cart_console = "DMG"
--local cart_console = "GBA"
--local cart_console = "SMS"
@ -593,25 +594,26 @@ function main ()
print("testing gameboy")
--SNES should be similar
curcart.process( false, true, false, false, false, "ignore/dump.bin", "ignore/gameboy.bin", "ignore/verifyout.bin")
---[[ --TEST GB power
rv = dict.pinport( "CTL_ENABLE", "GBP" )
rv = dict.pinport( "CTL_OP", "GBP")
rv = dict.pinport( "CTL_SET_HI", "GBP")
dict.io("IO_RESET")
curcart.process( true, true, false, false, false, "ignore/dump.bin", "ignore/gameboy.bin", "ignore/verifyout.bin")
--[[ --TEST GB power
dict.io("GB_POWER_3V")
print("GBP high 3v GBA")
jtag.sleep(1)
rv = dict.pinport( "CTL_SET_LO", "GBP")
dict.io("GB_POWER_5V")
print("GBP low 5v GB")
jtag.sleep(1)
rv = dict.pinport( "CTL_SET_HI", "GBP")
dict.io("GB_POWER_3V")
print("GBP high 3v GBA")
jtag.sleep(1)
rv = dict.pinport( "CTL_SET_LO", "GBP")
dict.io("GB_POWER_5V")
print("GBP low 5v GB")
--jtag.sleep(2)
jtag.sleep(1)
print("GBP reset (pullup) = 3v")
--]]
dict.io("IO_RESET")
elseif cart_console == "GBA" then

View File

@ -120,6 +120,7 @@
#define NESPPU_PAGE 0x23 //mapper byte specifies A13-8 bits 6 & 7 can't be set
#define SNESROM_PAGE 0x24 //mapper byte specifies A15-8 ROMSEL low
#define SNESSYS_PAGE 0x25 //mapper byte specifies A15-8 ROMSEL high
#define GAMEBOY_PAGE 0x26 //mapper byte specifies A15-8
//operand LSB
//SST 39SF0x0 manf/prod IDs

View File

@ -64,6 +64,12 @@
#define SEGA_INIT 7
#define N64_INIT 8
//default is 3v by pulling up on GBP pin
//these set GBP pin to output and drive high for 3v, and low for 5v
//be careful not to drive GBA cartridge with 5v as it's supposed to only be 3v
#define GB_POWER_5V 9
#define GB_POWER_3V 10
//Test EXP0 drive with pull up
//This is an important test if reling on pulling up EXP0 pin to drive the cart's pin.