GBA cart dumping supported!
haven't done anything with save ram/flash yet, but should be able to dump rom for any/all GBA carts now! Tested with 8Mbyte Metroid Fusion. Took ~75sec at 107KBps
This commit is contained in:
parent
99e3494db8
commit
fa71e2ef2a
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +1,7 @@
|
||||||
Archive member included to satisfy reference by file (symbol)
|
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:/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\cc4sAHYU.o (__aeabi_unwind_cpp_pr0)
|
C:\Users\paul\AppData\Local\Temp\ccekVufX.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(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(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(pr-support.o)
|
||||||
|
|
@ -51,13 +51,14 @@ c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eabi/7.3
|
||||||
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\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/../../../../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:/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\ccmcEXxC.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
|
C:\Users\paul\AppData\Local\Temp\ccQzBxIk.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:/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\ccmcEXxC.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||||
|
|
||||||
Allocating common symbols
|
Allocating common symbols
|
||||||
Common symbol size file
|
Common symbol size file
|
||||||
|
|
||||||
|
cur_addr_lo 0x2 source/gba.o (symbol from plugin)
|
||||||
buff3 0x14 source/buffer.o (symbol from plugin)
|
buff3 0x14 source/buffer.o (symbol from plugin)
|
||||||
__lock___atexit_recursive_mutex
|
__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)
|
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)
|
||||||
|
|
@ -86,6 +87,7 @@ __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)
|
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)
|
tdi_base 0x4 source/jtag.o (symbol from plugin)
|
||||||
tdo_base 0x4 source/jtag.o (symbol from plugin)
|
tdo_base 0x4 source/jtag.o (symbol from plugin)
|
||||||
|
cur_addr_hi 0x1 source/gba.o (symbol from plugin)
|
||||||
buff2 0x14 source/buffer.o (symbol from plugin)
|
buff2 0x14 source/buffer.o (symbol from plugin)
|
||||||
cur_bank 0x1 source/nes.o (symbol from plugin)
|
cur_bank 0x1 source/nes.o (symbol from plugin)
|
||||||
addr_ptr 0x4 source/bootload.o (symbol from plugin)
|
addr_ptr 0x4 source/bootload.o (symbol from plugin)
|
||||||
|
|
@ -129,39 +131,39 @@ Discarded input sections
|
||||||
.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.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
|
.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
|
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\ccodwd7C.o
|
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.debug_aranges
|
.debug_aranges
|
||||||
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.debug_str 0x00000000 0x80 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.debug_str 0x00000000 0x68 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.ARM.attributes
|
.ARM.attributes
|
||||||
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.debug_aranges
|
.debug_aranges
|
||||||
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.debug_str 0x00000000 0x7d C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
.debug_str 0x00000000 0x65 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.ARM.attributes
|
.ARM.attributes
|
||||||
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccENOwHW.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)
|
.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)
|
.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)
|
.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)
|
||||||
|
|
@ -424,10 +426,10 @@ 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/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/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:/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\ccodwd7C.o
|
LOAD C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
LOAD C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
LOAD C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
LOAD C:\Users\paul\AppData\Local\Temp\cc4sAHYU.o
|
LOAD C:\Users\paul\AppData\Local\Temp\ccekVufX.o
|
||||||
LOAD C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
LOAD C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
START 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/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\libg.a
|
||||||
|
|
@ -441,17 +443,17 @@ 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/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
|
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 0x50e0
|
.text 0x08000000 0x5210
|
||||||
*(.isr_vector)
|
*(.isr_vector)
|
||||||
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
0x08000000 __isr_vector
|
0x08000000 __isr_vector
|
||||||
*(.usb_driver)
|
*(.usb_driver)
|
||||||
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x08000198 USB_IRQHandler
|
0x08000198 USB_IRQHandler
|
||||||
*(.usb_desc)
|
*(.usb_desc)
|
||||||
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*(.hardfault)
|
*(.hardfault)
|
||||||
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
0x08000534 TIM1_CC_IRQHandler
|
0x08000534 TIM1_CC_IRQHandler
|
||||||
0x08000534 TSC_IRQHandler
|
0x08000534 TSC_IRQHandler
|
||||||
0x08000534 ADC1_COMP_IRQHandler
|
0x08000534 ADC1_COMP_IRQHandler
|
||||||
|
|
@ -490,7 +492,7 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
||||||
0x08000534 USART1_IRQHandler
|
0x08000534 USART1_IRQHandler
|
||||||
0x08000534 TIM1_BRK_UP_TRG_COM_IRQHandler
|
0x08000534 TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||||
*fill* 0x08000536 0x2 ff
|
*fill* 0x08000536 0x2 ff
|
||||||
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x08000538 HardFault_Handler
|
0x08000538 HardFault_Handler
|
||||||
*_thumb1_case_uqi.o()
|
*_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)
|
.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)
|
||||||
|
|
@ -506,11 +508,11 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
||||||
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)
|
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)
|
*(.fw_update)
|
||||||
*fill* 0x080005aa 0x2 ff
|
*fill* 0x080005aa 0x2 ff
|
||||||
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x00000770 . = 0x770
|
0x00000770 . = 0x770
|
||||||
*fill* 0x080006fc 0x74 ff
|
*fill* 0x080006fc 0x74 ff
|
||||||
*(.fw_up_main)
|
*(.fw_up_main)
|
||||||
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x00000800 . = 0x800
|
0x00000800 . = 0x800
|
||||||
*fill* 0x080007e0 0x20 ff
|
*fill* 0x080007e0 0x20 ff
|
||||||
*(.appver)
|
*(.appver)
|
||||||
|
|
@ -518,173 +520,174 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
||||||
*fill* 0x08000800 0x4 ff
|
*fill* 0x08000800 0x4 ff
|
||||||
*(.reset_handler)
|
*(.reset_handler)
|
||||||
.reset_handler
|
.reset_handler
|
||||||
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
0x08000804 Reset_Handler
|
0x08000804 Reset_Handler
|
||||||
*(.usbFuncWrite)
|
*(.usbFuncWrite)
|
||||||
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*(.usbFuncSetup)
|
*(.usbFuncSetup)
|
||||||
.usbFuncSetup 0x08000884 0x1994 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.usbFuncSetup 0x08000884 0x1a54 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*(.text*)
|
*(.text*)
|
||||||
.text.snes_page_rd_poll.constprop.26
|
.text.snes_page_rd_poll.constprop.27
|
||||||
0x08002218 0x7c C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080022d8 0x7c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_cpu_page_rd_poll.constprop.25
|
.text.nes_cpu_page_rd_poll.constprop.26
|
||||||
0x08002294 0x6c C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002354 0x6c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_ppu_page_rd_poll.constprop.22
|
.text.nes_ppu_page_rd_poll.constprop.23
|
||||||
0x08002300 0x68 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080023c0 0x68 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.append_pairity
|
.text.append_pairity
|
||||||
0x08002368 0x1e C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002428 0x1e C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.delay_us
|
.text.delay_us
|
||||||
0x08002386 0x14 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002446 0x14 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x0800239a 0x2 ff
|
*fill* 0x0800245a 0x2 ff
|
||||||
.text.lfsr_32 0x0800239c 0x30 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.text.lfsr_32 0x0800245c 0x30 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.snes_wr 0x080023cc 0x60 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.text.snes_wr 0x0800248c 0x60 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.snes_rd 0x0800242c 0x48 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.text.snes_rd 0x080024ec 0x48 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.write_page_snes.constprop.33
|
.text.write_page_snes.constprop.34
|
||||||
0x08002474 0x194 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002534 0x194 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.snes_3v_flash_wr
|
.text.snes_3v_flash_wr
|
||||||
0x08002608 0x50 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080026c8 0x50 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.snes_5v_flash_wr
|
.text.snes_5v_flash_wr
|
||||||
0x08002658 0x50 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002718 0x50 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_dualport_wr
|
.text.nes_dualport_wr
|
||||||
0x080026a8 0x50 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002768 0x50 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_dualport_rd
|
.text.nes_dualport_rd
|
||||||
0x080026f8 0x38 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080027b8 0x38 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_ppu_wr
|
.text.nes_ppu_wr
|
||||||
0x08002730 0x50 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080027f0 0x50 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_ppu_rd
|
.text.nes_ppu_rd
|
||||||
0x08002780 0x38 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002840 0x38 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.mmc3_chrrom_flash_wr
|
.text.mmc3_chrrom_flash_wr
|
||||||
0x080027b8 0x44 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002878 0x44 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nrom_chrrom_flash_wr
|
.text.nrom_chrrom_flash_wr
|
||||||
0x080027fc 0x44 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080028bc 0x44 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_cpu_wr
|
.text.nes_cpu_wr
|
||||||
0x08002840 0x6c C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002900 0x6c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.cdream_chrrom_flash_wr
|
.text.cdream_chrrom_flash_wr
|
||||||
0x080028ac 0x84 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x0800296c 0x84 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.mmc4_chrrom_flash_wr
|
.text.mmc4_chrrom_flash_wr
|
||||||
0x08002930 0x74 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080029f0 0x74 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.cnrom_chrrom_flash_wr
|
.text.cnrom_chrrom_flash_wr
|
||||||
0x080029a4 0x7c C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002a64 0x7c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nes_cpu_rd
|
.text.nes_cpu_rd
|
||||||
0x08002a20 0x40 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002ae0 0x40 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.map30_prgrom_flash_wr
|
.text.map30_prgrom_flash_wr
|
||||||
0x08002a60 0x74 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002b20 0x74 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.mmc4_prgrom_sop_flash_wr
|
.text.mmc4_prgrom_sop_flash_wr
|
||||||
0x08002ad4 0x54 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002b94 0x54 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.mmc3_prgrom_flash_wr
|
.text.mmc3_prgrom_flash_wr
|
||||||
0x08002b28 0x50 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002be8 0x50 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.disc_push_exp0_prgrom_wr
|
.text.disc_push_exp0_prgrom_wr
|
||||||
0x08002b78 0x48 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002c38 0x48 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.discrete_exp0_prgrom_wr
|
.text.discrete_exp0_prgrom_wr
|
||||||
0x08002bc0 0x58 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002c80 0x58 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.unrom_prgrom_flash_wr
|
.text.unrom_prgrom_flash_wr
|
||||||
0x08002c18 0x64 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002cd8 0x64 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.nrom_prgrom_flash_wr
|
.text.nrom_prgrom_flash_wr
|
||||||
0x08002c7c 0x44 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002d3c 0x44 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.pbje_scan
|
.text.pbje_scan
|
||||||
0x08002cc0 0x10c C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002d80 0x10c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.pbje_state_change
|
.text.pbje_state_change
|
||||||
0x08002dcc 0x88 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002e8c 0x88 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.jtag_init_pbje
|
.text.jtag_init_pbje
|
||||||
0x08002e54 0xe0 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002f14 0xe0 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.jtag_run_pbje.part.0
|
.text.jtag_run_pbje.part.0
|
||||||
0x08002f34 0xb8 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08002ff4 0xb8 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.io_reset
|
.text.io_reset
|
||||||
0x08002fec 0x174 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080030ac 0x174 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
|
.text.gba_rd 0x08003220 0x4c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.write_page_verify
|
.text.write_page_verify
|
||||||
0x08003160 0x5c C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x0800326c 0x5c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.write_page
|
.text.write_page
|
||||||
0x080031bc 0x34 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080032c8 0x34 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.get_next_buff
|
.text.get_next_buff
|
||||||
0x080031f0 0x54 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080032fc 0x54 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.mmc1_wr.constprop.12
|
.text.mmc1_wr.constprop.12
|
||||||
0x08003244 0x22 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08003350 0x22 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x08003266 0x2 ff
|
*fill* 0x08003372 0x2 ff
|
||||||
.text.mmc1_chrrom_flash_wr
|
.text.mmc1_chrrom_flash_wr
|
||||||
0x08003268 0x60 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08003374 0x60 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.mmc1_prgrom_flash_wr
|
.text.mmc1_prgrom_flash_wr
|
||||||
0x080032c8 0x50 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080033d4 0x50 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.swim_wotf
|
.text.swim_wotf
|
||||||
0x08003318 0xb4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08003424 0xb4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.swim_rotf
|
.text.swim_rotf
|
||||||
0x080033cc 0xac C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x080034d8 0xac C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.text.startup.main
|
.text.startup.main
|
||||||
0x08003478 0xac0 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x08003584 0xae8 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x08003478 main
|
0x08003584 main
|
||||||
*fill* 0x08003f38 0x8 ff
|
*fill* 0x0800406c 0x4 ff
|
||||||
.text 0x08003f40 0x154 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.text 0x08004070 0x154 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
0x08003f40 swim_xfr
|
0x08004070 swim_xfr
|
||||||
.text 0x08004094 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)
|
.text 0x080041c4 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)
|
||||||
0x08004350 _Unwind_GetCFA
|
0x08004480 _Unwind_GetCFA
|
||||||
0x08004354 __gnu_Unwind_RaiseException
|
0x08004484 __gnu_Unwind_RaiseException
|
||||||
0x080043a8 __gnu_Unwind_ForcedUnwind
|
0x080044d8 __gnu_Unwind_ForcedUnwind
|
||||||
0x080043bc __gnu_Unwind_Resume
|
0x080044ec __gnu_Unwind_Resume
|
||||||
0x08004404 __gnu_Unwind_Resume_or_Rethrow
|
0x08004534 __gnu_Unwind_Resume_or_Rethrow
|
||||||
0x08004420 _Unwind_Complete
|
0x08004550 _Unwind_Complete
|
||||||
0x08004424 _Unwind_DeleteException
|
0x08004554 _Unwind_DeleteException
|
||||||
0x08004434 _Unwind_VRS_Get
|
0x08004564 _Unwind_VRS_Get
|
||||||
0x0800447c _Unwind_VRS_Set
|
0x080045ac _Unwind_VRS_Set
|
||||||
0x080044c4 __gnu_Unwind_Backtrace
|
0x080045f4 __gnu_Unwind_Backtrace
|
||||||
0x08004814 __aeabi_unwind_cpp_pr0
|
0x08004944 __aeabi_unwind_cpp_pr0
|
||||||
0x08004820 __aeabi_unwind_cpp_pr1
|
0x08004950 __aeabi_unwind_cpp_pr1
|
||||||
0x0800482c __aeabi_unwind_cpp_pr2
|
0x0800495c __aeabi_unwind_cpp_pr2
|
||||||
0x08004838 _Unwind_VRS_Pop
|
0x08004968 _Unwind_VRS_Pop
|
||||||
.text 0x08004a9c 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)
|
.text 0x08004bcc 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)
|
||||||
0x08004a9c __restore_core_regs
|
0x08004bcc __restore_core_regs
|
||||||
0x08004a9c restore_core_regs
|
0x08004bcc restore_core_regs
|
||||||
0x08004ac8 __gnu_Unwind_Restore_VFP
|
0x08004bf8 __gnu_Unwind_Restore_VFP
|
||||||
0x08004acc __gnu_Unwind_Save_VFP
|
0x08004bfc __gnu_Unwind_Save_VFP
|
||||||
0x08004ad0 __gnu_Unwind_Restore_VFP_D
|
0x08004c00 __gnu_Unwind_Restore_VFP_D
|
||||||
0x08004ad4 __gnu_Unwind_Save_VFP_D
|
0x08004c04 __gnu_Unwind_Save_VFP_D
|
||||||
0x08004ad8 __gnu_Unwind_Restore_VFP_D_16_to_31
|
0x08004c08 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||||
0x08004adc __gnu_Unwind_Save_VFP_D_16_to_31
|
0x08004c0c __gnu_Unwind_Save_VFP_D_16_to_31
|
||||||
0x08004ae0 __gnu_Unwind_Restore_WMMXD
|
0x08004c10 __gnu_Unwind_Restore_WMMXD
|
||||||
0x08004ae4 __gnu_Unwind_Save_WMMXD
|
0x08004c14 __gnu_Unwind_Save_WMMXD
|
||||||
0x08004ae8 __gnu_Unwind_Restore_WMMXC
|
0x08004c18 __gnu_Unwind_Restore_WMMXC
|
||||||
0x08004aec __gnu_Unwind_Save_WMMXC
|
0x08004c1c __gnu_Unwind_Save_WMMXC
|
||||||
0x08004af0 ___Unwind_RaiseException
|
0x08004c20 ___Unwind_RaiseException
|
||||||
0x08004af0 _Unwind_RaiseException
|
0x08004c20 _Unwind_RaiseException
|
||||||
0x08004b20 _Unwind_Resume
|
0x08004c50 _Unwind_Resume
|
||||||
0x08004b20 ___Unwind_Resume
|
0x08004c50 ___Unwind_Resume
|
||||||
0x08004b50 _Unwind_Resume_or_Rethrow
|
0x08004c80 _Unwind_Resume_or_Rethrow
|
||||||
0x08004b50 ___Unwind_Resume_or_Rethrow
|
0x08004c80 ___Unwind_Resume_or_Rethrow
|
||||||
0x08004b80 _Unwind_ForcedUnwind
|
0x08004cb0 _Unwind_ForcedUnwind
|
||||||
0x08004b80 ___Unwind_ForcedUnwind
|
0x08004cb0 ___Unwind_ForcedUnwind
|
||||||
0x08004bb0 ___Unwind_Backtrace
|
0x08004ce0 ___Unwind_Backtrace
|
||||||
0x08004bb0 _Unwind_Backtrace
|
0x08004ce0 _Unwind_Backtrace
|
||||||
.text 0x08004be0 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)
|
.text 0x08004d10 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)
|
||||||
0x08004c34 __gnu_unwind_execute
|
0x08004d64 __gnu_unwind_execute
|
||||||
0x08004f24 __gnu_unwind_frame
|
0x08005054 __gnu_unwind_frame
|
||||||
0x08004f4c _Unwind_GetRegionStart
|
0x0800507c _Unwind_GetRegionStart
|
||||||
0x08004f58 _Unwind_GetLanguageSpecificData
|
0x08005088 _Unwind_GetLanguageSpecificData
|
||||||
0x08004f6c _Unwind_GetDataRelBase
|
0x0800509c _Unwind_GetDataRelBase
|
||||||
0x08004f74 _Unwind_GetTextRelBase
|
0x080050a4 _Unwind_GetTextRelBase
|
||||||
.text.abort 0x08004f7c 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)
|
.text.abort 0x080050ac 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)
|
||||||
0x08004f7c abort
|
0x080050ac abort
|
||||||
.text.memcpy 0x08004f8c 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)
|
.text.memcpy 0x080050bc 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)
|
||||||
0x08004f8c memcpy
|
0x080050bc memcpy
|
||||||
.text._raise_r
|
.text._raise_r
|
||||||
0x08005014 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)
|
0x08005144 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)
|
||||||
0x08005014 _raise_r
|
0x08005144 _raise_r
|
||||||
.text.raise 0x08005070 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)
|
.text.raise 0x080051a0 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)
|
||||||
0x08005070 raise
|
0x080051a0 raise
|
||||||
.text._kill_r 0x08005084 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)
|
.text._kill_r 0x080051b4 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)
|
||||||
0x08005084 _kill_r
|
0x080051b4 _kill_r
|
||||||
.text._getpid_r
|
.text._getpid_r
|
||||||
0x080050ac 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)
|
0x080051dc 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)
|
||||||
0x080050ac _getpid_r
|
0x080051dc _getpid_r
|
||||||
.text._getpid 0x080050b4 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)
|
.text._getpid 0x080051e4 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)
|
||||||
0x080050b4 _getpid
|
0x080051e4 _getpid
|
||||||
.text._kill 0x080050c4 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)
|
.text._kill 0x080051f4 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)
|
||||||
0x080050c4 _kill
|
0x080051f4 _kill
|
||||||
.text._exit 0x080050d4 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)
|
.text._exit 0x08005204 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)
|
||||||
0x080050d4 _exit
|
0x08005204 _exit
|
||||||
*(.init)
|
*(.init)
|
||||||
.init 0x080050d8 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
|
.init 0x08005208 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
|
||||||
0x080050d8 _init
|
0x08005208 _init
|
||||||
*(.fini)
|
*(.fini)
|
||||||
.fini 0x080050dc 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
|
.fini 0x0800520c 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
|
||||||
0x080050dc _fini
|
0x0800520c _fini
|
||||||
*crtbegin.o(.ctors)
|
*crtbegin.o(.ctors)
|
||||||
*crtbegin?.o(.ctors)
|
*crtbegin?.o(.ctors)
|
||||||
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
|
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
|
||||||
|
|
@ -698,42 +701,42 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
||||||
*(.rodata*)
|
*(.rodata*)
|
||||||
*(.eh_frame*)
|
*(.eh_frame*)
|
||||||
|
|
||||||
.glue_7 0x080050e0 0x0
|
.glue_7 0x08005210 0x0
|
||||||
.glue_7 0x080050e0 0x0 linker stubs
|
.glue_7 0x08005210 0x0 linker stubs
|
||||||
|
|
||||||
.glue_7t 0x080050e0 0x0
|
.glue_7t 0x08005210 0x0
|
||||||
.glue_7t 0x080050e0 0x0 linker stubs
|
.glue_7t 0x08005210 0x0 linker stubs
|
||||||
|
|
||||||
.vfp11_veneer 0x080050e0 0x0
|
.vfp11_veneer 0x08005210 0x0
|
||||||
.vfp11_veneer 0x080050e0 0x0 linker stubs
|
.vfp11_veneer 0x08005210 0x0 linker stubs
|
||||||
|
|
||||||
.v4_bx 0x080050e0 0x0
|
.v4_bx 0x08005210 0x0
|
||||||
.v4_bx 0x080050e0 0x0 linker stubs
|
.v4_bx 0x08005210 0x0 linker stubs
|
||||||
|
|
||||||
.iplt 0x080050e0 0x0
|
.iplt 0x08005210 0x0
|
||||||
.iplt 0x080050e0 0x0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.iplt 0x08005210 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
|
|
||||||
.ARM.extab 0x080050e0 0x30
|
.ARM.extab 0x08005210 0x30
|
||||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||||
.ARM.extab 0x080050e0 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 0x08005210 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 0x08005104 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)
|
.ARM.extab 0x08005234 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)
|
||||||
0x08005110 __exidx_start = .
|
0x08005240 __exidx_start = .
|
||||||
|
|
||||||
.ARM.exidx 0x08005110 0xd0
|
.ARM.exidx 0x08005240 0xd0
|
||||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||||
.ARM.exidx 0x08005110 0x8 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.ARM.exidx 0x08005240 0x8 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
0x10 (size before relaxing)
|
0x10 (size before relaxing)
|
||||||
.ARM.exidx 0x08005118 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)
|
.ARM.exidx 0x08005248 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)
|
0xd8 (size before relaxing)
|
||||||
.ARM.exidx 0x080051b0 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)
|
.ARM.exidx 0x080052e0 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)
|
0x48 (size before relaxing)
|
||||||
0x080051e0 __exidx_end = .
|
0x08005310 __exidx_end = .
|
||||||
0x080051e0 __etext = ALIGN (0x4)
|
0x08005310 __etext = ALIGN (0x4)
|
||||||
|
|
||||||
.rel.dyn 0x080051e0 0x0
|
.rel.dyn 0x08005310 0x0
|
||||||
.rel.iplt 0x080051e0 0x0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.rel.iplt 0x08005310 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
|
|
||||||
.data 0x20000000 0x430 load address 0x080051e0
|
.data 0x20000000 0x430 load address 0x08005310
|
||||||
0x20000000 __data_start__ = .
|
0x20000000 __data_start__ = .
|
||||||
*(vtable)
|
*(vtable)
|
||||||
*(.data*)
|
*(.data*)
|
||||||
|
|
@ -761,84 +764,89 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
||||||
*(.fastrun)
|
*(.fastrun)
|
||||||
0x20000430 __data_end__ = .
|
0x20000430 __data_end__ = .
|
||||||
|
|
||||||
.igot.plt 0x20000430 0x0 load address 0x08005610
|
.igot.plt 0x20000430 0x0 load address 0x08005740
|
||||||
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccodwd7C.o
|
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccUnJdk0.o
|
||||||
|
|
||||||
.bss 0x20000430 0x304 load address 0x08005610
|
.bss 0x20000430 0x308 load address 0x08005740
|
||||||
0x20000430 . = ALIGN (0x4)
|
0x20000430 . = ALIGN (0x4)
|
||||||
0x20000430 __bss_start__ = .
|
0x20000430 __bss_start__ = .
|
||||||
*(.bss*)
|
*(.bss*)
|
||||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.bank_table
|
.bss.bank_table
|
||||||
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.cur_addr_hi
|
||||||
*fill* 0x20000489 0x3
|
0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
*fill* 0x20000489 0x1
|
||||||
|
.bss.cur_addr_lo
|
||||||
|
0x2000048a 0x2 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
|
.bss.cur_bank 0x2000048c 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
|
*fill* 0x2000048d 0x3
|
||||||
|
.bss.cur_buff 0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.cur_usb_load_buff
|
.bss.cur_usb_load_buff
|
||||||
0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x20000494 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.incoming_bytes_remain
|
.bss.incoming_bytes_remain
|
||||||
0x20000494 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x20000498 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x20000495 0x3
|
*fill* 0x20000499 0x3
|
||||||
.bss.lfsr 0x20000498 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.lfsr 0x2000049c 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.num_buff.5087
|
.bss.num_buff.5089
|
||||||
0x2000049c 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004a0 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x2000049d 0x3
|
*fill* 0x200004a1 0x3
|
||||||
.bss.oper_info_struct
|
.bss.oper_info_struct
|
||||||
0x200004a0 0x20 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004a4 0x20 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.pbje_command
|
.bss.pbje_command
|
||||||
0x200004c0 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004c4 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.pbje_data
|
.bss.pbje_data
|
||||||
0x200004c1 0x20 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004c5 0x20 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.pbje_numclk
|
.bss.pbje_numclk
|
||||||
0x200004e1 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004e5 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.pbje_status
|
.bss.pbje_status
|
||||||
0x200004e2 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004e6 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.raw_bank_status
|
.bss.raw_bank_status
|
||||||
0x200004e3 0x10 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004e7 0x10 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x200004f3 0x1
|
*fill* 0x200004f7 0x1
|
||||||
.bss.raw_buffer16
|
.bss.raw_buffer16
|
||||||
0x200004f4 0x200 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200004f8 0x200 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.rv16.4756
|
.bss.rv16.4756
|
||||||
0x200006f4 0x8 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x200006f8 0x8 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.rv16.5007
|
.bss.rv16.5009
|
||||||
0x200006fc 0x8 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x20000700 0x8 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.stm_debug_disable
|
.bss.stm_debug_disable
|
||||||
0x20000704 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x20000705 0x3
|
*fill* 0x20000709 0x3
|
||||||
.bss.swim_base
|
.bss.swim_base
|
||||||
0x20000708 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.swim_pin 0x2000070c 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.swim_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x2000070d 0x3
|
*fill* 0x20000711 0x3
|
||||||
.bss.tck_base 0x20000710 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tck_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.tck_pin 0x20000714 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tck_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x20000715 0x3
|
*fill* 0x20000719 0x3
|
||||||
.bss.tdi_base 0x20000718 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tdi_base 0x2000071c 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.tdi_pin 0x2000071c 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tdi_pin 0x20000720 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x2000071d 0x3
|
*fill* 0x20000721 0x3
|
||||||
.bss.tdo_base 0x20000720 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tdo_base 0x20000724 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.tdo_pin 0x20000724 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tdo_pin 0x20000728 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*fill* 0x20000725 0x3
|
*fill* 0x20000729 0x3
|
||||||
.bss.tms_base 0x20000728 0x4 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tms_base 0x2000072c 0x4 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.bss.tms_pin 0x2000072c 0x1 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.bss.tms_pin 0x20000730 0x1 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
*fill* 0x2000072d 0x3
|
*fill* 0x20000731 0x3
|
||||||
COMMON 0x20000730 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)
|
COMMON 0x20000734 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)
|
||||||
0x20000730 errno
|
0x20000734 errno
|
||||||
0x20000734 . = ALIGN (0x4)
|
0x20000738 . = ALIGN (0x4)
|
||||||
0x20000734 __bss_end__ = .
|
0x20000738 __bss_end__ = .
|
||||||
|
|
||||||
.heap 0x20000734 0x0
|
.heap 0x20000738 0x0
|
||||||
0x20000734 __end__ = .
|
0x20000738 __end__ = .
|
||||||
0x20000734 PROVIDE (end = .)
|
0x20000738 PROVIDE (end = .)
|
||||||
*(.heap*)
|
*(.heap*)
|
||||||
0x20000734 __HeapLimit = .
|
0x20000738 __HeapLimit = .
|
||||||
|
|
||||||
.stack_dummy 0x20000734 0x0
|
.stack_dummy 0x20000738 0x0
|
||||||
*(.stack*)
|
*(.stack*)
|
||||||
0x20001800 __StackTop = (ORIGIN (RAM) + LENGTH (RAM))
|
0x20001800 __StackTop = (ORIGIN (RAM) + LENGTH (RAM))
|
||||||
0x20001800 __StackLimit = (__StackTop - SIZEOF (.stack_dummy))
|
0x20001800 __StackLimit = (__StackTop - SIZEOF (.stack_dummy))
|
||||||
|
|
@ -851,45 +859,45 @@ OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
|
||||||
.ARM.attributes
|
.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
|
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
|
.ARM.attributes
|
||||||
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.ARM.attributes
|
.ARM.attributes
|
||||||
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
|
|
||||||
.comment 0x00000000 0x7f
|
.comment 0x00000000 0x7f
|
||||||
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x80 (size before relaxing)
|
0x80 (size before relaxing)
|
||||||
|
|
||||||
.debug_info 0x00000000 0x501b
|
.debug_info 0x00000000 0x51d1
|
||||||
.debug_info 0x00000000 0x4ff5 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_info 0x00000000 0x51ab C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.debug_info 0x00004ff5 0x26 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.debug_info 0x000051ab 0x26 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
|
|
||||||
.debug_abbrev 0x00000000 0x69e
|
.debug_abbrev 0x00000000 0x69e
|
||||||
.debug_abbrev 0x00000000 0x68a C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_abbrev 0x00000000 0x68a C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.debug_abbrev 0x0000068a 0x14 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.debug_abbrev 0x0000068a 0x14 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
|
|
||||||
.debug_loc 0x00000000 0x503a
|
.debug_loc 0x00000000 0x51c7
|
||||||
.debug_loc 0x00000000 0x503a C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_loc 0x00000000 0x51c7 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
|
|
||||||
.debug_aranges 0x00000000 0x1d8
|
.debug_aranges 0x00000000 0x1e0
|
||||||
.debug_aranges
|
.debug_aranges
|
||||||
0x00000000 0x1b8 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
0x00000000 0x1c0 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.debug_aranges
|
.debug_aranges
|
||||||
0x000001b8 0x20 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
0x000001c0 0x20 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
|
|
||||||
.debug_ranges 0x00000000 0xce8
|
.debug_ranges 0x00000000 0xd18
|
||||||
.debug_ranges 0x00000000 0xce8 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_ranges 0x00000000 0xd18 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
|
|
||||||
.debug_line 0x00000000 0x1923
|
.debug_line 0x00000000 0x19ae
|
||||||
.debug_line 0x00000000 0x1830 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_line 0x00000000 0x18bb C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
.debug_line 0x00001830 0xf3 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.debug_line 0x000018bb 0xf3 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
|
|
||||||
.debug_str 0x00000000 0x1187
|
.debug_str 0x00000000 0x11c2
|
||||||
.debug_str 0x00000000 0x110e C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_str 0x00000000 0x1161 C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
0x1233 (size before relaxing)
|
0x127e (size before relaxing)
|
||||||
.debug_str 0x0000110e 0x79 C:\Users\paul\AppData\Local\Temp\ccCeVEpf.o
|
.debug_str 0x00001161 0x61 C:\Users\paul\AppData\Local\Temp\ccENOwHW.o
|
||||||
|
|
||||||
.debug_frame 0x00000000 0x584
|
.debug_frame 0x00000000 0x59c
|
||||||
.debug_frame 0x00000000 0x584 C:\Users\paul\AppData\Local\Temp\ccmcEXxC.ltrans0.ltrans.o
|
.debug_frame 0x00000000 0x59c C:\Users\paul\AppData\Local\Temp\ccQzBxIk.ltrans0.ltrans.o
|
||||||
|
|
||||||
.stabstr 0x00000000 0x76
|
.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)
|
.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)
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,11 @@ uint8_t dump_buff( buffer *buff ) {
|
||||||
//id contains MSb of page when <256B buffer
|
//id contains MSb of page when <256B buffer
|
||||||
buff->last_idx, 1 );
|
buff->last_idx, 1 );
|
||||||
break;
|
break;
|
||||||
|
case GBA_ROM_PAGE:
|
||||||
|
//address must have already been latched
|
||||||
|
//we're only telling page_rd the number of bytes to read, and where to put it
|
||||||
|
buff->cur_byte = gba_page_rd( buff->data, buff->last_idx );
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NES_CONN
|
#ifdef NES_CONN
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@
|
||||||
//only need this file if connector is present on the device
|
//only need this file if connector is present on the device
|
||||||
#ifdef GB_CONN
|
#ifdef GB_CONN
|
||||||
|
|
||||||
|
uint16_t cur_addr_lo;
|
||||||
|
uint8_t cur_addr_hi;
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
//
|
//
|
||||||
// GBA operations
|
// GBA operations
|
||||||
|
|
@ -26,20 +29,32 @@ uint8_t gba_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *r
|
||||||
#define RD_LEN 0
|
#define RD_LEN 0
|
||||||
#define RD0 1
|
#define RD0 1
|
||||||
#define RD1 2
|
#define RD1 2
|
||||||
|
//resist temptation to make these 16bit indexes
|
||||||
|
//will break rule of accessing usb_buff in half word aligned access
|
||||||
|
//would have to use RD1-RD2 for 16bit aligned access..
|
||||||
|
|
||||||
#define BYTE_LEN 1
|
#define BYTE_LEN 1
|
||||||
#define HWORD_LEN 2
|
#define HWORD_LEN 2
|
||||||
|
|
||||||
switch (opcode) {
|
switch (opcode) {
|
||||||
// //no return value:
|
// //no return value:
|
||||||
case GBA_WR:
|
case LATCH_ADDR:
|
||||||
gba_wr( operand, miscdata );
|
//operand A0-15, miscdata A16-23->D0-7
|
||||||
|
gba_latch_addr( operand, miscdata );
|
||||||
|
break;
|
||||||
|
case RELEASE_BUS:
|
||||||
|
ROMSEL_HI();
|
||||||
|
DATA_IP(); //A16-23 are output here during reads
|
||||||
break;
|
break;
|
||||||
|
|
||||||
//8bit return values:
|
//8bit return values:
|
||||||
case GBA_RD:
|
case GBA_RD:
|
||||||
rdata[RD_LEN] = BYTE_LEN;
|
//address must have been latched already
|
||||||
rdata[RD0] = gba_rd( operand );
|
rdata[RD_LEN] = HWORD_LEN;
|
||||||
|
//can use operand as a variable
|
||||||
|
operand = gba_rd();
|
||||||
|
rdata[RD0] = operand;
|
||||||
|
rdata[RD1] = operand>>8;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//macro doesn't exist
|
//macro doesn't exist
|
||||||
|
|
@ -50,15 +65,85 @@ uint8_t gba_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *r
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t gba_rd( uint16_t addr )
|
//latches A0-23, leaves /CS low for subsequent accesses
|
||||||
|
void gba_latch_addr( uint16_t addr_lo, uint8_t addr_hi)
|
||||||
{
|
{
|
||||||
return 0xAA;
|
//store address so other functions can keep track of incrementing
|
||||||
}
|
cur_addr_lo = addr_lo;
|
||||||
|
cur_addr_hi = addr_hi;
|
||||||
|
|
||||||
|
//set addr & data bus to output
|
||||||
|
ADDR_OP();
|
||||||
|
DATA_OP();
|
||||||
|
|
||||||
|
//place addr on the bus
|
||||||
|
ADDR_SET(addr_lo);
|
||||||
|
DATA_SET(addr_hi);
|
||||||
|
|
||||||
|
//latch the address
|
||||||
|
//leave it low for subsequent access
|
||||||
|
ROMSEL_LO();
|
||||||
|
|
||||||
|
//leave AD0-15 as input for subsequent access
|
||||||
|
ADDR_IP();
|
||||||
|
|
||||||
|
//leave A16-23 as output for subsequent access
|
||||||
|
|
||||||
void gba_wr( uint16_t addr, uint8_t data )
|
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//address must already have been latched
|
||||||
|
//will increment address variables and A16-23
|
||||||
|
//ready to read next byte
|
||||||
|
uint16_t gba_rd()
|
||||||
|
{
|
||||||
|
uint16_t read;
|
||||||
|
|
||||||
|
if( cur_addr_lo == 0xFFFF ) {
|
||||||
|
//going to have a roll over when incrementing
|
||||||
|
cur_addr_hi++;
|
||||||
|
//don't output it till this access is done though
|
||||||
|
}
|
||||||
|
|
||||||
|
CSRD_LO();
|
||||||
|
cur_addr_lo++; //increment to next byte that will be read
|
||||||
|
read = ADDR_VAL;
|
||||||
|
CSRD_HI();
|
||||||
|
|
||||||
|
//if we had a 16bit addr roll over, need to increment A16-23
|
||||||
|
DATA_SET(cur_addr_hi);
|
||||||
|
|
||||||
|
return read;
|
||||||
|
}
|
||||||
|
|
||||||
|
//can only read 255 bytes, len can't be 255 else it would create infinite loop
|
||||||
|
//TODO get a 16bit data pointer
|
||||||
|
uint8_t gba_page_rd( uint8_t *data, uint8_t len)
|
||||||
|
{
|
||||||
|
uint8_t i;
|
||||||
|
uint16_t read;
|
||||||
|
|
||||||
|
for( i=0; i<=len; i++ ) {
|
||||||
|
|
||||||
|
//usbPoll(); //Call usbdrv.h usb polling while waiting for data
|
||||||
|
|
||||||
|
//read 16bits
|
||||||
|
read = gba_rd();
|
||||||
|
|
||||||
|
//store lower byte little endian
|
||||||
|
data[i] = read;
|
||||||
|
|
||||||
|
//upper byte
|
||||||
|
i++;
|
||||||
|
|
||||||
|
//store upper byte
|
||||||
|
data[i] = read>>8;
|
||||||
|
}
|
||||||
|
|
||||||
|
//return index of last byte read
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif //GB_CONN
|
#endif //GB_CONN
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@
|
||||||
|
|
||||||
uint8_t gba_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *rdata );
|
uint8_t gba_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *rdata );
|
||||||
|
|
||||||
uint8_t gba_rd( uint16_t addr );
|
uint16_t gba_rd();
|
||||||
void gba_wr( uint16_t addr, uint8_t data );
|
void gba_latch_addr( uint16_t addr_lo, uint8_t addr_hi);
|
||||||
|
uint8_t gba_page_rd( uint8_t *data, uint8_t len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ uint8_t io_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *rd
|
||||||
case GB_POWER_5V:
|
case GB_POWER_5V:
|
||||||
GBP_OP(); GBP_5V(); break;
|
GBP_OP(); GBP_5V(); break;
|
||||||
case GAMEBOY_INIT: gameboy_init(); break;
|
case GAMEBOY_INIT: gameboy_init(); break;
|
||||||
// case GBA_INIT: gba_init(); break;
|
case GBA_INIT: gba_init(); break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef SEGA_CONN
|
#ifdef SEGA_CONN
|
||||||
case SEGA_INIT: sega_init(); break;
|
case SEGA_INIT: sega_init(); break;
|
||||||
|
|
@ -326,18 +326,17 @@ void gba_init()
|
||||||
io_reset();
|
io_reset();
|
||||||
|
|
||||||
//enable control outputs and disable memories
|
//enable control outputs and disable memories
|
||||||
//ROM
|
//ROM-RAM
|
||||||
ROMSEL_OP();
|
ROMSEL_OP();
|
||||||
ROMSEL_HI();
|
ROMSEL_HI(); //gameboy pin 5 ADDRESS LATCH
|
||||||
CSRD_OP();
|
CSRD_OP();
|
||||||
CSRD_HI();
|
CSRD_HI(); //gameboy pin 4 /RD
|
||||||
CSWR_OP();
|
CSWR_OP();
|
||||||
CSWR_HI();
|
CSWR_HI(); //gameboy pin 3 /WR
|
||||||
|
|
||||||
//Set #RESET pin low
|
//Set #RESET pin low
|
||||||
EXP0_LO();
|
EXP0_LO();
|
||||||
EXP0_OP();
|
EXP0_HI(); //gameboy pin 30 "GAMEBOY /RESET" (GBA /CS2)
|
||||||
//if SWIM is active, EXP0 must be set to pullup prior to SWIM transfers
|
|
||||||
|
|
||||||
//other control pins are inputs or unused, leave as IP pullup from reset
|
//other control pins are inputs or unused, leave as IP pullup from reset
|
||||||
|
|
||||||
|
|
@ -346,9 +345,12 @@ void gba_init()
|
||||||
DATA_IP_PU();
|
DATA_IP_PU();
|
||||||
|
|
||||||
//now meet conditions to call other macros
|
//now meet conditions to call other macros
|
||||||
//setup address $0000
|
ADDR_ENABLE(); //turns on GPIO block & sets to output
|
||||||
ADDR_ENABLE();
|
ADDR_IP(); //ad0-15 input
|
||||||
ADDR_SET(0x0000);
|
ADDR_PU(); //ad0-15 pullup
|
||||||
|
ADDR_SET(0x0000); //output set to zero, but won't take effect until outputed
|
||||||
|
|
||||||
|
//All AD0-15 & D0-7 are bidir pins, don't drive them until ready
|
||||||
|
|
||||||
//default is 3v on gameboy/GBA port
|
//default is 3v on gameboy/GBA port
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1142,6 +1142,11 @@ void software_AXL_CLK();
|
||||||
// Write/Output: Byte/half word access only, no bit accesses
|
// Write/Output: Byte/half word access only, no bit accesses
|
||||||
// Read/Input: Not supported
|
// Read/Input: Not supported
|
||||||
//
|
//
|
||||||
|
// Broke the rules above for devices with GBA ports, let them be inputs
|
||||||
|
// don't really need to define a whole new port, just need to be able to
|
||||||
|
// read from the current definition. Old kazzo's and STM_NES can't
|
||||||
|
// do these functions, but they don't have GBA/N64 connectors..
|
||||||
|
//
|
||||||
// ---------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#if defined (STM_INL6_PROTO) || defined(STM_INL6)
|
#if defined (STM_INL6_PROTO) || defined(STM_INL6)
|
||||||
|
|
@ -1160,6 +1165,8 @@ void software_AXL_CLK();
|
||||||
//Appears to be working for setting A10, but not A11 reguardless of order of execution..
|
//Appears to be working for setting A10, but not A11 reguardless of order of execution..
|
||||||
//TODO really these macros should be making byte writes to the registers, not 16bit RMW
|
//TODO really these macros should be making byte writes to the registers, not 16bit RMW
|
||||||
#define ADDR_SET(hword) Abank->ODR = hword
|
#define ADDR_SET(hword) Abank->ODR = hword
|
||||||
|
#define ADDR_RD(hword) hword = Abank->IDR
|
||||||
|
#define ADDR_VAL (Abank->IDR)
|
||||||
|
|
||||||
#define ADDR_EN_CLK() RCC->AHBENR |= RCC_AHBENR_ADDR
|
#define ADDR_EN_CLK() RCC->AHBENR |= RCC_AHBENR_ADDR
|
||||||
#define ADDR_ENABLE() ADDR_EN_CLK(); ADDR_OP()
|
#define ADDR_ENABLE() ADDR_EN_CLK(); ADDR_OP()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,185 @@
|
||||||
|
|
||||||
|
-- create the module's table
|
||||||
|
local basic = {}
|
||||||
|
|
||||||
|
-- import required modules
|
||||||
|
local dict = require "scripts.app.dict"
|
||||||
|
local dump = require "scripts.app.dump"
|
||||||
|
local flash = require "scripts.app.flash"
|
||||||
|
local help = require "scripts.app.help"
|
||||||
|
local time = require "scripts.app.time"
|
||||||
|
|
||||||
|
-- file constants
|
||||||
|
local mapname = "BASIC" --IDK what else to call it right now, no real mappers. Just different save types
|
||||||
|
|
||||||
|
-- local functions
|
||||||
|
|
||||||
|
|
||||||
|
--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 = 128 --read 16bit address space 2Bytes per address (2*64K = 128KByte)
|
||||||
|
local num_reads = rom_size_KB / KB_per_read
|
||||||
|
local read_count = 0
|
||||||
|
local addr_base = 0 --this value doesn't matter, but dumptofile won't like it if it's nil
|
||||||
|
|
||||||
|
|
||||||
|
--GBA roms increment themselves after each read. So really only have to latch
|
||||||
|
--the first address, then read out each byte sequentially..
|
||||||
|
--The address provided for dumptofile doesn't actually do anything on the firmware side
|
||||||
|
--The firmware keeps track of the address being currently read from
|
||||||
|
--
|
||||||
|
--One thing to note is that to aid in double buffering the firmware assumes the host will
|
||||||
|
--want the next page and goes ahead and starts dumping it, once the last page was read.
|
||||||
|
--For parallel roms this doesn't matter when the page beyond a bank is read for no good.
|
||||||
|
--But for GBA the rom increments itself and will become unaligned with the host if one
|
||||||
|
--doesn't LATCH_ADDR before starting each dumptofile
|
||||||
|
|
||||||
|
--[[
|
||||||
|
-- Read entire rom at once:
|
||||||
|
--latch address AD0-15 A16-23
|
||||||
|
dict.gba("LATCH_ADDR", 0x0000, 0x00)
|
||||||
|
|
||||||
|
dump.dumptofile( file, rom_size_KB, addr_base, "GBA_PAGE", false )
|
||||||
|
|
||||||
|
dict.gba("RELEASE_BUS")
|
||||||
|
--]]
|
||||||
|
|
||||||
|
|
||||||
|
-- read 64K address space (128KByte) at a time just so we can report progress from here
|
||||||
|
-- In practice the isn't a measureable speed difference comparared to reading the entire
|
||||||
|
-- rom at once
|
||||||
|
while ( read_count < num_reads ) do
|
||||||
|
|
||||||
|
if (read_count %8 == 0) then
|
||||||
|
print("Dumping ROM bank: ", read_count, " of ", num_reads-1)
|
||||||
|
end
|
||||||
|
|
||||||
|
--latch address AD0-15 A16-23
|
||||||
|
dict.gba("LATCH_ADDR", 0x0000, read_count)
|
||||||
|
|
||||||
|
dump.dumptofile( file, KB_per_read, addr_base, "GBA_ROM_PAGE", false )
|
||||||
|
|
||||||
|
read_count = read_count + 1
|
||||||
|
|
||||||
|
dict.gba("RELEASE_BUS")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
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(process_opts, console_opts)
|
||||||
|
local test = process_opts["test"]
|
||||||
|
local read = process_opts["read"]
|
||||||
|
local erase = process_opts["erase"]
|
||||||
|
local program = process_opts["program"]
|
||||||
|
local verify = process_opts["verify"]
|
||||||
|
local dumpfile = process_opts["dump_filename"]
|
||||||
|
local flashfile = process_opts["flash_filename"]
|
||||||
|
local verifyfile = process_opts["verify_filename"]
|
||||||
|
|
||||||
|
local rv = nil
|
||||||
|
local file
|
||||||
|
local rom_size = console_opts["prg_rom_size_kb"]
|
||||||
|
local wram_size = console_opts["wram_size_kb"]
|
||||||
|
local mirror = console_opts["mirror"]
|
||||||
|
|
||||||
|
--initialize device i/o for NES
|
||||||
|
dict.io("IO_RESET")
|
||||||
|
dict.io("GBA_INIT")
|
||||||
|
|
||||||
|
dict.io("GB_POWER_3V") --GBA is 3v cartridge
|
||||||
|
|
||||||
|
--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
|
||||||
|
time.start()
|
||||||
|
dump_rom(file, rom_size, false)
|
||||||
|
time.report(rom_size_KB)
|
||||||
|
|
||||||
|
--close file
|
||||||
|
assert(file:close())
|
||||||
|
print("DONE Dumping ROM")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--erase the cart
|
||||||
|
if erase then
|
||||||
|
|
||||||
|
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
|
||||||
|
time.start()
|
||||||
|
dump_rom(file, rom_size, false)
|
||||||
|
time.report(rom_size_KB)
|
||||||
|
|
||||||
|
--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
|
||||||
|
basic.process = process
|
||||||
|
|
||||||
|
-- return the module's table
|
||||||
|
return basic
|
||||||
|
|
@ -90,6 +90,9 @@ function main ()
|
||||||
--local curcart = require "scripts.gb.romonly"
|
--local curcart = require "scripts.gb.romonly"
|
||||||
--local curcart = require "scripts.gb.mbc1"
|
--local curcart = require "scripts.gb.mbc1"
|
||||||
|
|
||||||
|
--GBA
|
||||||
|
--local curcart = require "scripts.gba.basic"
|
||||||
|
|
||||||
-- =====================================================
|
-- =====================================================
|
||||||
-- USERS: set cart_console to the to point to the mapper script you would like to use here.
|
-- USERS: set cart_console to the to point to the mapper script you would like to use here.
|
||||||
-- =====================================================
|
-- =====================================================
|
||||||
|
|
@ -143,10 +146,12 @@ function main ()
|
||||||
--released INL6 path (big square boards)
|
--released INL6 path (big square boards)
|
||||||
--fwupdate.update_firmware("../firmware/build_stm6/inlretro_stm_AV00.bin")
|
--fwupdate.update_firmware("../firmware/build_stm6/inlretro_stm_AV00.bin")
|
||||||
--fwupdate.update_firmware("../firmware/build_stm6/inlretro_stm_AV01.bin", 0x6DC, false) --INL6 skip ram pointer
|
--fwupdate.update_firmware("../firmware/build_stm6/inlretro_stm_AV01.bin", 0x6DC, false) --INL6 skip ram pointer
|
||||||
|
--fwupdate.update_firmware("../firmware/build_stm6/inlretro_stm.bin", 0x6DC, false) --nightly build
|
||||||
|
|
||||||
--released INL_N path (smaller NESmaker boards)
|
--released INL_N path (smaller NESmaker boards)
|
||||||
--fwupdate.update_firmware("../firmware/build_stmn/inlretro_stm_AV00.bin")
|
--fwupdate.update_firmware("../firmware/build_stmn/inlretro_stm_AV00.bin")
|
||||||
--fwupdate.update_firmware("../firmware/build_stmn/inlretro_stm_AV01.bin", 0x6E8, false) --INL_NES skip ram pointer
|
--fwupdate.update_firmware("../firmware/build_stmn/inlretro_stm_AV01.bin", 0x6E8, false) --INL_NES skip ram pointer
|
||||||
|
--fwupdate.update_firmware("../firmware/build_stmn/inlretro_stm.bin", 0x6E8, false) --nightly build
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -238,6 +243,8 @@ function main ()
|
||||||
|
|
||||||
elseif cart_console == "GBA" then
|
elseif cart_console == "GBA" then
|
||||||
|
|
||||||
|
curcart.process(process_opts, console_opts)
|
||||||
|
|
||||||
--always end with and gpio reset incase the script didn't
|
--always end with and gpio reset incase the script didn't
|
||||||
dict.io("IO_RESET")
|
dict.io("IO_RESET")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,7 @@
|
||||||
#define SNESROM_PAGE 0x24 //mapper byte specifies A15-8 ROMSEL low
|
#define SNESROM_PAGE 0x24 //mapper byte specifies A15-8 ROMSEL low
|
||||||
#define SNESSYS_PAGE 0x25 //mapper byte specifies A15-8 ROMSEL high
|
#define SNESSYS_PAGE 0x25 //mapper byte specifies A15-8 ROMSEL high
|
||||||
#define GAMEBOY_PAGE 0x26 //mapper byte specifies A15-8
|
#define GAMEBOY_PAGE 0x26 //mapper byte specifies A15-8
|
||||||
|
#define GBA_ROM_PAGE 0x27 //address must have already been latched with gba dictionary
|
||||||
|
|
||||||
//operand LSB
|
//operand LSB
|
||||||
//SST 39SF0x0 manf/prod IDs
|
//SST 39SF0x0 manf/prod IDs
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,20 @@
|
||||||
//=============================================================================================
|
//=============================================================================================
|
||||||
|
|
||||||
|
|
||||||
#define GBA_RD 0 //RL=3 return error code, data len = 1, 1 byte of data
|
//must have latched the address first
|
||||||
#define GBA_WR 1
|
//rom will auto increment so can just call this repeatedly to read a sequence of addresses
|
||||||
|
#define GBA_RD 0 //RL=4 return error code, data len = 1, 2 bytes of data
|
||||||
|
//#define GBA_WR 1
|
||||||
|
|
||||||
|
//operand A0-15, miscdata A16-23
|
||||||
|
//leaves /CE low for subsequent accesses
|
||||||
|
//leaves A16-23 as output
|
||||||
|
//leaves AD0-15 as input
|
||||||
|
#define LATCH_ADDR 2
|
||||||
|
|
||||||
|
//take /CE high to finish above access
|
||||||
|
//put A16-23 back to input
|
||||||
|
#define RELEASE_BUS 3
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue