Paul's Infinite workbench stream updates from MMC5 & sega genesis
battery ram save dumping, and flash board programming. -MMC5 updates fixed battery ram dumping -genesis_v2.lua script supports dumping battery ram, and flashing ROM only prototype flash board. The firmware isn't very clean, but working for now.
This commit is contained in:
parent
9090177ce3
commit
4b3a0c8a8f
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)
|
||||
|
||||
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\cc0qRkgb.o (__aeabi_unwind_cpp_pr0)
|
||||
C:\Users\paul\AppData\Local\Temp\cccRrXfG.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)
|
||||
|
|
@ -51,9 +51,9 @@ 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\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\ccGCpWvS.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
|
||||
C:\Users\paul\AppData\Local\Temp\ccAHkeLy.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\ccGCpWvS.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||
C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||
|
||||
Allocating common symbols
|
||||
Common symbol size file
|
||||
|
|
@ -133,41 +133,41 @@ 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.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\ccOqsUkN.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.debug_aranges
|
||||
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.debug_str 0x00000000 0x68 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.debug_str 0x00000000 0x70 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.snes_3v_buffer_wr
|
||||
0x00000000 0x2 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
0x00000000 0x2 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.debug_aranges
|
||||
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.debug_str 0x00000000 0x65 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.debug_str 0x00000000 0x6d C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.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)
|
||||
|
|
@ -430,10 +430,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/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\ccOqsUkN.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\cc0qRkgb.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\cccRrXfG.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\cc6TiYRU.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
|
||||
|
|
@ -447,17 +447,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/crtn.o
|
||||
|
||||
.text 0x08000000 0x5860
|
||||
.text 0x08000000 0x5b80
|
||||
*(.isr_vector)
|
||||
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
0x08000000 __isr_vector
|
||||
*(.usb_driver)
|
||||
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
0x08000198 USB_IRQHandler
|
||||
*(.usb_desc)
|
||||
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*(.hardfault)
|
||||
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
0x08000534 TIM1_CC_IRQHandler
|
||||
0x08000534 TSC_IRQHandler
|
||||
0x08000534 ADC1_COMP_IRQHandler
|
||||
|
|
@ -496,7 +496,7 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
0x08000534 USART1_IRQHandler
|
||||
0x08000534 TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||
*fill* 0x08000536 0x2 ff
|
||||
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccAHkeLy.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)
|
||||
|
|
@ -512,11 +512,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)
|
||||
*(.fw_update)
|
||||
*fill* 0x080005aa 0x2 ff
|
||||
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.fw_update 0x080005ac 0x150 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
0x00000770 . = 0x770
|
||||
*fill* 0x080006fc 0x74 ff
|
||||
*(.fw_up_main)
|
||||
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
0x00000800 . = 0x800
|
||||
*fill* 0x080007e0 0x20 ff
|
||||
*(.appver)
|
||||
|
|
@ -524,191 +524,198 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*fill* 0x08000800 0x4 ff
|
||||
*(.reset_handler)
|
||||
.reset_handler
|
||||
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
0x08000804 Reset_Handler
|
||||
*(.usbFuncWrite)
|
||||
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*(.usbFuncSetup)
|
||||
.usbFuncSetup 0x08000884 0x1d04 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.usbFuncSetup 0x08000884 0x1e5c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*(.text*)
|
||||
.text.snes_page_rd_poll.constprop.29
|
||||
0x08002588 0x70 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080026e0 0x70 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_cpu_page_rd_poll.constprop.28
|
||||
0x080025f8 0x6c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002750 0x6c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_ppu_page_rd_poll.constprop.25
|
||||
0x08002664 0x68 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080027bc 0x68 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.append_pairity
|
||||
0x080026cc 0x1e C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002824 0x1e C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.delay_us
|
||||
0x080026ea 0x14 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
*fill* 0x080026fe 0x2 ff
|
||||
.text.lfsr_32 0x08002700 0x30 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.text.snes_wr 0x08002730 0x60 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.text.snes_rd 0x08002790 0x48 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002842 0x14 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x08002856 0x2 ff
|
||||
.text.lfsr_32 0x08002858 0x30 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.snes_wr 0x08002888 0x60 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.snes_rd 0x080028e8 0x48 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.write_page_snes.constprop.35
|
||||
0x080027d8 0x194 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002930 0x194 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.write_page_buffer.constprop.34
|
||||
0x0800296c 0x94 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002ac4 0x94 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.snes_3v_verify_wr
|
||||
0x08002a00 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002b58 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.snes_3v_flash_wr
|
||||
0x08002a50 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002ba8 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.snes_5v_flash_wr
|
||||
0x08002aa0 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002bf8 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.genesis_page_rd
|
||||
0x08002af0 0xa4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002c48 0xa4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.gen_flash_wr
|
||||
0x08002cec 0x94 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.gen_rom_rd
|
||||
0x08002d80 0x48 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.gen_sst_flash_wr
|
||||
0x08002dc8 0x44 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc3s_prgrom_flash_wr
|
||||
0x08002b94 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002e0c 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_dualport_wr
|
||||
0x08002b98 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002e10 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_dualport_rd
|
||||
0x08002be8 0x38 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002e60 0x38 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_ppu_wr
|
||||
0x08002c20 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002e98 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_ppu_rd
|
||||
0x08002c70 0x38 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002ee8 0x38 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc3_chrrom_flash_wr
|
||||
0x08002ca8 0x44 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002f20 0x44 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nrom_chrrom_flash_wr
|
||||
0x08002cec 0x44 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002f64 0x44 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_m2_high_wr
|
||||
0x08002d30 0x60 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08002fa8 0x60 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_cpu_wr
|
||||
0x08002d90 0x7c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003008 0x7c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.cdream_chrrom_flash_wr
|
||||
0x08002e0c 0x8c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003084 0x8c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc4_chrrom_flash_wr
|
||||
0x08002e98 0x74 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003110 0x74 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.cnrom_chrrom_flash_wr
|
||||
0x08002f0c 0x7c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003184 0x7c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nes_cpu_rd
|
||||
0x08002f88 0x38 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003200 0x38 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.tssop_prgrom_flash_wr
|
||||
0x08002fc0 0x2a C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003238 0x2a C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.a53_tssop_prgrom_flash_wr
|
||||
0x08002fea 0x36 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003262 0x36 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.gtrom_prgrom_flash_wr
|
||||
0x08003020 0x4c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003298 0x4c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.map30_prgrom_flash_wr
|
||||
0x0800306c 0x74 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080032e4 0x74 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc4_prgrom_flash_wr
|
||||
0x080030e0 0x54 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003358 0x54 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc3_prgrom_flash_wr
|
||||
0x08003134 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080033ac 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.disc_push_exp0_prgrom_wr
|
||||
0x08003184 0x48 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080033fc 0x48 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.discrete_exp0_prgrom_wr
|
||||
0x080031cc 0x58 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003444 0x58 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.unrom_prgrom_flash_wr
|
||||
0x08003224 0x64 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x0800349c 0x64 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.nrom_prgrom_flash_wr
|
||||
0x08003288 0x44 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003500 0x44 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.n64_latch_addr
|
||||
0x080032cc 0x60 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003544 0x60 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.pbje_scan
|
||||
0x0800332c 0x10c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080035a4 0x10c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.pbje_state_change
|
||||
0x08003438 0x88 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080036b0 0x88 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.jtag_init_pbje
|
||||
0x080034c0 0xe0 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003738 0xe0 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.jtag_run_pbje.part.0
|
||||
0x080035a0 0xb8 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003818 0xb8 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.io_reset
|
||||
0x08003658 0x174 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.text.gba_rd 0x080037cc 0x4c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x080038d0 0x174 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.gba_rd 0x08003a44 0x4c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.write_page_verify
|
||||
0x08003818 0x5c C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003a90 0x5c C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.write_page
|
||||
0x08003874 0x34 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003aec 0x34 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.get_next_buff
|
||||
0x080038a8 0x54 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003b20 0x54 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc1_wr.constprop.12
|
||||
0x080038fc 0x22 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
*fill* 0x0800391e 0x2 ff
|
||||
0x08003b74 0x22 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x08003b96 0x2 ff
|
||||
.text.mmc1_chrrom_flash_wr
|
||||
0x08003920 0x60 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003b98 0x60 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.mmc1_prgrom_flash_wr
|
||||
0x08003980 0x50 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003bf8 0x50 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.swim_wotf
|
||||
0x080039d0 0xb4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003c48 0xb4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.swim_rotf
|
||||
0x08003a84 0xac C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003cfc 0xac C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.text.startup.main
|
||||
0x08003b30 0xb90 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x08003b30 main
|
||||
.text 0x080046c0 0x154 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
0x080046c0 swim_xfr
|
||||
.text 0x08004814 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)
|
||||
0x08004ad0 _Unwind_GetCFA
|
||||
0x08004ad4 __gnu_Unwind_RaiseException
|
||||
0x08004b28 __gnu_Unwind_ForcedUnwind
|
||||
0x08004b3c __gnu_Unwind_Resume
|
||||
0x08004b84 __gnu_Unwind_Resume_or_Rethrow
|
||||
0x08004ba0 _Unwind_Complete
|
||||
0x08004ba4 _Unwind_DeleteException
|
||||
0x08004bb4 _Unwind_VRS_Get
|
||||
0x08004bfc _Unwind_VRS_Set
|
||||
0x08004c44 __gnu_Unwind_Backtrace
|
||||
0x08004f94 __aeabi_unwind_cpp_pr0
|
||||
0x08004fa0 __aeabi_unwind_cpp_pr1
|
||||
0x08004fac __aeabi_unwind_cpp_pr2
|
||||
0x08004fb8 _Unwind_VRS_Pop
|
||||
.text 0x0800521c 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)
|
||||
0x0800521c __restore_core_regs
|
||||
0x0800521c restore_core_regs
|
||||
0x08005248 __gnu_Unwind_Restore_VFP
|
||||
0x0800524c __gnu_Unwind_Save_VFP
|
||||
0x08005250 __gnu_Unwind_Restore_VFP_D
|
||||
0x08005254 __gnu_Unwind_Save_VFP_D
|
||||
0x08005258 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||
0x0800525c __gnu_Unwind_Save_VFP_D_16_to_31
|
||||
0x08005260 __gnu_Unwind_Restore_WMMXD
|
||||
0x08005264 __gnu_Unwind_Save_WMMXD
|
||||
0x08005268 __gnu_Unwind_Restore_WMMXC
|
||||
0x0800526c __gnu_Unwind_Save_WMMXC
|
||||
0x08005270 ___Unwind_RaiseException
|
||||
0x08005270 _Unwind_RaiseException
|
||||
0x080052a0 _Unwind_Resume
|
||||
0x080052a0 ___Unwind_Resume
|
||||
0x080052d0 _Unwind_Resume_or_Rethrow
|
||||
0x080052d0 ___Unwind_Resume_or_Rethrow
|
||||
0x08005300 _Unwind_ForcedUnwind
|
||||
0x08005300 ___Unwind_ForcedUnwind
|
||||
0x08005330 ___Unwind_Backtrace
|
||||
0x08005330 _Unwind_Backtrace
|
||||
.text 0x08005360 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)
|
||||
0x080053b4 __gnu_unwind_execute
|
||||
0x080056a4 __gnu_unwind_frame
|
||||
0x080056cc _Unwind_GetRegionStart
|
||||
0x080056d8 _Unwind_GetLanguageSpecificData
|
||||
0x080056ec _Unwind_GetDataRelBase
|
||||
0x080056f4 _Unwind_GetTextRelBase
|
||||
.text.abort 0x080056fc 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)
|
||||
0x080056fc abort
|
||||
.text.memcpy 0x0800570c 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)
|
||||
0x0800570c memcpy
|
||||
0x08003da8 0xc34 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
0x08003da8 main
|
||||
*fill* 0x080049dc 0x4 ff
|
||||
.text 0x080049e0 0x154 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
0x080049e0 swim_xfr
|
||||
.text 0x08004b34 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)
|
||||
0x08004df0 _Unwind_GetCFA
|
||||
0x08004df4 __gnu_Unwind_RaiseException
|
||||
0x08004e48 __gnu_Unwind_ForcedUnwind
|
||||
0x08004e5c __gnu_Unwind_Resume
|
||||
0x08004ea4 __gnu_Unwind_Resume_or_Rethrow
|
||||
0x08004ec0 _Unwind_Complete
|
||||
0x08004ec4 _Unwind_DeleteException
|
||||
0x08004ed4 _Unwind_VRS_Get
|
||||
0x08004f1c _Unwind_VRS_Set
|
||||
0x08004f64 __gnu_Unwind_Backtrace
|
||||
0x080052b4 __aeabi_unwind_cpp_pr0
|
||||
0x080052c0 __aeabi_unwind_cpp_pr1
|
||||
0x080052cc __aeabi_unwind_cpp_pr2
|
||||
0x080052d8 _Unwind_VRS_Pop
|
||||
.text 0x0800553c 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)
|
||||
0x0800553c __restore_core_regs
|
||||
0x0800553c restore_core_regs
|
||||
0x08005568 __gnu_Unwind_Restore_VFP
|
||||
0x0800556c __gnu_Unwind_Save_VFP
|
||||
0x08005570 __gnu_Unwind_Restore_VFP_D
|
||||
0x08005574 __gnu_Unwind_Save_VFP_D
|
||||
0x08005578 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||
0x0800557c __gnu_Unwind_Save_VFP_D_16_to_31
|
||||
0x08005580 __gnu_Unwind_Restore_WMMXD
|
||||
0x08005584 __gnu_Unwind_Save_WMMXD
|
||||
0x08005588 __gnu_Unwind_Restore_WMMXC
|
||||
0x0800558c __gnu_Unwind_Save_WMMXC
|
||||
0x08005590 ___Unwind_RaiseException
|
||||
0x08005590 _Unwind_RaiseException
|
||||
0x080055c0 _Unwind_Resume
|
||||
0x080055c0 ___Unwind_Resume
|
||||
0x080055f0 _Unwind_Resume_or_Rethrow
|
||||
0x080055f0 ___Unwind_Resume_or_Rethrow
|
||||
0x08005620 _Unwind_ForcedUnwind
|
||||
0x08005620 ___Unwind_ForcedUnwind
|
||||
0x08005650 ___Unwind_Backtrace
|
||||
0x08005650 _Unwind_Backtrace
|
||||
.text 0x08005680 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)
|
||||
0x080056d4 __gnu_unwind_execute
|
||||
0x080059c4 __gnu_unwind_frame
|
||||
0x080059ec _Unwind_GetRegionStart
|
||||
0x080059f8 _Unwind_GetLanguageSpecificData
|
||||
0x08005a0c _Unwind_GetDataRelBase
|
||||
0x08005a14 _Unwind_GetTextRelBase
|
||||
.text.abort 0x08005a1c 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)
|
||||
0x08005a1c abort
|
||||
.text.memcpy 0x08005a2c 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)
|
||||
0x08005a2c memcpy
|
||||
.text._raise_r
|
||||
0x08005794 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)
|
||||
0x08005794 _raise_r
|
||||
.text.raise 0x080057f0 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)
|
||||
0x080057f0 raise
|
||||
.text._kill_r 0x08005804 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)
|
||||
0x08005804 _kill_r
|
||||
0x08005ab4 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)
|
||||
0x08005ab4 _raise_r
|
||||
.text.raise 0x08005b10 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)
|
||||
0x08005b10 raise
|
||||
.text._kill_r 0x08005b24 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)
|
||||
0x08005b24 _kill_r
|
||||
.text._getpid_r
|
||||
0x0800582c 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)
|
||||
0x0800582c _getpid_r
|
||||
.text._getpid 0x08005834 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)
|
||||
0x08005834 _getpid
|
||||
.text._kill 0x08005844 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)
|
||||
0x08005844 _kill
|
||||
.text._exit 0x08005854 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)
|
||||
0x08005854 _exit
|
||||
0x08005b4c 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)
|
||||
0x08005b4c _getpid_r
|
||||
.text._getpid 0x08005b54 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)
|
||||
0x08005b54 _getpid
|
||||
.text._kill 0x08005b64 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)
|
||||
0x08005b64 _kill
|
||||
.text._exit 0x08005b74 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)
|
||||
0x08005b74 _exit
|
||||
*(.init)
|
||||
.init 0x08005858 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
|
||||
0x08005858 _init
|
||||
.init 0x08005b78 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
|
||||
0x08005b78 _init
|
||||
*(.fini)
|
||||
.fini 0x0800585c 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
|
||||
0x0800585c _fini
|
||||
.fini 0x08005b7c 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
|
||||
0x08005b7c _fini
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
|
||||
|
|
@ -722,42 +729,42 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*(.rodata*)
|
||||
*(.eh_frame*)
|
||||
|
||||
.glue_7 0x08005860 0x0
|
||||
.glue_7 0x08005860 0x0 linker stubs
|
||||
.glue_7 0x08005b80 0x0
|
||||
.glue_7 0x08005b80 0x0 linker stubs
|
||||
|
||||
.glue_7t 0x08005860 0x0
|
||||
.glue_7t 0x08005860 0x0 linker stubs
|
||||
.glue_7t 0x08005b80 0x0
|
||||
.glue_7t 0x08005b80 0x0 linker stubs
|
||||
|
||||
.vfp11_veneer 0x08005860 0x0
|
||||
.vfp11_veneer 0x08005860 0x0 linker stubs
|
||||
.vfp11_veneer 0x08005b80 0x0
|
||||
.vfp11_veneer 0x08005b80 0x0 linker stubs
|
||||
|
||||
.v4_bx 0x08005860 0x0
|
||||
.v4_bx 0x08005860 0x0 linker stubs
|
||||
.v4_bx 0x08005b80 0x0
|
||||
.v4_bx 0x08005b80 0x0 linker stubs
|
||||
|
||||
.iplt 0x08005860 0x0
|
||||
.iplt 0x08005860 0x0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.iplt 0x08005b80 0x0
|
||||
.iplt 0x08005b80 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
|
||||
.ARM.extab 0x08005860 0x30
|
||||
.ARM.extab 0x08005b80 0x30
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
.ARM.extab 0x08005860 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 0x08005884 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)
|
||||
0x08005890 __exidx_start = .
|
||||
.ARM.extab 0x08005b80 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 0x08005ba4 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)
|
||||
0x08005bb0 __exidx_start = .
|
||||
|
||||
.ARM.exidx 0x08005890 0xd0
|
||||
.ARM.exidx 0x08005bb0 0xd0
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
.ARM.exidx 0x08005890 0x8 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.ARM.exidx 0x08005bb0 0x8 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
0x10 (size before relaxing)
|
||||
.ARM.exidx 0x08005898 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 0x08005bb8 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 0x08005930 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 0x08005c50 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)
|
||||
0x08005960 __exidx_end = .
|
||||
0x08005960 __etext = ALIGN (0x4)
|
||||
0x08005c80 __exidx_end = .
|
||||
0x08005c80 __etext = ALIGN (0x4)
|
||||
|
||||
.rel.dyn 0x08005960 0x0
|
||||
.rel.iplt 0x08005960 0x0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.rel.dyn 0x08005c80 0x0
|
||||
.rel.iplt 0x08005c80 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
|
||||
.data 0x20000000 0x430 load address 0x08005960
|
||||
.data 0x20000000 0x430 load address 0x08005c80
|
||||
0x20000000 __data_start__ = .
|
||||
*(vtable)
|
||||
*(.data*)
|
||||
|
|
@ -785,77 +792,79 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*(.fastrun)
|
||||
0x20000430 __data_end__ = .
|
||||
|
||||
.igot.plt 0x20000430 0x0 load address 0x08005d90
|
||||
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccOqsUkN.o
|
||||
.igot.plt 0x20000430 0x0 load address 0x080060b0
|
||||
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccQPQ68t.o
|
||||
|
||||
.bss 0x20000430 0x308 load address 0x08005d90
|
||||
.bss 0x20000430 0x308 load address 0x080060b0
|
||||
0x20000430 . = ALIGN (0x4)
|
||||
0x20000430 __bss_start__ = .
|
||||
*(.bss*)
|
||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.bank_table
|
||||
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.cur_addr_hi
|
||||
0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x20000489 0x1
|
||||
.bss.cur_addr_lo
|
||||
0x2000048a 0x2 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.cur_bank 0x2000048c 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x2000048a 0x2 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.cur_bank 0x2000048c 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x2000048d 0x3
|
||||
.bss.cur_buff 0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.cur_buff 0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.cur_usb_load_buff
|
||||
0x20000494 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x20000494 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.incoming_bytes_remain
|
||||
0x20000498 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x20000498 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x20000499 0x3
|
||||
.bss.lfsr 0x2000049c 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.n64_bank 0x200004a0 0x2 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.num_buff.5143
|
||||
0x200004a2 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.lfsr 0x2000049c 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.n64_bank 0x200004a0 0x2 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.num_buff.5160
|
||||
0x200004a2 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.num_prg_banks
|
||||
0x200004a3 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004a3 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.oper_info_struct
|
||||
0x200004a4 0x20 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004a4 0x20 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.pbje_command
|
||||
0x200004c4 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004c4 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.pbje_data
|
||||
0x200004c5 0x20 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004c5 0x20 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.pbje_numclk
|
||||
0x200004e5 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004e5 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.pbje_status
|
||||
0x200004e6 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004e6 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.raw_bank_status
|
||||
0x200004e7 0x10 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004e7 0x10 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x200004f7 0x1
|
||||
.bss.raw_buffer16
|
||||
0x200004f8 0x200 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200004f8 0x200 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.rv16.4759
|
||||
0x200006f8 0x8 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.rv16.5063
|
||||
0x20000700 0x8 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x200006f8 0x8 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.rv16.5080
|
||||
0x20000700 0x8 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.sega_addr
|
||||
0x20000708 0x2 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.stm_debug_disable
|
||||
0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
*fill* 0x20000709 0x3
|
||||
0x2000070a 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x2000070b 0x1
|
||||
.bss.swim_base
|
||||
0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.swim_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.swim_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x20000711 0x3
|
||||
.bss.tck_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tck_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tck_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.tck_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x20000719 0x3
|
||||
.bss.tdi_base 0x2000071c 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tdi_pin 0x20000720 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tdi_base 0x2000071c 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.tdi_pin 0x20000720 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x20000721 0x3
|
||||
.bss.tdo_base 0x20000724 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tdo_pin 0x20000728 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tdo_base 0x20000724 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.tdo_pin 0x20000728 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*fill* 0x20000729 0x3
|
||||
.bss.tms_base 0x2000072c 0x4 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tms_pin 0x20000730 0x1 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.bss.tms_base 0x2000072c 0x4 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.bss.tms_pin 0x20000730 0x1 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
*(COMMON)
|
||||
*fill* 0x20000731 0x3
|
||||
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)
|
||||
|
|
@ -882,45 +891,45 @@ OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
|
|||
.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\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.ARM.attributes
|
||||
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
|
||||
.comment 0x00000000 0x7f
|
||||
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
0x80 (size before relaxing)
|
||||
|
||||
.debug_info 0x00000000 0x5b65
|
||||
.debug_info 0x00000000 0x5b3f C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.debug_info 0x00005b3f 0x26 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.debug_info 0x00000000 0x5eb4
|
||||
.debug_info 0x00000000 0x5e8e C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.debug_info 0x00005e8e 0x26 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x6c9
|
||||
.debug_abbrev 0x00000000 0x6b5 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.debug_abbrev 0x000006b5 0x14 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.debug_abbrev 0x00000000 0x6b5 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.debug_abbrev 0x000006b5 0x14 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
|
||||
.debug_loc 0x00000000 0x910b
|
||||
.debug_loc 0x00000000 0x910b C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.debug_loc 0x00000000 0x967f
|
||||
.debug_loc 0x00000000 0x967f C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
|
||||
.debug_aranges 0x00000000 0x230
|
||||
.debug_aranges 0x00000000 0x248
|
||||
.debug_aranges
|
||||
0x00000000 0x210 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x00000000 0x228 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.debug_aranges
|
||||
0x00000210 0x20 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
0x00000228 0x20 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
|
||||
.debug_ranges 0x00000000 0xe20
|
||||
.debug_ranges 0x00000000 0xe20 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.debug_ranges 0x00000000 0xe98
|
||||
.debug_ranges 0x00000000 0xe98 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
|
||||
.debug_line 0x00000000 0x1c72
|
||||
.debug_line 0x00000000 0x1b7f C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.debug_line 0x00001b7f 0xf3 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.debug_line 0x00000000 0x1dcb
|
||||
.debug_line 0x00000000 0x1cd8 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
.debug_line 0x00001cd8 0xf3 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
|
||||
.debug_str 0x00000000 0x12e0
|
||||
.debug_str 0x00000000 0x127f C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
0x13b2 (size before relaxing)
|
||||
.debug_str 0x0000127f 0x61 C:\Users\paul\AppData\Local\Temp\ccCWXcVB.o
|
||||
.debug_str 0x00000000 0x1341
|
||||
.debug_str 0x00000000 0x12d8 C:\Users\paul\AppData\Local\Temp\ccAHkeLy.ltrans0.ltrans.o
|
||||
0x1413 (size before relaxing)
|
||||
.debug_str 0x000012d8 0x69 C:\Users\paul\AppData\Local\Temp\cc6TiYRU.o
|
||||
|
||||
.debug_frame 0x00000000 0x6a8
|
||||
.debug_frame 0x00000000 0x6a8 C:\Users\paul\AppData\Local\Temp\ccGCpWvS.ltrans0.ltrans.o
|
||||
.debug_frame 0x00000000 0x6fc
|
||||
.debug_frame 0x00000000 0x6fc C:\Users\paul\AppData\Local\Temp\ccAHkeLy.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)
|
||||
|
|
|
|||
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)
|
||||
|
||||
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_D~1\AppData\Local\Temp\cclouYWi.o (__aeabi_unwind_cpp_pr0)
|
||||
C:\Users\paul\AppData\Local\Temp\ccj6UtR6.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)
|
||||
|
|
@ -51,9 +51,9 @@ 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\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_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
|
||||
C:\Users\paul\AppData\Local\Temp\ccyIooTi.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_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||
C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
|
||||
|
||||
Allocating common symbols
|
||||
Common symbol size file
|
||||
|
|
@ -132,39 +132,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.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_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.data 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.bss 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.stack 0x00000000 0xc00 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.heap 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.debug_line 0x00000000 0x7c C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.debug_info 0x00000000 0x22 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.debug_abbrev 0x00000000 0x12 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.stack 0x00000000 0xc00 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.heap 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.debug_line 0x00000000 0x7c C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.debug_info 0x00000000 0x22 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.debug_abbrev 0x00000000 0x12 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.debug_aranges
|
||||
0x00000000 0x28 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.debug_str 0x00000000 0x70 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.debug_ranges 0x00000000 0x20 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
0x00000000 0x28 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.debug_str 0x00000000 0x70 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.debug_ranges 0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x1b C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.text 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.data 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.text 0x00000000 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.data 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.bss 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.ARM.exidx 0x00000000 0x8 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.debug_line 0x00000000 0x49 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.debug_info 0x00000000 0x26 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.debug_abbrev 0x00000000 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
0x00000000 0x1b C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text 0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.ARM.exidx 0x00000000 0x8 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.debug_line 0x00000000 0x49 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.debug_info 0x00000000 0x26 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.debug_aranges
|
||||
0x00000000 0x20 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.debug_str 0x00000000 0x6d C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.debug_str 0x00000000 0x6d C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.ARM.attributes
|
||||
0x00000000 0x21 C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
.data 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.bss 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
0x00000000 0x21 C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cckRUKFb.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)
|
||||
|
|
@ -427,10 +427,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/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_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
LOAD C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
LOAD C:\Users\PAUL_D~1\AppData\Local\Temp\cclouYWi.o
|
||||
LOAD C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\ccj6UtR6.o
|
||||
LOAD C:\Users\paul\AppData\Local\Temp\cckRUKFb.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
|
||||
|
|
@ -444,17 +444,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/crtn.o
|
||||
|
||||
.text 0x08000000 0x4c60
|
||||
.text 0x08000000 0x4c90
|
||||
*(.isr_vector)
|
||||
.isr_vector 0x08000000 0xc0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
0x08000000 __isr_vector
|
||||
*(.usb_driver)
|
||||
.usb_driver 0x080000c0 0x3bc C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.usb_driver 0x080000c0 0x3bc C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
0x08000198 USB_IRQHandler
|
||||
*(.usb_desc)
|
||||
.usb_desc 0x0800047c 0xb8 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.usb_desc 0x0800047c 0xb8 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*(.hardfault)
|
||||
.hardfault 0x08000534 0x2 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.hardfault 0x08000534 0x2 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
0x08000534 TIM1_CC_IRQHandler
|
||||
0x08000534 TSC_IRQHandler
|
||||
0x08000534 ADC1_COMP_IRQHandler
|
||||
|
|
@ -493,7 +493,7 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
0x08000534 USART1_IRQHandler
|
||||
0x08000534 TIM1_BRK_UP_TRG_COM_IRQHandler
|
||||
*fill* 0x08000536 0x2 ff
|
||||
.hardfault 0x08000538 0xc C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.hardfault 0x08000538 0xc C:\Users\paul\AppData\Local\Temp\ccyIooTi.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)
|
||||
|
|
@ -509,11 +509,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)
|
||||
*(.fw_update)
|
||||
*fill* 0x080005aa 0x2 ff
|
||||
.fw_update 0x080005ac 0x15c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.fw_update 0x080005ac 0x15c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
0x00000770 . = 0x770
|
||||
*fill* 0x08000708 0x68 ff
|
||||
*(.fw_up_main)
|
||||
.fw_up_main 0x08000770 0x70 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.fw_up_main 0x08000770 0x70 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
0x00000800 . = 0x800
|
||||
*fill* 0x080007e0 0x20 ff
|
||||
*(.appver)
|
||||
|
|
@ -521,173 +521,172 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*fill* 0x08000800 0x4 ff
|
||||
*(.reset_handler)
|
||||
.reset_handler
|
||||
0x08000804 0x3c C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
0x08000804 0x3c C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
0x08000804 Reset_Handler
|
||||
*(.usbFuncWrite)
|
||||
.usbFuncWrite 0x08000840 0x44 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.usbFuncWrite 0x08000840 0x44 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*(.usbFuncSetup)
|
||||
.usbFuncSetup 0x08000884 0x1604 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.usbFuncSetup 0x08000884 0x163c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*(.text*)
|
||||
.text.nes_cpu_page_rd_poll.constprop.21
|
||||
0x08001e88 0xc4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08001ec0 0xc8 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_ppu_page_rd_poll.constprop.19
|
||||
0x08001f4c 0xbc C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08001f88 0xbc C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.append_pairity
|
||||
0x08002008 0x1e C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002044 0x1e C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.delay_us
|
||||
0x08002026 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
*fill* 0x0800203a 0x2 ff
|
||||
.text.lfsr_32 0x0800203c 0x30 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002062 0x14 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x08002076 0x2 ff
|
||||
.text.lfsr_32 0x08002078 0x30 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc3s_prgrom_flash_wr
|
||||
0x0800206c 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080020a8 0x4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_dualport_wr
|
||||
0x08002070 0x8c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080020ac 0x8c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_dualport_rd
|
||||
0x080020fc 0x80 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002138 0x80 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_ppu_wr
|
||||
0x0800217c 0x90 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080021b8 0x90 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_ppu_rd
|
||||
0x0800220c 0x84 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002248 0x84 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc3_chrrom_flash_wr
|
||||
0x08002290 0x44 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080022cc 0x44 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nrom_chrrom_flash_wr
|
||||
0x080022d4 0x44 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002310 0x44 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_m2_high_wr
|
||||
0x08002318 0x98 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002354 0x98 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_cpu_wr
|
||||
0x080023b0 0xb4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080023ec 0xb4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.cdream_chrrom_flash_wr
|
||||
0x08002464 0x8c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080024a0 0x8c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc4_chrrom_flash_wr
|
||||
0x080024f0 0x74 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x0800252c 0x74 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.cnrom_chrrom_flash_wr
|
||||
0x08002564 0x7c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080025a0 0x7c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nes_cpu_rd
|
||||
0x080025e0 0x84 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x0800261c 0x84 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.tssop_prgrom_flash_wr
|
||||
0x08002664 0x2a C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080026a0 0x2a C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.a53_tssop_prgrom_flash_wr
|
||||
0x0800268e 0x36 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080026ca 0x36 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.gtrom_prgrom_flash_wr
|
||||
0x080026c4 0x4c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002700 0x4c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.map30_prgrom_flash_wr
|
||||
0x08002710 0x74 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x0800274c 0x74 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc4_prgrom_flash_wr
|
||||
0x08002784 0x54 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080027c0 0x54 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc3_prgrom_flash_wr
|
||||
0x080027d8 0x50 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002814 0x50 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.disc_push_exp0_prgrom_wr
|
||||
0x08002828 0x84 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002864 0x84 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.discrete_exp0_prgrom_wr
|
||||
0x080028ac 0x8c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080028e8 0x8c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.unrom_prgrom_flash_wr
|
||||
0x08002938 0x64 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002974 0x64 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.nrom_prgrom_flash_wr
|
||||
0x0800299c 0x44 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080029d8 0x44 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.pbje_scan
|
||||
0x080029e0 0xb0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002a1c 0xb0 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.pbje_state_change
|
||||
0x08002a90 0x5c C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002acc 0x5c C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.jtag_init_pbje
|
||||
0x08002aec 0x40 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002b28 0x40 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.jtag_run_pbje.part.0
|
||||
0x08002b2c 0xb8 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002b68 0xb8 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.io_reset
|
||||
0x08002be4 0x1c4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002c20 0x1c4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.write_page_verify
|
||||
0x08002da8 0x68 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002de4 0x68 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.write_page
|
||||
0x08002e10 0x34 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002e4c 0x34 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.get_next_buff
|
||||
0x08002e44 0x54 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002e80 0x54 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc1_wr.constprop.10
|
||||
0x08002e98 0x22 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
*fill* 0x08002eba 0x2 ff
|
||||
0x08002ed4 0x22 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x08002ef6 0x2 ff
|
||||
.text.mmc1_chrrom_flash_wr
|
||||
0x08002ebc 0x60 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002ef8 0x60 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.mmc1_prgrom_flash_wr
|
||||
0x08002f1c 0x50 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002f58 0x50 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.swim_wotf
|
||||
0x08002f6c 0xb4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x08002fa8 0xb4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.swim_rotf
|
||||
0x08003020 0xac C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x0800305c 0xac C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.text.startup.main
|
||||
0x080030cc 0x9e8 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x080030cc main
|
||||
*fill* 0x08003ab4 0xc ff
|
||||
.text 0x08003ac0 0x154 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
0x08003ac0 swim_xfr
|
||||
.text 0x08003c14 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)
|
||||
0x08003ed0 _Unwind_GetCFA
|
||||
0x08003ed4 __gnu_Unwind_RaiseException
|
||||
0x08003f28 __gnu_Unwind_ForcedUnwind
|
||||
0x08003f3c __gnu_Unwind_Resume
|
||||
0x08003f84 __gnu_Unwind_Resume_or_Rethrow
|
||||
0x08003fa0 _Unwind_Complete
|
||||
0x08003fa4 _Unwind_DeleteException
|
||||
0x08003fb4 _Unwind_VRS_Get
|
||||
0x08003ffc _Unwind_VRS_Set
|
||||
0x08004044 __gnu_Unwind_Backtrace
|
||||
0x08004394 __aeabi_unwind_cpp_pr0
|
||||
0x080043a0 __aeabi_unwind_cpp_pr1
|
||||
0x080043ac __aeabi_unwind_cpp_pr2
|
||||
0x080043b8 _Unwind_VRS_Pop
|
||||
.text 0x0800461c 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)
|
||||
0x0800461c __restore_core_regs
|
||||
0x0800461c restore_core_regs
|
||||
0x08004648 __gnu_Unwind_Restore_VFP
|
||||
0x0800464c __gnu_Unwind_Save_VFP
|
||||
0x08004650 __gnu_Unwind_Restore_VFP_D
|
||||
0x08004654 __gnu_Unwind_Save_VFP_D
|
||||
0x08004658 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||
0x0800465c __gnu_Unwind_Save_VFP_D_16_to_31
|
||||
0x08004660 __gnu_Unwind_Restore_WMMXD
|
||||
0x08004664 __gnu_Unwind_Save_WMMXD
|
||||
0x08004668 __gnu_Unwind_Restore_WMMXC
|
||||
0x0800466c __gnu_Unwind_Save_WMMXC
|
||||
0x08004670 ___Unwind_RaiseException
|
||||
0x08004670 _Unwind_RaiseException
|
||||
0x080046a0 _Unwind_Resume
|
||||
0x080046a0 ___Unwind_Resume
|
||||
0x080046d0 _Unwind_Resume_or_Rethrow
|
||||
0x080046d0 ___Unwind_Resume_or_Rethrow
|
||||
0x08004700 _Unwind_ForcedUnwind
|
||||
0x08004700 ___Unwind_ForcedUnwind
|
||||
0x08004730 ___Unwind_Backtrace
|
||||
0x08004730 _Unwind_Backtrace
|
||||
.text 0x08004760 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)
|
||||
0x080047b4 __gnu_unwind_execute
|
||||
0x08004aa4 __gnu_unwind_frame
|
||||
0x08004acc _Unwind_GetRegionStart
|
||||
0x08004ad8 _Unwind_GetLanguageSpecificData
|
||||
0x08004aec _Unwind_GetDataRelBase
|
||||
0x08004af4 _Unwind_GetTextRelBase
|
||||
.text.abort 0x08004afc 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)
|
||||
0x08004afc abort
|
||||
.text.memcpy 0x08004b0c 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)
|
||||
0x08004b0c memcpy
|
||||
0x08003108 0x9e8 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
0x08003108 main
|
||||
.text 0x08003af0 0x154 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
0x08003af0 swim_xfr
|
||||
.text 0x08003c44 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)
|
||||
0x08003f00 _Unwind_GetCFA
|
||||
0x08003f04 __gnu_Unwind_RaiseException
|
||||
0x08003f58 __gnu_Unwind_ForcedUnwind
|
||||
0x08003f6c __gnu_Unwind_Resume
|
||||
0x08003fb4 __gnu_Unwind_Resume_or_Rethrow
|
||||
0x08003fd0 _Unwind_Complete
|
||||
0x08003fd4 _Unwind_DeleteException
|
||||
0x08003fe4 _Unwind_VRS_Get
|
||||
0x0800402c _Unwind_VRS_Set
|
||||
0x08004074 __gnu_Unwind_Backtrace
|
||||
0x080043c4 __aeabi_unwind_cpp_pr0
|
||||
0x080043d0 __aeabi_unwind_cpp_pr1
|
||||
0x080043dc __aeabi_unwind_cpp_pr2
|
||||
0x080043e8 _Unwind_VRS_Pop
|
||||
.text 0x0800464c 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)
|
||||
0x0800464c __restore_core_regs
|
||||
0x0800464c restore_core_regs
|
||||
0x08004678 __gnu_Unwind_Restore_VFP
|
||||
0x0800467c __gnu_Unwind_Save_VFP
|
||||
0x08004680 __gnu_Unwind_Restore_VFP_D
|
||||
0x08004684 __gnu_Unwind_Save_VFP_D
|
||||
0x08004688 __gnu_Unwind_Restore_VFP_D_16_to_31
|
||||
0x0800468c __gnu_Unwind_Save_VFP_D_16_to_31
|
||||
0x08004690 __gnu_Unwind_Restore_WMMXD
|
||||
0x08004694 __gnu_Unwind_Save_WMMXD
|
||||
0x08004698 __gnu_Unwind_Restore_WMMXC
|
||||
0x0800469c __gnu_Unwind_Save_WMMXC
|
||||
0x080046a0 ___Unwind_RaiseException
|
||||
0x080046a0 _Unwind_RaiseException
|
||||
0x080046d0 _Unwind_Resume
|
||||
0x080046d0 ___Unwind_Resume
|
||||
0x08004700 _Unwind_Resume_or_Rethrow
|
||||
0x08004700 ___Unwind_Resume_or_Rethrow
|
||||
0x08004730 _Unwind_ForcedUnwind
|
||||
0x08004730 ___Unwind_ForcedUnwind
|
||||
0x08004760 ___Unwind_Backtrace
|
||||
0x08004760 _Unwind_Backtrace
|
||||
.text 0x08004790 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)
|
||||
0x080047e4 __gnu_unwind_execute
|
||||
0x08004ad4 __gnu_unwind_frame
|
||||
0x08004afc _Unwind_GetRegionStart
|
||||
0x08004b08 _Unwind_GetLanguageSpecificData
|
||||
0x08004b1c _Unwind_GetDataRelBase
|
||||
0x08004b24 _Unwind_GetTextRelBase
|
||||
.text.abort 0x08004b2c 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)
|
||||
0x08004b2c abort
|
||||
.text.memcpy 0x08004b3c 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)
|
||||
0x08004b3c memcpy
|
||||
.text._raise_r
|
||||
0x08004b94 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)
|
||||
0x08004b94 _raise_r
|
||||
.text.raise 0x08004bf0 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)
|
||||
0x08004bf0 raise
|
||||
.text._kill_r 0x08004c04 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)
|
||||
0x08004c04 _kill_r
|
||||
0x08004bc4 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)
|
||||
0x08004bc4 _raise_r
|
||||
.text.raise 0x08004c20 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)
|
||||
0x08004c20 raise
|
||||
.text._kill_r 0x08004c34 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)
|
||||
0x08004c34 _kill_r
|
||||
.text._getpid_r
|
||||
0x08004c2c 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)
|
||||
0x08004c2c _getpid_r
|
||||
.text._getpid 0x08004c34 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)
|
||||
0x08004c34 _getpid
|
||||
.text._kill 0x08004c44 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)
|
||||
0x08004c44 _kill
|
||||
.text._exit 0x08004c54 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)
|
||||
0x08004c54 _exit
|
||||
0x08004c5c 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)
|
||||
0x08004c5c _getpid_r
|
||||
.text._getpid 0x08004c64 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)
|
||||
0x08004c64 _getpid
|
||||
.text._kill 0x08004c74 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)
|
||||
0x08004c74 _kill
|
||||
.text._exit 0x08004c84 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)
|
||||
0x08004c84 _exit
|
||||
*(.init)
|
||||
.init 0x08004c58 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
|
||||
0x08004c58 _init
|
||||
.init 0x08004c88 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
|
||||
0x08004c88 _init
|
||||
*(.fini)
|
||||
.fini 0x08004c5c 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
|
||||
0x08004c5c _fini
|
||||
.fini 0x08004c8c 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
|
||||
0x08004c8c _fini
|
||||
*crtbegin.o(.ctors)
|
||||
*crtbegin?.o(.ctors)
|
||||
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
|
||||
|
|
@ -701,42 +700,42 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*(.rodata*)
|
||||
*(.eh_frame*)
|
||||
|
||||
.glue_7 0x08004c60 0x0
|
||||
.glue_7 0x08004c60 0x0 linker stubs
|
||||
.glue_7 0x08004c90 0x0
|
||||
.glue_7 0x08004c90 0x0 linker stubs
|
||||
|
||||
.glue_7t 0x08004c60 0x0
|
||||
.glue_7t 0x08004c60 0x0 linker stubs
|
||||
.glue_7t 0x08004c90 0x0
|
||||
.glue_7t 0x08004c90 0x0 linker stubs
|
||||
|
||||
.vfp11_veneer 0x08004c60 0x0
|
||||
.vfp11_veneer 0x08004c60 0x0 linker stubs
|
||||
.vfp11_veneer 0x08004c90 0x0
|
||||
.vfp11_veneer 0x08004c90 0x0 linker stubs
|
||||
|
||||
.v4_bx 0x08004c60 0x0
|
||||
.v4_bx 0x08004c60 0x0 linker stubs
|
||||
.v4_bx 0x08004c90 0x0
|
||||
.v4_bx 0x08004c90 0x0 linker stubs
|
||||
|
||||
.iplt 0x08004c60 0x0
|
||||
.iplt 0x08004c60 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.iplt 0x08004c90 0x0
|
||||
.iplt 0x08004c90 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
|
||||
.ARM.extab 0x08004c60 0x30
|
||||
.ARM.extab 0x08004c90 0x30
|
||||
*(.ARM.extab* .gnu.linkonce.armextab.*)
|
||||
.ARM.extab 0x08004c60 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 0x08004c84 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)
|
||||
0x08004c90 __exidx_start = .
|
||||
.ARM.extab 0x08004c90 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 0x08004cb4 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)
|
||||
0x08004cc0 __exidx_start = .
|
||||
|
||||
.ARM.exidx 0x08004c90 0xd0
|
||||
.ARM.exidx 0x08004cc0 0xd0
|
||||
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
|
||||
.ARM.exidx 0x08004c90 0x8 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.ARM.exidx 0x08004cc0 0x8 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
0x10 (size before relaxing)
|
||||
.ARM.exidx 0x08004c98 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 0x08004cc8 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 0x08004d30 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 0x08004d60 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)
|
||||
0x08004d60 __exidx_end = .
|
||||
0x08004d60 __etext = ALIGN (0x4)
|
||||
0x08004d90 __exidx_end = .
|
||||
0x08004d90 __etext = ALIGN (0x4)
|
||||
|
||||
.rel.dyn 0x08004d60 0x0
|
||||
.rel.iplt 0x08004d60 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.rel.dyn 0x08004d90 0x0
|
||||
.rel.iplt 0x08004d90 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
|
||||
.data 0x20000000 0x430 load address 0x08004d60
|
||||
.data 0x20000000 0x430 load address 0x08004d90
|
||||
0x20000000 __data_start__ = .
|
||||
*(vtable)
|
||||
*(.data*)
|
||||
|
|
@ -764,61 +763,61 @@ LOAD c:/arm/gcc-arm-none-eabi-7-2018-q2-update-win32/bin/../lib/gcc/arm-none-eab
|
|||
*(.fastrun)
|
||||
0x20000430 __data_end__ = .
|
||||
|
||||
.igot.plt 0x20000430 0x0 load address 0x08005190
|
||||
.igot.plt 0x20000430 0x0 C:\Users\PAUL_D~1\AppData\Local\Temp\ccOxWw6f.o
|
||||
.igot.plt 0x20000430 0x0 load address 0x080051c0
|
||||
.igot.plt 0x20000430 0x0 C:\Users\paul\AppData\Local\Temp\ccep6a43.o
|
||||
|
||||
.bss 0x20000430 0x2e4 load address 0x08005190
|
||||
.bss 0x20000430 0x2e4 load address 0x080051c0
|
||||
0x20000430 . = ALIGN (0x4)
|
||||
0x20000430 __bss_start__ = .
|
||||
*(.bss*)
|
||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.addrh 0x20000434 0x2 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.addr_ptr 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.addrh 0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.bank_table
|
||||
0x20000436 0x2 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.buff0 0x20000438 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.buff1 0x2000044c 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.buff2 0x20000460 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.buff3 0x20000474 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.cur_bank 0x20000488 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x20000436 0x2 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x20000489 0x3
|
||||
.bss.cur_buff 0x2000048c 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.cur_usb_load_buff
|
||||
0x20000490 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.exp_byte 0x20000494 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.exp_byte 0x20000494 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.incoming_bytes_remain
|
||||
0x20000495 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x20000495 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x20000496 0x2
|
||||
.bss.lfsr 0x20000498 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.num_buff.5127
|
||||
0x2000049c 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.lfsr 0x20000498 0x4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.num_buff.5153
|
||||
0x2000049c 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.num_prg_banks
|
||||
0x2000049d 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x2000049d 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x2000049e 0x2
|
||||
.bss.oper_info_struct
|
||||
0x200004a0 0x20 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004a0 0x20 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.pbje_command
|
||||
0x200004c0 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004c0 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.pbje_data
|
||||
0x200004c1 0x20 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004c1 0x20 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.pbje_numclk
|
||||
0x200004e1 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004e1 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.pbje_status
|
||||
0x200004e2 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004e2 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.raw_bank_status
|
||||
0x200004e3 0x10 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004e3 0x10 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x200004f3 0x1
|
||||
.bss.raw_buffer16
|
||||
0x200004f4 0x200 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.rv16.4747
|
||||
0x200006f4 0x8 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.rv16.5047
|
||||
0x200006fc 0x8 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x200004f4 0x200 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.rv16.4750
|
||||
0x200006f4 0x8 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.rv16.5073
|
||||
0x200006fc 0x8 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.stm_debug_disable
|
||||
0x20000704 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x20000704 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*fill* 0x20000705 0x3
|
||||
.bss.swim_base
|
||||
0x20000708 0x4 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.bss.swim_pin 0x2000070c 0x1 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x20000708 0x4 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.bss.swim_pin 0x2000070c 0x1 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
*(COMMON)
|
||||
*fill* 0x2000070d 0x3
|
||||
COMMON 0x20000710 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)
|
||||
|
|
@ -845,45 +844,45 @@ OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
|
|||
.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_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x0000001e 0x2f C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.ARM.attributes
|
||||
0x0000004d 0x21 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
0x0000004d 0x21 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
|
||||
.comment 0x00000000 0x7f
|
||||
.comment 0x00000000 0x7f C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.comment 0x00000000 0x7f C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
0x80 (size before relaxing)
|
||||
|
||||
.debug_info 0x00000000 0x4835
|
||||
.debug_info 0x00000000 0x480f C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.debug_info 0x0000480f 0x26 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.debug_info 0x00000000 0x48db
|
||||
.debug_info 0x00000000 0x48b5 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.debug_info 0x000048b5 0x26 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
|
||||
.debug_abbrev 0x00000000 0x6a7
|
||||
.debug_abbrev 0x00000000 0x693 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.debug_abbrev 0x00000693 0x14 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.debug_abbrev 0x00000000 0x6b6
|
||||
.debug_abbrev 0x00000000 0x6a2 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.debug_abbrev 0x000006a2 0x14 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
|
||||
.debug_loc 0x00000000 0x6ecc
|
||||
.debug_loc 0x00000000 0x6ecc C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.debug_loc 0x00000000 0x6ff6
|
||||
.debug_loc 0x00000000 0x6ff6 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
|
||||
.debug_aranges 0x00000000 0x1d0
|
||||
.debug_aranges
|
||||
0x00000000 0x1b0 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x00000000 0x1b0 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.debug_aranges
|
||||
0x000001b0 0x20 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
0x000001b0 0x20 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
|
||||
.debug_ranges 0x00000000 0xb18
|
||||
.debug_ranges 0x00000000 0xb18 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.debug_ranges 0x00000000 0xb30
|
||||
.debug_ranges 0x00000000 0xb30 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
|
||||
.debug_line 0x00000000 0x165d
|
||||
.debug_line 0x00000000 0x156a C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.debug_line 0x0000156a 0xf3 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.debug_line 0x00000000 0x1677
|
||||
.debug_line 0x00000000 0x1584 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
.debug_line 0x00001584 0xf3 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
|
||||
.debug_str 0x00000000 0x1073
|
||||
.debug_str 0x00000000 0x100a C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
0x1123 (size before relaxing)
|
||||
.debug_str 0x0000100a 0x69 C:\Users\PAUL_D~1\AppData\Local\Temp\ccq24Qmp.o
|
||||
.debug_str 0x00000000 0x1071
|
||||
.debug_str 0x00000000 0x1008 C:\Users\paul\AppData\Local\Temp\ccyIooTi.ltrans0.ltrans.o
|
||||
0x1121 (size before relaxing)
|
||||
.debug_str 0x00001008 0x69 C:\Users\paul\AppData\Local\Temp\cckRUKFb.o
|
||||
|
||||
.debug_frame 0x00000000 0x594
|
||||
.debug_frame 0x00000000 0x594 C:\Users\PAUL_D~1\AppData\Local\Temp\cclxzrun.ltrans0.ltrans.o
|
||||
.debug_frame 0x00000000 0x594 C:\Users\paul\AppData\Local\Temp\ccyIooTi.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)
|
||||
|
|
|
|||
|
|
@ -115,20 +115,27 @@ uint8_t dump_buff( buffer *buff ) {
|
|||
#endif
|
||||
|
||||
#ifdef SEGA_CONN
|
||||
case GENESIS_ROM_PAGE0:
|
||||
case GENESIS_ROM_PAGE0: //A16=0 first half of A1-A16 BANK
|
||||
//mapper byte specifies Genesis CPU A15-8
|
||||
addrH |= (buff->mapper); //no shift needed
|
||||
buff->cur_byte = genesis_page_rd( buff->data, addrH, buff->id,
|
||||
//id contains MSb of page when <256B buffer
|
||||
buff->last_idx);
|
||||
break;
|
||||
case GENESIS_ROM_PAGE1:
|
||||
case GENESIS_ROM_PAGE1: //A16=1 second half of A1-A16 BANK
|
||||
//mapper byte specifies Genesis CPU A15-8
|
||||
addrH |= (buff->mapper); //no shift needed
|
||||
buff->cur_byte = genesis_page_rd( buff->data, addrH+0x0100, buff->id,
|
||||
//id contains MSb of page when <256B buffer
|
||||
buff->last_idx);
|
||||
break;
|
||||
case GENESIS_RAM_PAGE: //Only read data from lower Byte D0-7
|
||||
//mapper byte specifies Genesis CPU A15-8
|
||||
addrH |= (buff->mapper); //no shift needed
|
||||
buff->cur_byte = genesis_ram_page_rd( buff->data, addrH, buff->id,
|
||||
//id contains MSb of page when <256B buffer
|
||||
buff->last_idx);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef N64_CONN
|
||||
|
|
|
|||
|
|
@ -20,6 +20,39 @@ uint8_t write_page( uint8_t addrH, buffer *buff, write_funcptr wr_func )
|
|||
//TODO error check/report
|
||||
return SUCCESS;
|
||||
}
|
||||
/*
|
||||
uint8_t write_page_mmc5( uint8_t addrH, buffer *buff, write_funcptr wr_func )
|
||||
{
|
||||
uint16_t cur = buff->cur_byte;
|
||||
uint8_t n = buff->cur_byte;
|
||||
// uint8_t read;
|
||||
|
||||
//enable PRG-RAM writting and then quickly write to it and make sure don't timeout
|
||||
//disable write protection, and enable WRAM
|
||||
//for save data safety start by disabling WRAM writes
|
||||
//dict.nes("NES_CPU_WR", 0x5102, 0x02) --bits 1&0 must be '01' (ie 0x02) to allow writes to WRAM
|
||||
//dict.nes("NES_CPU_WR", 0x5103, 0x01) --bits 1&0 must be '10' (ie 0x01) to allow writes to WRAM
|
||||
__disable_irq(); //clear's processor PRIMASK register bit to allow interrupts to be taken
|
||||
nes_cpu_wr(0x5102, 0x02);
|
||||
nes_cpu_wr(0x5103, 0x01);
|
||||
nes_cpu_wr(0x5102, 0x02);
|
||||
nes_cpu_wr(0x5103, 0x01);
|
||||
while ( cur <= buff->last_idx ) {
|
||||
|
||||
wr_func( ((addrH<<8)| n), buff->data[n] );
|
||||
//write function returns when it's complete or errors out
|
||||
|
||||
n++;
|
||||
cur++;
|
||||
}
|
||||
__enable_irq(); //clear's processor PRIMASK register bit to allow interrupts to be taken
|
||||
buff->cur_byte = n;
|
||||
|
||||
//TODO error check/report
|
||||
return SUCCESS;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
uint8_t write_page_verify( uint8_t addrH, buffer *buff, write_rv_funcptr wr_func )
|
||||
{
|
||||
|
|
@ -440,6 +473,13 @@ uint8_t flash_buff( buffer *buff ) {
|
|||
uint8_t addrH = buff->page_num; //A15:8 while accessing page
|
||||
uint8_t bank;
|
||||
|
||||
#ifdef SEGA_CONN
|
||||
uint16_t cur ;//= buff->cur_byte;
|
||||
uint8_t n ;//= buff->cur_byte;
|
||||
uint16_t temp;
|
||||
uint16_t addr;
|
||||
#endif
|
||||
|
||||
switch ( buff->mem_type ) {
|
||||
#ifdef NES_CONN
|
||||
case PRGROM: //$8000
|
||||
|
|
@ -607,7 +647,11 @@ uint8_t flash_buff( buffer *buff ) {
|
|||
break;
|
||||
|
||||
case PRGRAM:
|
||||
write_page( addrH+0x60, buff, nes_cpu_wr);
|
||||
//if (buff->mapper == MMC5) {
|
||||
// write_page_mmc5( addrH+0x60, buff, nes_cpu_wr);
|
||||
//} else {
|
||||
write_page( addrH+0x60, buff, nes_cpu_wr);
|
||||
//}
|
||||
break;
|
||||
#endif
|
||||
|
||||
|
|
@ -673,6 +717,48 @@ uint8_t flash_buff( buffer *buff ) {
|
|||
break;
|
||||
#endif
|
||||
|
||||
#ifdef SEGA_CONN
|
||||
case GENESISROM:
|
||||
//if (buff->mapper == LOROM_5VOLT) {
|
||||
//LOROM banks start at $XX:8000
|
||||
//write_page_16bit( addrH+0x80, buff, snes_5v_flash_wr);
|
||||
//}
|
||||
//uint8_t write_page( uint8_t addrH, buffer *buff, write_funcptr wr_func )
|
||||
//{
|
||||
cur = buff->cur_byte;
|
||||
n = buff->cur_byte;
|
||||
addr = addrH;
|
||||
addr = addr<<8;
|
||||
// uint8_t read;
|
||||
|
||||
while ( cur <= buff->last_idx ) {
|
||||
|
||||
//TODO this is broke, first 256 bytes keep getting written over and over again
|
||||
temp = buff->data[n];
|
||||
temp = temp<<8;
|
||||
n++;
|
||||
temp += buff->data[n];
|
||||
|
||||
//n--;
|
||||
gen_sst_flash_wr( (addr|(n>>1)), temp);
|
||||
|
||||
//wr_func( ((addrH<<8)| n), buff->data[n] );
|
||||
//write function returns when it's complete or errors out
|
||||
|
||||
addr++;
|
||||
//n++;
|
||||
cur++;
|
||||
n++;
|
||||
cur++;
|
||||
}
|
||||
buff->cur_byte = n;
|
||||
|
||||
//TODO error check/report
|
||||
// return SUCCESS;
|
||||
//}
|
||||
#endif
|
||||
|
||||
|
||||
default:
|
||||
return ERR_BUFF_UNSUP_MEM_TYPE;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -476,7 +476,7 @@ void sega_init()
|
|||
// HADDR_ENABLE();
|
||||
// HADDR_IP();
|
||||
// HADDR_PU();
|
||||
//TODO ERROR DATA16_ENABLE();
|
||||
DATA16_ENABLE();
|
||||
// DATA16_IP();
|
||||
// DATA16_PU();
|
||||
|
||||
|
|
|
|||
|
|
@ -120,6 +120,9 @@ uint8_t nes_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *r
|
|||
case MMC3S_PRG_FLASH_WR:
|
||||
mmc3s_prgrom_flash_wr( operand, miscdata );
|
||||
break;
|
||||
case PPU_PAGE_WR_LFSR:
|
||||
ppu_page_wr_lfsr( operand, miscdata );
|
||||
break;
|
||||
|
||||
|
||||
//8bit return values:
|
||||
|
|
@ -156,8 +159,9 @@ uint8_t nes_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *r
|
|||
rdata[RD_LEN] = BYTE_LEN;
|
||||
rdata[RD0] = num_prg_banks;
|
||||
break;
|
||||
case PPU_PAGE_WR_LFSR:
|
||||
ppu_page_wr_lfsr( operand, miscdata );
|
||||
case MMC5_PRG_RAM_WR:
|
||||
rdata[RD_LEN] = BYTE_LEN;
|
||||
rdata[RD0] = mmc5_prgram_wr( operand, miscdata );
|
||||
break;
|
||||
default:
|
||||
//macro doesn't exist
|
||||
|
|
@ -839,10 +843,10 @@ uint8_t nes_cpu_page_rd_poll( uint8_t *data, uint8_t addrH, uint8_t first, uint8
|
|||
ADDRH(addrH);
|
||||
|
||||
//set M2 and /ROMSEL
|
||||
M2_HI();
|
||||
if( addrH >= 0x80 ) { //addressing cart rom space
|
||||
ROMSEL_LO(); //romsel trails M2 during CPU operations
|
||||
}
|
||||
M2_HI();
|
||||
|
||||
//set lower address bits
|
||||
ADDRL(first); //doing this prior to entry and right after latching
|
||||
|
|
@ -885,7 +889,7 @@ uint8_t nes_cpu_page_rd_toggle( uint8_t *data, uint8_t addrH, uint8_t first, uin
|
|||
//set address bus
|
||||
ADDRH(addrH);
|
||||
|
||||
//set M2 and /ROMSEL
|
||||
//set /ROMSEL
|
||||
if( addrH >= 0x80 ) { //addressing cart rom space
|
||||
ROMSEL_LO(); //romsel trails M2 during CPU operations
|
||||
}
|
||||
|
|
@ -1749,4 +1753,16 @@ uint8_t tssop_prgrom_flash_wr( uint16_t addr, uint8_t data )
|
|||
return rv;
|
||||
}
|
||||
|
||||
uint8_t mmc5_prgram_wr( uint16_t addr, uint8_t data )
|
||||
{
|
||||
nes_cpu_wr(0x5102, 0x02); //PRG-RAM protect 1
|
||||
nes_cpu_wr(0x5103, 0x01); //PRG-RAM protect 2
|
||||
nes_cpu_wr(0x5102, 0x02); //need an additional M2 cycling, may as well be a write to a prot reg
|
||||
//if there is an interrupt durring this time the write could fail if >11.2usec
|
||||
nes_cpu_wr(addr, data);
|
||||
|
||||
return nes_cpu_rd(addr);
|
||||
}
|
||||
|
||||
|
||||
#endif //NES_CONN
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ uint8_t gtrom_prgrom_flash_wr( uint16_t addr, uint8_t data );
|
|||
void ppu_page_wr_lfsr( uint16_t addr, uint8_t data );
|
||||
uint8_t a53_tssop_prgrom_flash_wr( uint16_t addr, uint8_t data );
|
||||
uint8_t tssop_prgrom_flash_wr( uint16_t addr, uint8_t data );
|
||||
uint8_t mmc5_prgram_wr( uint16_t addr, uint8_t data );
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -641,6 +641,7 @@ void software_AXL_CLK();
|
|||
#define RCC_AHBENR_ADDR RCC_AHBENR_GPIOCEN
|
||||
#define RCC_AHBENR_HADDR (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN)
|
||||
#define RCC_AHBENR_DATA RCC_AHBENR_GPIOBEN
|
||||
#define RCC_AHBENR_DATA16 (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN)
|
||||
#define RCC_AHBENR_EXP (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN)
|
||||
|
||||
|
||||
|
|
@ -1113,11 +1114,13 @@ void software_AXL_CLK();
|
|||
|
||||
//IP and OP assume MODER[1] is clear (ie not set to Alt Func)
|
||||
//also assume PUPDR is reset default floating
|
||||
//TODO for input MODER=00 why not just clear both bits???
|
||||
#define DATA_IP_PU() Dbank->MODER &= ~(MODER_OP_ALL & 0xFFFF0000); Dbank->PUPDR |= (PUPDR_PU_ALL & 0xFFFF0000)
|
||||
#define DATA_IP() Dbank->MODER &= ~(MODER_OP_ALL & 0xFFFF0000)
|
||||
#define DATA_OP() Dbank->MODER |= (MODER_OP_ALL & 0xFFFF0000)
|
||||
//TODO create byte wide port structs to grant byte accesses so doesn't need shifted
|
||||
#define DATA_SET(data) Dbank->ODR = (Dbank->ODR & 0x00FF) | (data<<8)
|
||||
//TODO the 0x00FF mask shouldn't be necessary as they're reserved and expected to be clear
|
||||
#define DATA_RD(data) data = (Dbank->IDR>>8) & 0x00FF
|
||||
|
||||
#define DATA_EN_CLK() RCC->AHBENR |= RCC_AHBENR_DATA
|
||||
|
|
@ -1391,17 +1394,42 @@ void software_AXL_CLK();
|
|||
#ifdef STM_INL6
|
||||
|
||||
//Combine 8bit DATA0-7 and 8bit EXP1-8
|
||||
// //A16-21 are on PB10-15 these also map to EXP1-5, & 7
|
||||
// //A22-23 are on PA9-10 these also map to CIRAM A10 & CIRAM /CE respectively
|
||||
// #define A16_21bank GPIOB
|
||||
// #define A22_23bank GPIOA
|
||||
//
|
||||
//D0-7 are on PB8-15, D8-13 are on PB2-7
|
||||
// MSByte: 7654_3210 LSByte: 13-12-11-10_9-8-X-X
|
||||
#define D0_13bank GPIOB //all of B except PB0-1
|
||||
//D14-15 are on PA9-10
|
||||
#define D14_15bank GPIOA
|
||||
|
||||
//
|
||||
// #define HADDR_PU() A16_21bank->PUPDR |= (PUPDR_PU_ALL & 0xFFF00000); A22_23bank->PUPDR |= (PUPDR_PU_ALL & 0x003C0000)
|
||||
// #define HADDR_IP() A16_21bank->MODER &=~(MODER_OP_ALL & 0xFFF00000); A22_23bank->MODER &=~(MODER_OP_ALL & 0x003C0000)
|
||||
// #define HADDR_OP() A16_21bank->MODER |= (MODER_OP_ALL & 0xFFF00000); A22_23bank->MODER |= (MODER_OP_ALL & 0x003C0000)
|
||||
//
|
||||
// #define HADDR_SET(val) A16_21bank->ODR = ((A16_21bank->ODR&0x03FF) | (val<<10 & 0xFC00)); A22_23bank->ODR = ((A22_23bank->ODR & 0xF9FF) | (val<<3 & 0x0600))
|
||||
|
||||
//IP and OP assume MODER[1] is clear (ie not set to Alt Func)
|
||||
//also assume PUPDR is reset default floating
|
||||
// #define DATA16_IP_PU() DATA_IP_PU(); = ~(MODER_OP_ALL & 0xFFFF0000); Dbank->PUPDR |= (PUPDR_PU_ALL & 0xFFFF0000)
|
||||
// #define DATA_IP() Dbank->MODER &= ~(MODER_OP_ALL & 0xFFFF0000)
|
||||
// #define DATA_OP() Dbank->MODER |= (MODER_OP_ALL & 0xFFFF0000)
|
||||
// #define DATA_SET(data) Dbank->ODR = (Dbank->ODR & 0x00FF) | (data<<8)
|
||||
// #define DATA_RD(data) data = (Dbank->IDR>>8) & 0x00FF
|
||||
//
|
||||
// #define DATA_EN_CLK() RCC->AHBENR |= RCC_AHBENR_DATA
|
||||
// #define DATA_ENABLE() DATA_EN_CLK(); DATA_IP_PU();
|
||||
#define DATA16_IP() D0_13bank->MODER &= 0x0000000F; D14_15bank->MODER &= 0xFFC3FFFF
|
||||
#define DATA16_OP() D0_13bank->MODER |= (MODER_OP_ALL & 0xFFFFFFF0); D14_15bank->MODER |= (MODER_OP_ALL & 0x003C0000)
|
||||
#define DATA16_PU() D0_13bank->PUPDR |= (PUPDR_PU_ALL & 0xFFFFFFF0); D14_15bank->PUPDR |= (PUPDR_PU_ALL & 0x003C0000)
|
||||
// #define DATA16_IP_PU() DATA16_IP(); DATA16_PU()
|
||||
|
||||
// #define DATA_SET(data) Dbank->ODR = (Dbank->ODR & 0x00FF) | (data<<8)
|
||||
#define DATA16L_RD(data) data = (D0_13bank->IDR>>8)// & 0x00FF
|
||||
// MSByte: 7654_3210 LSByte: 13-12-11-10_9-8-X-X
|
||||
#define DATA16H_RD(data) data = ((D0_13bank->IDR>>2)&0x003F) | ((D14_15bank->IDR>>3)&0x00C0)
|
||||
|
||||
#define DATA16L_SET(data) D0_13bank->ODR = (D0_13bank->ODR & 0x00FF) | (data<<8)
|
||||
//TODO rethink these macros!
|
||||
#define DATA16H_SET(data) D0_13bank->ODR = (D0_13bank->ODR & 0xFF03) | (data<<2); D14_15bank->ODR= (D14_15bank->ODR& 0xF9FF) | (data<<3)
|
||||
|
||||
#define DATA16_EN_CLK() RCC->AHBENR |= RCC_AHBENR_DATA16
|
||||
#define DATA16_ENABLE() DATA16_EN_CLK(); DATA16_IP(); DATA16_PU()
|
||||
|
||||
|
||||
#endif //STM_INL6
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
//only need this file if connector is present on the device
|
||||
#ifdef SEGA_CONN
|
||||
|
||||
uint16_t sega_addr = 0;
|
||||
|
||||
//=================================================================================================
|
||||
//
|
||||
// SEGA operations
|
||||
|
|
@ -34,11 +36,20 @@ uint8_t sega_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *
|
|||
|
||||
switch (opcode) {
|
||||
// //no return value:
|
||||
case SEGA_WR:
|
||||
sega_wr( operand, miscdata );
|
||||
case GEN_SET_ADDR:
|
||||
sega_addr = operand;
|
||||
ADDR_SET(sega_addr);
|
||||
break;
|
||||
case GEN_WR_LO:
|
||||
sega_addr = operand;
|
||||
gen_wr_lo( operand, miscdata );
|
||||
break;
|
||||
case GEN_WR_HI:
|
||||
sega_addr = operand;
|
||||
gen_wr_hi( operand, miscdata );
|
||||
break;
|
||||
|
||||
case SET_BANK:
|
||||
case GEN_SET_BANK:
|
||||
temp = ADDR_CUR; //this will get stomped
|
||||
#define LOMEM_TIME_MASK 0x84
|
||||
//A17-18, 20-23
|
||||
|
|
@ -51,12 +62,27 @@ uint8_t sega_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *
|
|||
} else {
|
||||
IRQ_LO();
|
||||
}
|
||||
//use of flip-flop corrupts A1-A16, restore it
|
||||
ADDR_SET(sega_addr);
|
||||
break;
|
||||
|
||||
case GEN_FLASH_WR_ADDROFF:
|
||||
sega_addr += miscdata;
|
||||
gen_flash_wr(sega_addr, operand);
|
||||
break;
|
||||
|
||||
case GEN_SST_FLASH_WR_ADDROFF:
|
||||
sega_addr += miscdata;
|
||||
gen_sst_flash_wr(sega_addr, operand);
|
||||
break;
|
||||
|
||||
//8bit return values:
|
||||
case SEGA_RD:
|
||||
rdata[RD_LEN] = BYTE_LEN;
|
||||
rdata[RD0] = sega_rd( operand );
|
||||
case GEN_ROM_RD:
|
||||
sega_addr = operand;
|
||||
rdata[RD_LEN] = HWORD_LEN;
|
||||
temp = gen_rom_rd( operand );
|
||||
rdata[RD0] = temp;
|
||||
rdata[RD1] = temp>>8;
|
||||
break;
|
||||
default:
|
||||
//macro doesn't exist
|
||||
|
|
@ -67,19 +93,208 @@ uint8_t sega_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *
|
|||
|
||||
}
|
||||
|
||||
uint8_t sega_rd( uint16_t addr )
|
||||
uint16_t gen_rom_rd( uint16_t addr )
|
||||
{
|
||||
return 0xAA;
|
||||
uint16_t rv;
|
||||
uint8_t temp;
|
||||
|
||||
ADDR_SET(addr);
|
||||
|
||||
//set #C_CE
|
||||
ROMSEL_LO();
|
||||
|
||||
//set #C_OE
|
||||
CSRD_LO();
|
||||
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
//6 above were working, trying more
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
|
||||
|
||||
|
||||
////latch data high byte
|
||||
//rv = HDATA_VAL;
|
||||
|
||||
////shift into upper byte
|
||||
//rv = rv<<8;
|
||||
|
||||
////latch data low byte
|
||||
//DATA_RD(temp);
|
||||
|
||||
//rv |= temp;
|
||||
DATA16H_RD(rv);
|
||||
rv = rv << 8;
|
||||
DATA16L_RD(temp);
|
||||
rv |= temp;
|
||||
|
||||
//return bus to default
|
||||
CSRD_HI();
|
||||
ROMSEL_HI();
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
void sega_wr( uint16_t addr, uint8_t data )
|
||||
void gen_wr_lo( uint16_t addr, uint8_t data )
|
||||
{
|
||||
return;
|
||||
|
||||
ADDR_SET(addr);
|
||||
|
||||
//put data on bus
|
||||
DATA_OP();
|
||||
DATA_SET(data); //lower byte D0-7
|
||||
|
||||
//set #C_CE
|
||||
ROMSEL_LO();
|
||||
|
||||
//set #C_OE
|
||||
//CSRD_LO();
|
||||
|
||||
//set #LDSW
|
||||
PRGRW_LO();
|
||||
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
|
||||
//latch data with /WE - #LDSW
|
||||
PRGRW_HI();
|
||||
|
||||
//return bus to default
|
||||
//CSRD_HI();
|
||||
ROMSEL_HI();
|
||||
|
||||
//Free data bus
|
||||
DATA_IP();
|
||||
}
|
||||
|
||||
//TODO this function is untested, but I think it'll work..
|
||||
void gen_wr_hi( uint16_t addr, uint8_t data )
|
||||
{
|
||||
|
||||
ADDR_SET(addr);
|
||||
|
||||
//put data on bus
|
||||
//DATA_OP();
|
||||
//DATA_SET(data); //lower byte D0-7
|
||||
|
||||
//set data bus to output
|
||||
//TODO maybe want a function that only sets upper byte to output..?
|
||||
DATA16_OP();
|
||||
//DATA16L_SET(data);
|
||||
DATA16H_SET(data); //put 8bits of data on high byte
|
||||
|
||||
//set #C_CE
|
||||
ROMSEL_LO(); //enables level shifter
|
||||
|
||||
//wait for data to get to flash before latching
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
|
||||
//set #UDSW
|
||||
CSWR_LO();
|
||||
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
|
||||
//latch data with /WE - #UDSW
|
||||
CSWR_HI();
|
||||
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
|
||||
//return bus to default
|
||||
ROMSEL_HI();
|
||||
|
||||
//Free data bus
|
||||
DATA16_IP();
|
||||
}
|
||||
|
||||
|
||||
/* Desc:SNES ROM Page Read with optional USB polling
|
||||
void gen_flash_wr( uint16_t addr, uint16_t data )
|
||||
{
|
||||
|
||||
uint8_t temp = data;
|
||||
|
||||
ADDR_SET(addr);
|
||||
|
||||
//put data on bus
|
||||
//DATA_OP();
|
||||
//DATA_SET(temp); //lower byte D0-7
|
||||
DATA16_OP();
|
||||
DATA16L_SET(data);
|
||||
data = data>>8;
|
||||
DATA16H_SET(data); //put 8bits of data on high byte
|
||||
|
||||
//TODO figure out why this is needed...
|
||||
//guessing macro expansion or something with setting both bytes separately
|
||||
DATA_SET(temp); //lower byte D0-7
|
||||
|
||||
//TODO set upper byte of data
|
||||
|
||||
//set #C_CE
|
||||
ROMSEL_LO();
|
||||
|
||||
//set #C_OE
|
||||
//flash writes must be high
|
||||
//CSRD_LO();
|
||||
|
||||
//set #LDSW
|
||||
//PRGRW_LO();
|
||||
// #UDSW B29 CPU D8-15 data strobe
|
||||
CSWR_LO();
|
||||
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
//6 above were working, testing more
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
//NOP();
|
||||
|
||||
//latch data with /WE - #LDSW
|
||||
//PRGRW_HI();
|
||||
CSWR_HI();
|
||||
|
||||
//return bus to default
|
||||
ROMSEL_HI();
|
||||
|
||||
//Free data bus
|
||||
//DATA_IP();
|
||||
DATA16_IP();
|
||||
}
|
||||
|
||||
/* Desc:SEGA GENESIS ROM Page Read with optional USB polling
|
||||
* /ROMSEL based on romsel arg, EXP0/RESET unaffected
|
||||
* if poll is true calls usbdrv.h usbPoll fuction
|
||||
* this is needed to keep from timing out when double buffering usb data
|
||||
|
|
@ -148,5 +363,95 @@ uint8_t genesis_page_rd( uint8_t *data, uint16_t addrH, uint8_t first, uint8_t l
|
|||
return i;
|
||||
}
|
||||
|
||||
/* Desc:SEGA GENESIS RAM Page Read with optional USB polling
|
||||
* /ROMSEL based on romsel arg, EXP0/RESET unaffected
|
||||
* if poll is true calls usbdrv.h usbPoll fuction
|
||||
* this is needed to keep from timing out when double buffering usb data
|
||||
* Pre: snes_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 genesis_ram_page_rd( uint8_t *data, uint16_t addrH, uint8_t first, uint8_t len )
|
||||
{
|
||||
uint8_t i;
|
||||
|
||||
//set address bus
|
||||
ADDRH(addrH);
|
||||
|
||||
//set #C_CE
|
||||
ROMSEL_LO();
|
||||
|
||||
//set #C_OE
|
||||
CSRD_LO();
|
||||
|
||||
//set lower address bits
|
||||
ADDRL(first); //doing this prior to entry and right after latching
|
||||
//gives longest delay between address out and latching data
|
||||
|
||||
for( i=0; i<=len; i++ ) {
|
||||
|
||||
//gameboy needed some extra NOPS
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
NOP();
|
||||
|
||||
//latch data high byte
|
||||
// data[i] = HDATA_VAL;
|
||||
|
||||
// i++;
|
||||
|
||||
//latch data low byte
|
||||
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;
|
||||
}
|
||||
|
||||
void gen_sst_flash_wr( uint16_t addr, uint16_t data )
|
||||
{
|
||||
uint16_t rv;
|
||||
|
||||
//dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
//dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0)
|
||||
gen_flash_wr(0x5555, 0x00AA);
|
||||
|
||||
//dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
//dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0)
|
||||
gen_flash_wr(0x2AAA, 0x0055);
|
||||
|
||||
//dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
//dict.sega("GEN_FLASH_WR_ADDROFF", 0x00A0, 0) --write byte command
|
||||
gen_flash_wr(0x5555, 0x00A0);
|
||||
|
||||
//dict.sega("GEN_SET_ADDR", addr)
|
||||
//dict.sega("GEN_FLASH_WR_ADDROFF", value, 0) --write value
|
||||
gen_flash_wr(addr, data);
|
||||
|
||||
do {
|
||||
rv = gen_rom_rd(addr);
|
||||
// usbPoll(); //orignal kazzo needs this frequently to slurp up incoming data
|
||||
} while (rv != gen_rom_rd(addr));
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
#endif //SEGA_CONN
|
||||
|
|
|
|||
|
|
@ -8,9 +8,13 @@
|
|||
|
||||
uint8_t sega_call( uint8_t opcode, uint8_t miscdata, uint16_t operand, uint8_t *rdata );
|
||||
|
||||
uint8_t sega_rd( uint16_t addr );
|
||||
void sega_wr( uint16_t addr, uint8_t data );
|
||||
uint16_t gen_rom_rd( uint16_t addr );
|
||||
void gen_wr_lo( uint16_t addr, uint8_t data );
|
||||
void gen_wr_hi( uint16_t addr, uint8_t data );
|
||||
void gen_flash_wr( uint16_t addr, uint16_t data );
|
||||
void gen_sst_flash_wr( uint16_t addr, uint16_t data );
|
||||
|
||||
uint8_t genesis_page_rd( uint8_t *data, uint16_t addrH, uint8_t first, uint8_t len );
|
||||
uint8_t genesis_ram_page_rd( uint8_t *data, uint16_t addrH, uint8_t first, uint8_t len );
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ local function hex(data)
|
|||
return string.format("%X", data)
|
||||
end
|
||||
|
||||
-- file must already be open for writting in binary mode
|
||||
local function file_wr_bin(file, data)
|
||||
file:write(string.char( data ))
|
||||
end
|
||||
|
||||
|
||||
-- global variables so other modules can use them
|
||||
|
|
@ -22,6 +26,7 @@ end
|
|||
|
||||
-- functions other modules are able to call
|
||||
help.hex = hex
|
||||
help.file_wr_bin = file_wr_bin
|
||||
|
||||
-- return the module's table
|
||||
return help
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ local nes = require "scripts.app.nes"
|
|||
local dump = require "scripts.app.dump"
|
||||
local flash = require "scripts.app.flash"
|
||||
local buffers = require "scripts.app.buffers"
|
||||
local help = require "scripts.app.help"
|
||||
|
||||
-- file constants
|
||||
local mapname = "MMC5"
|
||||
|
|
@ -33,14 +34,14 @@ local function init_mapper( debug )
|
|||
dict.nes("NES_CPU_WR", 0x5105, 0x44) --vertical mirroring
|
||||
|
||||
--PRG MODE
|
||||
-- dict.nes("NES_CPU_WR", 0x5100, 0x00) --single 32KByte bank (couldn't get this to work..)
|
||||
dict.nes("NES_CPU_WR", 0x5100, 0x03) --4x 8KB banks
|
||||
-- dict.nes("NES_CPU_WR", 0x5100, 0x00) --PRGbanking mode0 single 32KByte bank (couldn't get this to work..)
|
||||
dict.nes("NES_CPU_WR", 0x5100, 0x03) --PRGbanking mode3 4x 8KB banks
|
||||
|
||||
--CHR MODE
|
||||
dict.nes("NES_CPU_WR", 0x5101, 0x00) --single 8KByte bank
|
||||
|
||||
--PRG-RAM bank
|
||||
dict.nes("NES_CPU_WR", 0x5113, 0x00) --PRG-RAM bank @ $6000-7FFF (mode0)
|
||||
dict.nes("NES_CPU_WR", 0x5113, 0x00) --PRG-RAM bank @ $6000-7FFF (regardless of PRG mode)
|
||||
|
||||
--PRG-ROM bank
|
||||
-- dict.nes("NES_CPU_WR", 0x5117, 0x00) --PRG-ROM bank @ $8000-FFFF (mode0) bits 1&0 don't matter (CPU A14/13)
|
||||
|
|
@ -129,8 +130,7 @@ local function dump_prgrom( file, rom_size_KB, debug )
|
|||
read_count = read_count + 1
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
--dump the CHR ROM
|
||||
local function dump_chrrom( file, rom_size_KB, debug )
|
||||
|
||||
|
|
@ -161,20 +161,131 @@ local function dump_wram( file, rom_size_KB, debug )
|
|||
local KB_per_read = 8
|
||||
local num_reads = rom_size_KB / KB_per_read
|
||||
local read_count = 0
|
||||
local addr_base = 0x60 -- $6000
|
||||
--local addr_base = 0x60 -- $6000
|
||||
local addr_base = 0x06 -- lower nibble for 4KB
|
||||
|
||||
--debugging reads
|
||||
-- local rv = dict.nes("NES_CPU_RD", 0x600B)
|
||||
-- print("600B:", help.hex(rv))
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x600C)
|
||||
-- print("600C:", help.hex(rv))
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x600D)
|
||||
-- print("600D:", help.hex(rv))
|
||||
|
||||
---[[
|
||||
while ( read_count < num_reads ) do
|
||||
|
||||
--select the RAM bank with $5113 register
|
||||
dict.nes("NES_CPU_WR", 0x5113, read_count) --PRG-RAM bank @ $6000-7FFF (regardless of PRG mode)
|
||||
|
||||
if debug then print( "dump WRAM part ", read_count, " of ", num_reads) end
|
||||
|
||||
dump.dumptofile( file, KB_per_read, addr_base, "NESCPU_PAGE", false )
|
||||
--dump.dumptofile( file, KB_per_read, addr_base, "NESCPU_PAGE", false )
|
||||
dump.dumptofile( file, KB_per_read, addr_base, "NESCPU_4KB_TOGGLE", false )
|
||||
|
||||
read_count = read_count + 1
|
||||
end
|
||||
--]]
|
||||
|
||||
--[[
|
||||
--read 1 Byte at a time from the host side
|
||||
local rv
|
||||
local addr = 0x6000
|
||||
while ( addr < 0x8000 ) do
|
||||
rv = dict.nes("NES_CPU_RD", addr)
|
||||
-- print(help.hex(addr), help.hex(rv))
|
||||
-- file:write(string.char( rv ))
|
||||
help.file_wr_bin(file, rv)
|
||||
addr = addr+1
|
||||
end
|
||||
]]--
|
||||
|
||||
end
|
||||
|
||||
|
||||
--write to the WRAM, assumes the WRAM was enabled/disabled as desired prior to calling
|
||||
local function write_ram(file, ram_size_KB, debug)
|
||||
|
||||
-- init_mapper()
|
||||
|
||||
--test some bytes
|
||||
--wr_prg_flash_byte(0x0000, 0xA5, true)
|
||||
--wr_prg_flash_byte(0x0FFF, 0x5A, true)
|
||||
|
||||
print("\nProgramming PRG-RAM")
|
||||
--initial testing of MMC3 with no specific MMC3 flash firmware functions 6min per 256KByte = 0.7KBps
|
||||
|
||||
|
||||
local base_addr = 0x6000 --writes occur $6000-7FFF
|
||||
local bank_size = 8*1024 --MMC5 8KByte per RAM bank
|
||||
local buff_size = 1 --number of bytes to write at a time
|
||||
local cur_bank = 0
|
||||
local total_banks = ram_size_KB*1024/bank_size
|
||||
|
||||
local byte_num --byte number gets reset for each bank
|
||||
local byte_str, data, readdata
|
||||
local rv
|
||||
local timout
|
||||
|
||||
|
||||
while cur_bank < total_banks do
|
||||
|
||||
if (cur_bank %8 == 0) then
|
||||
print("writting RAM bank: ", cur_bank, " of ", total_banks-1)
|
||||
end
|
||||
|
||||
--write the current bank to the mapper register
|
||||
--DATA writes written to $6000-7FFF
|
||||
dict.nes("NES_CPU_WR", 0x5113, cur_bank) --PRG-RAM bank @ $6000-7FFF (regardless of PRG mode)
|
||||
|
||||
|
||||
--program the entire bank's worth of data
|
||||
|
||||
---[[ This version of the code programs a single byte at a time but doesn't require
|
||||
-- MMC3 specific functions in the firmware
|
||||
--print("This is slow as molasses, but gets the job done")
|
||||
byte_num = 0 --current byte within the bank
|
||||
while byte_num < bank_size do
|
||||
|
||||
--read next byte from the file and convert to binary
|
||||
byte_str = file:read(buff_size)
|
||||
data = string.unpack("B", byte_str, 1)
|
||||
|
||||
--write the data
|
||||
--SLOWEST OPTION: no firmware MMC3 specific functions 100% host flash algo:
|
||||
--wr_prg_flash_byte(base_addr+byte_num, data, false) --0.7KBps
|
||||
|
||||
--need to quickly write the byte after unlocking the PRG-RAM
|
||||
--before the 11.2usec timeout happens
|
||||
rv = dict.nes("MMC5_PRG_RAM_WR", base_addr+byte_num, data) --3.8KBps (5.5x faster than above)
|
||||
|
||||
if (rv == data) then
|
||||
--write succeeded
|
||||
timeout = 0
|
||||
else
|
||||
print("PRG-RAM byte failed to write, retrying")
|
||||
rv = dict.nes("MMC5_PRG_RAM_WR", base_addr+byte_num, data) --3.8KBps (5.5x faster than above)
|
||||
if (rv ~= data) then
|
||||
print("FAILED on RETRY...")
|
||||
end
|
||||
end
|
||||
|
||||
byte_num = byte_num + 1
|
||||
end
|
||||
--]]
|
||||
|
||||
--Have the device write a banks worth of data
|
||||
--FAST! 13sec for 512KB = 39KBps
|
||||
--flash.write_file( file, bank_size/1024, mapname, "PRGROM", false )
|
||||
--flash.write_file( file, bank_size/1024, "NOVAR", "PRGRAM", false )
|
||||
|
||||
cur_bank = cur_bank + 1
|
||||
end
|
||||
|
||||
print("Done Programming PRG-RAM")
|
||||
|
||||
end
|
||||
|
||||
|
||||
--Cart should be in reset state upon calling this function
|
||||
--this function processes all user requests for this specific board/mapper
|
||||
|
|
@ -276,16 +387,31 @@ local function process(process_opts, console_opts)
|
|||
|
||||
--disable write protection, and enable WRAM
|
||||
--for save data safety start by disabling WRAM writes
|
||||
dict.nes("NES_CPU_WR", 0x5102, 0x02) --bits 1&0 must be '01' (ie 0x02) to allow writes to WRAM
|
||||
dict.nes("NES_CPU_WR", 0x5103, 0x01) --bits 1&0 must be '10' (ie 0x01) to allow writes to WRAM
|
||||
-- dict.nes("NES_CPU_WR", 0x5102, 0x02) --bits 1&0 must be '01' (ie 0x02) to allow writes to WRAM
|
||||
-- dict.nes("NES_CPU_WR", 0x5103, 0x01) --bits 1&0 must be '10' (ie 0x01) to allow writes to WRAM
|
||||
|
||||
--test with 1 Byte
|
||||
-- local addr = 0x600C
|
||||
-- local rv = dict.nes("NES_CPU_RD", addr)
|
||||
-- print(help.hex(addr), ":", help.hex(rv))
|
||||
-- dict.nes("NES_CPU_WR", addr, 0xAA)
|
||||
-- rv = dict.nes("NES_CPU_RD", addr)
|
||||
-- print(help.hex(addr), ":", help.hex(rv))
|
||||
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x600C)
|
||||
-- print("600C:", help.hex(rv))
|
||||
-- rv = dict.nes("NES_CPU_RD", 0x600D)
|
||||
-- print("600D:", help.hex(rv))
|
||||
|
||||
file = assert(io.open(ramwritefile, "rb"))
|
||||
|
||||
flash.write_file( file, wram_size, "NOVAR", "PRGRAM", false )
|
||||
write_ram(file, wram_size, true)
|
||||
--flash.write_file( file, wram_size, "NOVAR", "PRGRAM", false )
|
||||
--flash.write_file( file, wram_size, "MMC5", "PRGRAM", false )
|
||||
|
||||
--for save data safety disable WRAM writes
|
||||
dict.nes("NES_CPU_WR", 0x5102, 0x01) --bits 1&0 must be '01' (ie 0x02) to allow writes to WRAM
|
||||
dict.nes("NES_CPU_WR", 0x5103, 0x02) --bits 1&0 must be '10' (ie 0x01) to allow writes to WRAM
|
||||
-- dict.nes("NES_CPU_WR", 0x5102, 0x01) --bits 1&0 must be '01' (ie 0x02) to allow writes to WRAM
|
||||
-- dict.nes("NES_CPU_WR", 0x5103, 0x02) --bits 1&0 must be '10' (ie 0x01) to allow writes to WRAM
|
||||
|
||||
--close file
|
||||
assert(file:close())
|
||||
|
|
|
|||
|
|
@ -1,98 +1,17 @@
|
|||
|
||||
-- create the module's table
|
||||
local genesis_v2 = {}
|
||||
local genesis_v2= {}
|
||||
|
||||
-- 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"
|
||||
|
||||
-- file constants
|
||||
|
||||
-- local functions
|
||||
|
||||
|
||||
-- Desc: attempt to read flash rom ID
|
||||
-- Pre: snes_init() been called to setup i/o
|
||||
-- Post:Address left on bus memories disabled
|
||||
-- Rtn: true if proper flash ID found
|
||||
local function rom_manf_id( debug )
|
||||
|
||||
local rv
|
||||
--enter software mode A11 is highest address bit that needs to be valid
|
||||
--datasheet not exactly explicit, A11 might not need to be valid
|
||||
--part has A-1 (negative 1) since it's in byte mode, meaning the part's A11 is actually A12
|
||||
--exit software mode/reset chip incase locked up
|
||||
dict.sega("SET_ADDR", 0x0555)
|
||||
dict.sega("SEGA_WR", 0x00AA)
|
||||
|
||||
dict.bootload("SET_PTR_HI", 0x4800)
|
||||
dict.bootload("SET_PTR_LO", 0x0000)
|
||||
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0001) --read upper half word of register
|
||||
print("PORT A hi:", string.format("%X", rv))
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0000)
|
||||
print("PORT A lo:", string.format("%X", rv))
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0401) --read upper half word of register
|
||||
print("PORT B hi:", string.format("%X", rv))
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0400)
|
||||
print("PORT B lo:", string.format("%X", rv))
|
||||
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0414) --ODR PORTB
|
||||
print("PORT B ODR:", string.format("%X", rv))
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0014) --ODR PORTA
|
||||
print("PORT A ODR:", string.format("%X", rv))
|
||||
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0410)
|
||||
print("PORT B IDR:", string.format("%X", rv))
|
||||
rv = dict.bootload("RD_PTR_OFFSET", 0x0010)
|
||||
print("PORT A IDR:", string.format("%X", rv))
|
||||
|
||||
|
||||
dict.sega("SET_ADDR", 0x02AA)
|
||||
dict.sega("SEGA_WR", 0x0055)
|
||||
|
||||
dict.sega("SET_ADDR", 0x0555)
|
||||
dict.sega("SEGA_WR", 0x0090)
|
||||
|
||||
-- --WR $AAA:AA $555:55 $AAA:AA
|
||||
-- dict.sega("SNES_SET_BANK", 0x00)
|
||||
--
|
||||
-- dict.sega("SNES_ROM_WR", 0x8AAA, 0xAA)
|
||||
-- dict.sega("SNES_ROM_WR", 0x8555, 0x55)
|
||||
-- dict.sega("SNES_ROM_WR", 0x8AAA, 0x90)
|
||||
|
||||
--read manf ID
|
||||
local manf_id = dict.sega("SEGA_RD", 0x0000) --0x01 Cypress Manf ID
|
||||
-- 0xBF SST Manf ID
|
||||
if debug then print("attempted read SNES ROM manf ID:", string.format("%X", manf_id)) end
|
||||
|
||||
--read prod ID
|
||||
local prod_id = dict.sega("SEGA_RD", 0x0001) --0x7E Prod ID S29GL
|
||||
--SST x16 0x235D or 0x235C product ID
|
||||
if debug then print("attempted read SNES ROM prod ID:", string.format("%X", prod_id)) end
|
||||
|
||||
-- local density_id = dict.sega("SEGA_RD", 0x801C) --density 0x10=8MB 0x1A=4MB
|
||||
-- if debug then print("attempted read SNES density ID: ", string.format("%X", density_id)) end
|
||||
--
|
||||
-- local boot_sect = dict.sega("SEGA_RD", 0x801E) --boot sector 0x00=top 0x01=bottom
|
||||
-- if debug then print("attempted read SNES boot sect ID:", string.format("%X", boot_sect)) end
|
||||
--
|
||||
-- --exit software
|
||||
-- dict.sega("SNES_ROM_WR", 0x8000, 0xF0)
|
||||
--
|
||||
-- --return true if detected flash chip
|
||||
-- if (manf_id == 0x01 and prod_id == 0x49) then
|
||||
-- print("2MB flash detected")
|
||||
-- return true
|
||||
-- elseif (manf_id == 0x01 and prod_id == 0x7E) then
|
||||
-- print("4-8MB flash detected")
|
||||
-- return true
|
||||
-- else
|
||||
-- return false
|
||||
-- end
|
||||
|
||||
end
|
||||
|
||||
local function unsupported(operation)
|
||||
print("\nUNSUPPORTED OPERATION: \"" .. operation .. "\" not implemented yet for Sega Genesis.\n")
|
||||
end
|
||||
|
|
@ -137,7 +56,7 @@ local function dump_rom( file, rom_size_KB, debug )
|
|||
end
|
||||
|
||||
-- Select desired bank.
|
||||
dict.sega("SET_BANK", read_count)
|
||||
dict.sega("GEN_SET_BANK", read_count)
|
||||
|
||||
dump.dumptofile(file, KB_per_bank/2, addr_base, "GENESIS_ROM_PAGE0", debug)
|
||||
dump.dumptofile(file, KB_per_bank/2, addr_base, "GENESIS_ROM_PAGE1", debug)
|
||||
|
|
@ -239,7 +158,7 @@ end
|
|||
|
||||
-- Reads and parses internal ROM header from first page of data.
|
||||
local function read_header()
|
||||
dict.sega("SET_BANK", 0)
|
||||
dict.sega("GEN_SET_BANK", 0)
|
||||
|
||||
local page0_data = ""
|
||||
dump.dumptocallback(
|
||||
|
|
@ -255,49 +174,486 @@ end
|
|||
|
||||
-- Test that cartridge is readable by looking for valid entries in internal header.
|
||||
local function test(genesis_header)
|
||||
local valid = false
|
||||
|
||||
---[[
|
||||
--test some functions
|
||||
--read "SEGA" from the in rom header
|
||||
dict.sega("GEN_SET_BANK", 0)
|
||||
local temp
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0100>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
print(string.char(temp>>8)) --"S"
|
||||
print(string.char(temp&0x00FF)) --"E"
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0102>>1))
|
||||
print(help.hex(temp)) --"GA"
|
||||
print(string.char(temp>>8)) --"G"
|
||||
print(string.char(temp&0x00FF)) --"A"
|
||||
|
||||
--flash manf ID
|
||||
print("flash write")
|
||||
dict.sega("GEN_SET_BANK", 0)
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0090, 0)
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0002>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
|
||||
print("HI write")
|
||||
dict.sega("GEN_WR_HI", 0x5555, 0xAA) --A16-1
|
||||
dict.sega("GEN_WR_HI", 0x2AAA, 0x55) --A16-1
|
||||
dict.sega("GEN_WR_HI", 0x5555, 0x90) --A16-1
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0002>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
|
||||
--exit software mode
|
||||
print("exit software mode")
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00F0, 0)
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
|
||||
|
||||
--write a byte
|
||||
--[[
|
||||
print("write a byte $0000, AAAA")
|
||||
dict.sega("GEN_SET_BANK", 0)
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00A0, 0) --write byte command
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x0000)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0xAAAA, 0) --write data
|
||||
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
local nak = 1
|
||||
while (temp ~= dict.sega("GEN_ROM_RD", (0x0000>>1))) do
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
nak = nak + 1
|
||||
end
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print("FINAL DATA", help.hex(temp)) --"SE"
|
||||
|
||||
local addr = 0x0001
|
||||
local data = 0x5555
|
||||
print("write a byte", addr, data )
|
||||
dict.sega("GEN_SET_BANK", 0)
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00A0, 0) --write byte command
|
||||
|
||||
dict.sega("GEN_SET_ADDR", addr)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", data, 0) --write data
|
||||
|
||||
temp = dict.sega("GEN_ROM_RD", (addr))
|
||||
local nak = 1
|
||||
while (temp ~= dict.sega("GEN_ROM_RD", (addr))) do
|
||||
temp = dict.sega("GEN_ROM_RD", (addr))
|
||||
print(help.hex(temp)) --"SE"
|
||||
nak = nak + 1
|
||||
end
|
||||
temp = dict.sega("GEN_ROM_RD", (addr))
|
||||
print("FINAL DATA", help.hex(temp)) --"SE"
|
||||
--]]
|
||||
|
||||
|
||||
--[[
|
||||
--read ram from wayne gretzky
|
||||
dict.sega("GEN_SET_BANK", 0x20>>1)
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
--print(string.char(temp>>8)) --"S"
|
||||
print(string.char(temp&0x00FF)) --"E"
|
||||
--temp = dict.sega("GEN_ROM_RD", (0x0002>>1))
|
||||
--print(help.hex(temp)) --"GA"
|
||||
----print(string.char(temp>>8)) --"G"
|
||||
--print(string.char(temp&0x00FF)) --"A"
|
||||
|
||||
--dict.sega("GEN_SET_ADDR", 0x0000) --A16-1
|
||||
dict.sega("GEN_WR_LO", 0x0000, 0xAA) --A16-1
|
||||
temp = dict.sega("GEN_ROM_RD", (0x0000>>1))
|
||||
print(help.hex(temp)) --"SE"
|
||||
print(string.char(temp&0x00FF)) --"E"
|
||||
--]]
|
||||
|
||||
|
||||
--local valid = false
|
||||
local valid = true --force good
|
||||
-- Trailing spaces are required! Field length is 16 characters.
|
||||
if genesis_header["console_name"] == "SEGA GENESIS " then valid = true end
|
||||
if genesis_header["console_name"] == "SEGA MEGA DRIVE " then valid = true end
|
||||
return valid
|
||||
end
|
||||
|
||||
|
||||
--dump the SEGA battery RAM starting at the provided bank
|
||||
local function dump_ram( file, start_bank, ram_size_KB, debug )
|
||||
|
||||
local KB_per_bank = 64 --128KByte addressable per bank, but only use lower byte of each 16bit word
|
||||
local addr_base = 0x00 --A15-8 address of ram start
|
||||
|
||||
-- --determine max ram per bank and base address
|
||||
-- if (mapping == lorom_name) then
|
||||
-- KB_per_bank = 32 -- LOROM has 32KB per bank
|
||||
-- addr_base = 0x00 -- $0000 LOROM RAM start address
|
||||
-- elseif (mapping == hirom_name) then
|
||||
-- KB_per_bank = 8 -- HIROM has 8KB per bank
|
||||
-- addr_base = 0x60 -- $6000 HIROM RAM start address
|
||||
-- else
|
||||
-- print("ERROR! mapping:", mapping, "not supported by dump_ram")
|
||||
-- end
|
||||
--
|
||||
local num_banks =1-- = ram_size_KB / KB_per_bank
|
||||
--
|
||||
-- --determine how much ram to read per bank
|
||||
-- if ram_size_KB == nil then ram_size_KB = 0 end
|
||||
-- if (ram_size_KB < KB_per_bank) then
|
||||
-- num_banks = 1
|
||||
-- KB_per_bank = ram_size_KB
|
||||
-- else
|
||||
-- num_banks = ram_size_KB / KB_per_bank
|
||||
-- end
|
||||
--
|
||||
local read_count = 0
|
||||
|
||||
while ( read_count < num_banks ) do
|
||||
|
||||
if debug then print( "dump RAM part ", read_count, " of ", num_banks) end
|
||||
|
||||
--select desired bank
|
||||
--A17-23
|
||||
dict.sega("GEN_SET_BANK", start_bank+read_count)
|
||||
|
||||
-- if (mapping == lorom_name) then --LOROM sram is inside /ROMSEL space
|
||||
-- dump.dumptofile( file, KB_per_bank, addr_base, "SNESROM_PAGE", false )
|
||||
-- else -- HIROM is outside of /ROMSEL space
|
||||
-- dump.dumptofile( file, KB_per_bank, addr_base, "SNESSYS_PAGE", false )
|
||||
-- end
|
||||
--
|
||||
--currently don't have means of dumping RAM with A16 high
|
||||
--dump.dumptofile(file, KB_per_bank/2, addr_base, "GENESIS_RAM_PAGE", debug) --A16 low
|
||||
dump.dumptofile(file, 8, addr_base, "GENESIS_RAM_PAGE", debug) --A16 low
|
||||
-- dump.dumptofile(file, KB_per_bank/2, addr_base, "GENESIS_ROM_PAGE1", debug) --A16 high
|
||||
|
||||
read_count = read_count + 1
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--write to the WRAM, assumes the WRAM was enabled/disabled as desired prior to calling
|
||||
local function write_ram(file, ram_size_KB, debug)
|
||||
|
||||
-- init_mapper()
|
||||
|
||||
--test some bytes
|
||||
--wr_prg_flash_byte(0x0000, 0xA5, true)
|
||||
--wr_prg_flash_byte(0x0FFF, 0x5A, true)
|
||||
|
||||
print("\nProgramming battery SRAM")
|
||||
--initial testing of MMC3 with no specific MMC3 flash firmware functions 6min per 256KByte = 0.7KBps
|
||||
|
||||
|
||||
local base_addr = 0x0000 --writes occur $6000-7FFF
|
||||
local bank_size = 8*1024 --8KByte RAM chip
|
||||
local buff_size = 1 --number of bytes to write at a time
|
||||
local cur_bank = 0
|
||||
-- local total_banks = ram_size_KB*1024/bank_size
|
||||
|
||||
local byte_num --byte number gets reset for each bank
|
||||
local byte_str, data, readdata
|
||||
local rv
|
||||
local timout
|
||||
|
||||
|
||||
--while cur_bank < total_banks do
|
||||
|
||||
-- if (cur_bank %8 == 0) then
|
||||
-- print("writting RAM bank: ", cur_bank, " of ", total_banks-1)
|
||||
-- end
|
||||
|
||||
--write the current bank to the mapper register
|
||||
--DATA writes written to $6000-7FFF
|
||||
-- dict.nes("NES_CPU_WR", 0x5113, cur_bank) --PRG-RAM bank @ $6000-7FFF (regardless of PRG mode)
|
||||
dict.sega("GEN_SET_BANK", (0x20>>1))
|
||||
|
||||
|
||||
--program the entire bank's worth of data
|
||||
|
||||
---[[ This version of the code programs a single byte at a time but doesn't require
|
||||
-- MMC3 specific functions in the firmware
|
||||
--print("This is slow as molasses, but gets the job done")
|
||||
byte_num = 0 --current byte within the bank
|
||||
while byte_num < bank_size do
|
||||
|
||||
--read next byte from the file and convert to binary
|
||||
byte_str = file:read(buff_size)
|
||||
data = string.unpack("B", byte_str, 1)
|
||||
|
||||
--write the data
|
||||
--SLOWEST OPTION: no firmware MMC3 specific functions 100% host flash algo:
|
||||
--wr_prg_flash_byte(base_addr+byte_num, data, false) --0.7KBps
|
||||
|
||||
--need to quickly write the byte after unlocking the PRG-RAM
|
||||
--before the 11.2usec timeout happens
|
||||
rv = dict.sega("GEN_WR_LO", base_addr+byte_num, data)
|
||||
|
||||
--if (rv == data) then
|
||||
-- --write succeeded
|
||||
-- timeout = 0
|
||||
--else
|
||||
-- print("PRG-RAM byte failed to write, retrying")
|
||||
-- rv = dict.nes("MMC5_PRG_RAM_WR", base_addr+byte_num, data) --3.8KBps (5.5x faster than above)
|
||||
-- if (rv ~= data) then
|
||||
-- print("FAILED on RETRY...")
|
||||
-- end
|
||||
--end
|
||||
|
||||
byte_num = byte_num + 1
|
||||
end
|
||||
--]]
|
||||
|
||||
--Have the device write a banks worth of data
|
||||
--FAST! 13sec for 512KB = 39KBps
|
||||
--flash.write_file( file, bank_size/1024, mapname, "PRGROM", false )
|
||||
--flash.write_file( file, bank_size/1024, "NOVAR", "PRGRAM", false )
|
||||
|
||||
-- cur_bank = cur_bank + 1
|
||||
-- end
|
||||
|
||||
print("Done Programming SAVE RAM")
|
||||
|
||||
end
|
||||
|
||||
--write a single byte to SNES ROM flash
|
||||
--writes to currently selected bank address
|
||||
local function wr_flash_byte(addr, value, debug)
|
||||
|
||||
if (addr < 0x0000 or addr > 0xFFFF) then
|
||||
print("\n ERROR! flash write to SEGA GENESIS", string.format("$%X", addr), "must be $0000-FFFF \n\n")
|
||||
return
|
||||
end
|
||||
|
||||
--send unlock command and write byte
|
||||
--dict.snes("SNES_ROM_WR", 0x8AAA, 0xAA)
|
||||
--dict.snes("SNES_ROM_WR", 0x8555, 0x55)
|
||||
--dict.snes("SNES_ROM_WR", 0x8AAA, 0xA0)
|
||||
--dict.snes("SNES_ROM_WR", addr, value)
|
||||
|
||||
if debug then print("write a byte", help.hex(addr), help.hex(value) ) end
|
||||
--dict.sega("GEN_SET_BANK", 0)
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00A0, 0) --write byte command
|
||||
|
||||
dict.sega("GEN_SET_ADDR", addr)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", value, 0) --write value
|
||||
|
||||
-- temp = dict.sega("GEN_ROM_RD", (addr))
|
||||
-- local nak = 1
|
||||
-- while (temp ~= dict.sega("GEN_ROM_RD", (addr))) do
|
||||
-- temp = dict.sega("GEN_ROM_RD", (addr))
|
||||
-- print(help.hex(temp)) --"SE"
|
||||
-- nak = nak + 1
|
||||
-- end
|
||||
-- temp = dict.sega("GEN_ROM_RD", (addr))
|
||||
-- print("FINAL DATA", help.hex(temp)) --"SE"
|
||||
|
||||
local rv = dict.sega("GEN_ROM_RD", (addr))
|
||||
|
||||
local i = 0
|
||||
|
||||
while ( rv ~= value ) do
|
||||
rv = dict.sega("GEN_ROM_RD", (addr))
|
||||
--if debug then print("post write read:", help.hex(rv)) end
|
||||
i = i + 1
|
||||
if i > 20 then
|
||||
print("failed write, tried:", string.format("%X",value), "read back value:", string.format("%X",rv))
|
||||
return
|
||||
end
|
||||
end
|
||||
if debug then print(i, "naks, done writing byte.") end
|
||||
if debug then print("written value:", string.format("%X",value), "verified value:", string.format("%X",rv)) end
|
||||
|
||||
--TODO handle timeout for problems
|
||||
|
||||
--TODO return pass/fail/info
|
||||
end
|
||||
|
||||
|
||||
local function flash_rom(file, rom_size_KB, debug)
|
||||
|
||||
print("\nProgramming ROM flash")
|
||||
|
||||
--test some bytes
|
||||
-- dict.sega("GEN_SET_BANK", 0x00) wr_flash_byte(0x0000, 0xAAAA, true) wr_flash_byte(0x0001, 0x5555, true)
|
||||
-- dict.sega("GEN_SET_BANK", 0x00) wr_flash_byte(0x0002, 0x0000, true) wr_flash_byte(0x0003, 0xC3C3, true)
|
||||
-- dict.sega("GEN_SET_BANK", 0x00) wr_flash_byte(0x0004, 0xDEAD, true) wr_flash_byte(0x0005, 0xBEEF, true)
|
||||
-- dict.sega("GEN_SET_BANK", 0x00) wr_flash_byte(0x0006, 0x3333, true) wr_flash_byte(0x0007, 0xCCCC, true)
|
||||
-- --last of 512KB
|
||||
-- if true then return end
|
||||
|
||||
--most of this is overkill for NROM, but it's how we want to handle things for bigger mappers
|
||||
local base_addr = 0x0000
|
||||
local bank_size = 2*64*1024 --2Bytes per address, 64K addresses
|
||||
local buff_size = 1 --number of bytes to read from file at a time
|
||||
local cur_bank = 0
|
||||
|
||||
-- if (mapping==lorom_name) then
|
||||
-- base_addr = 0x8000 --writes occur $8000-FFFF
|
||||
-- bank_size = 32*1024 --SNES LOROM 32KB per ROM bank
|
||||
-- elseif (mapping==hirom_name) then
|
||||
-- base_addr = 0x0000 --writes occur $0000-FFFF
|
||||
-- bank_size = 64*1024 --SNES HIROM 64KB per ROM bank
|
||||
-- else
|
||||
-- print("ERROR!! mapping:", mapping, "not supported")
|
||||
-- end
|
||||
|
||||
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 %4 == 0) then
|
||||
print("writting ROM bank: ", cur_bank, " of ", total_banks-1)
|
||||
end
|
||||
|
||||
--select the current bank
|
||||
if (cur_bank <= 0x7F) then
|
||||
--dict.sega("GEN_SET_BANK", (cur_bank>>1)) --genesis bank is off by 1 due to lack of A0
|
||||
dict.sega("GEN_SET_BANK", (cur_bank)) --Don't think that's acutally true this bank is true INLretro bank
|
||||
else
|
||||
print("\n\nERROR!!!! SEGA bank cannot exceed 0x7F, it was:", string.format("0x%X",cur_bank))
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
--program the entire bank's worth of data
|
||||
|
||||
---[[ This version of the code programs a single byte at a time but doesn't require
|
||||
-- board specific functions in the firmware
|
||||
print("This is slow as molasses, but gets the job done")
|
||||
|
||||
--SET ADDR so FLASH_WR_ADDROFF works
|
||||
dict.sega("GEN_SET_ADDR", 0xFFFF)
|
||||
|
||||
byte_num = 0 --current byte within the bank
|
||||
while byte_num < bank_size do
|
||||
|
||||
--read next byte from the file and convert to binary
|
||||
byte_str = file:read(buff_size) --high byte
|
||||
data = string.unpack("B", byte_str, 1)
|
||||
--print(help.hex(data))
|
||||
data = data<<8
|
||||
--print(help.hex(data))
|
||||
byte_str = file:read(buff_size) --low byte
|
||||
data = data + string.unpack("B", byte_str, 1)
|
||||
--print(help.hex(data))
|
||||
|
||||
--write the data
|
||||
--SLOWEST OPTION: no firmware specific functions 100% host flash algo:
|
||||
--wr_flash_byte(((base_addr+byte_num)>>1), data, false) --0.7KBps
|
||||
--EASIEST FIRMWARE SPEEDUP: 5x faster, create firmware write byte function:
|
||||
dict.sega("GEN_SST_FLASH_WR_ADDROFF", data, 1)
|
||||
|
||||
--if (verify) then
|
||||
-- readdata = dict.nes("NES_CPU_RD", base_addr+byte_num)
|
||||
-- if readdata ~= data then
|
||||
-- print("ERROR flashing byte number", byte_num, " in bank",cur_bank, " to flash ", data, readdata)
|
||||
-- end
|
||||
--end
|
||||
|
||||
byte_num = byte_num + 2 --2 Bytes per write
|
||||
end
|
||||
--]]
|
||||
|
||||
--Have the device write a banks worth of data
|
||||
-- if (mapping == lorom_name) then
|
||||
-- flash.write_file( file, bank_size/1024, "LOROM_3VOLT", "SNESROM", false )
|
||||
-- else
|
||||
-- flash.write_file( file, bank_size/1024, "HIROM_3VOLT", "SNESROM", false )
|
||||
-- end
|
||||
|
||||
--flash.write_file( file, bank_size/1024, "HIROM_3VOLT", "GENESISROM", false )
|
||||
--TODO define different flash part types
|
||||
--flash.write_file( file, bank_size/1024, 0, "GENESISROM", false )
|
||||
|
||||
cur_bank = cur_bank + 1
|
||||
end
|
||||
|
||||
print("Done Programming 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(process_opts, console_opts)
|
||||
local file
|
||||
|
||||
-- Use specified ram size if provided, otherwise autodetect.
|
||||
local ram_size = console_opts["wram_size_kb"]
|
||||
local ramdumpfile = process_opts["dumpram_filename"]
|
||||
--local flashfile = process_opts["flash_filename"]
|
||||
local flashfile = process_opts["flash_filename"]
|
||||
local verifyfile = process_opts["verify_filename"]
|
||||
local rom_size = console_opts["rom_size_kbyte"]
|
||||
|
||||
-- Initialize device i/o for SEGA
|
||||
dict.io("IO_RESET")
|
||||
dict.io("SEGA_INIT")
|
||||
-- local genesis_header = read_header()
|
||||
local genesis_header = read_header()
|
||||
|
||||
if process_opts["test"] then
|
||||
-- If garbage data is in the header, it's a waste of time trying to proceed doing anything else.
|
||||
-- local valid_header = test(genesis_header)
|
||||
-- if valid_header ~= true then print("Unreadable cartridge - exiting! (Try cleaning cartridge connector?)") end
|
||||
-- assert(valid_header)
|
||||
-- print_header(genesis_header)
|
||||
|
||||
print("geny flash cart test")
|
||||
dict.sega("SET_BANK", 0)
|
||||
print(dict.sega("SEGA_RD", 0x0120))
|
||||
print(dict.sega("SEGA_RD", 0x0122))
|
||||
print(dict.sega("SEGA_RD", 0x0124))
|
||||
print(dict.sega("SEGA_RD", 0x0090)) --read "SONIC" from 0x0120 >> 1
|
||||
print(dict.sega("SEGA_RD", 0x0091))
|
||||
print(dict.sega("SEGA_RD", 0x0092))
|
||||
|
||||
|
||||
--dict.sega("SET_ADDR", 0)
|
||||
|
||||
rom_manf_id(true)
|
||||
|
||||
local valid_header = test(genesis_header)
|
||||
if valid_header ~= true then print("Unreadable cartridge - exiting! (Try cleaning cartridge connector?)") end
|
||||
assert(valid_header)
|
||||
print_header(genesis_header)
|
||||
end
|
||||
|
||||
-- TODO: dump the ram to file
|
||||
if dumpram then
|
||||
unsupported("dumpram")
|
||||
if process_opts["dumpram"] then
|
||||
--unsupported("dumpram")
|
||||
print("dumping save RAM")
|
||||
|
||||
|
||||
file = assert(io.open(ramdumpfile, "wb"))
|
||||
|
||||
--dump cart into file
|
||||
local rambank = (0x20>>1) --A17-23 wayne gretsky RAM starts at bank $20>>1
|
||||
|
||||
dump_ram(file, rambank, ram_size, true)
|
||||
|
||||
--may disable SRAM by placing /RESET low
|
||||
|
||||
--close file
|
||||
assert(file:close())
|
||||
|
||||
print("DONE Dumping SAVE RAM")
|
||||
end
|
||||
|
||||
-- Dump the cart to dumpfile.
|
||||
|
|
@ -328,19 +684,70 @@ local function process(process_opts, console_opts)
|
|||
end
|
||||
end
|
||||
|
||||
-- TODO: erase the cart
|
||||
if process_opts["erase"] then
|
||||
unsupported("erase")
|
||||
-- unsupported("erase")
|
||||
--erase the cart
|
||||
print("erasing SST flash cart")
|
||||
dict.sega("GEN_SET_BANK", 0)
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0)
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0080, 0) --ERASE
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x00AA, 0) --ERASE
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x2AAA)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0055, 0) --ERASE
|
||||
|
||||
dict.sega("GEN_SET_ADDR", 0x5555)
|
||||
dict.sega("GEN_FLASH_WR_ADDROFF", 0x0010, 0) --ERASE
|
||||
|
||||
|
||||
temp = dict.sega("GEN_ROM_RD", (0))
|
||||
local nak = 1
|
||||
while (temp ~= dict.sega("GEN_ROM_RD", (0))) do
|
||||
temp = dict.sega("GEN_ROM_RD", (0))
|
||||
--print(help.hex(temp)) --"SE"
|
||||
nak = nak + 1
|
||||
end
|
||||
temp = dict.sega("GEN_ROM_RD", (0))
|
||||
print("DONE ERASING, FINAL DATA", help.hex(temp)) --"SE"
|
||||
end
|
||||
|
||||
-- TODO: write to wram on the cart
|
||||
if writeram then
|
||||
unsupported("writeram")
|
||||
--if writeram then
|
||||
if process_opts["writeram"] then
|
||||
--unsupported("writeram")
|
||||
print("\nWritting to WRAM...")
|
||||
|
||||
file = assert(io.open(process_opts["writeram_filename"], "rb"))
|
||||
--write_ram(file, ram_size_KB, debug)
|
||||
write_ram(file, ram_size, true)
|
||||
|
||||
assert(file:close())
|
||||
|
||||
print("DONE Writting WRAM")
|
||||
end
|
||||
|
||||
-- TODO: program flashfile to the cart
|
||||
if process_opts["program"] then
|
||||
unsupported("program")
|
||||
--unsupported("program")
|
||||
|
||||
--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
|
||||
|
||||
-- TODO: verify flashfile is on the cart
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@
|
|||
#define PRGRAM 0x12
|
||||
#define SNESROM 0x13
|
||||
#define SNESRAM 0x14
|
||||
#define GENESISROM 0x15
|
||||
|
||||
//Read specific sections of memory map
|
||||
// 4KB/1KB naming designates the granularity of the starting address
|
||||
|
|
@ -130,6 +131,7 @@
|
|||
|
||||
#define NESPPU_1KB_TOGGLE 0x31 //similar to PPU page read but /RD signal toggles with each read
|
||||
#define NESCPU_4KB_TOGGLE 0x32 //similar to CPU page read but M2 toggles with each read
|
||||
#define GENESIS_RAM_PAGE 0x33 //bank address A17-23 must have been latched already
|
||||
|
||||
//operand LSB
|
||||
//SST 39SF0x0 manf/prod IDs
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@
|
|||
//being used to write to 3v tssop flash
|
||||
#define MMC3S_PRG_FLASH_WR 0x26 //TODO set return lengths for all these functions
|
||||
|
||||
|
||||
//=============================================================================================
|
||||
// OPCODES WITH OPERAND AND RETURN VALUE plus SUCCESS/ERROR_CODE
|
||||
//=============================================================================================
|
||||
|
|
@ -110,4 +111,7 @@
|
|||
#define GET_BANK_TABLE 0x86 //RL=4 16bit value so 2 bytes need returned
|
||||
#define GET_NUM_PRG_BANKS 0x87 //RL=3
|
||||
|
||||
#define MMC5_PRG_RAM_WR 0x88 //RL=3 Enable writting to PRG-RAM and then write a single byte
|
||||
//after written read back for verification as a timeout would cause fail
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -17,12 +17,23 @@
|
|||
//=============================================================================================
|
||||
|
||||
//TODO THESE ARE JUST PLACE HOLDERS...
|
||||
#define SEGA_RD 0 //RL=3 return error code, data len = 1, 1 byte of data
|
||||
#define SEGA_WR 1
|
||||
//oper=A1-15 update firmware address variable for FLASH_WR_ADDROFF use on subsequent calls
|
||||
#define GEN_SET_ADDR 0
|
||||
//oper=A1-A16 C_CE & C_OE go low (update firmware address var ie GEN_SET_ADDR)
|
||||
#define GEN_ROM_RD 1 //RL=4 return error code, data len = 1, 2 byte of data (16bit word)
|
||||
|
||||
// GENESIS ADDR A17-23 along with #LO_MEM & #TIME
|
||||
// TODO separate #LO_MEM & #TIME, they're currently fixed high
|
||||
#define SET_BANK 2
|
||||
#define GEN_SET_BANK 2
|
||||
|
||||
//miscdata=D0-7, oper=A1-A16 C_CE & C_OE go low, #LDSW goes low (update firmware address var ie GEN_SET_ADDR)
|
||||
#define GEN_WR_LO 3
|
||||
//miscdata=D8-15, oper=A1-A16 C_CE & C_OE go low, #UDSW goes low (update firmware address var ie GEN_SET_ADDR)
|
||||
#define GEN_WR_HI 4
|
||||
//oper=D0-D15, miscdata=addroffset C_CE & C_OE go low, #UDSW goes low (update firmware address var ie GEN_SET_ADDR)
|
||||
#define GEN_FLASH_WR_ADDROFF 5
|
||||
|
||||
|
||||
#define GEN_SST_FLASH_WR_ADDROFF 6
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue