Have the USB code effectively separated from the main application code!

Need to physically separate them now.  Then can focus on erasing &
flashing ourselves.

Added some speed checks to bnrom.lua script that I was testing usb code
with.  Was able to verify read/write speeds were no affected by changes
in this commit.  Did some testing against older firmware v2.2 though
there does seem to have been a slight slow down on write speeds.
Although, perhaps that's because of the nrom flash verifications that
are also included in this build (but not commited)..?
This commit is contained in:
Paul XPS 2018-11-27 23:26:26 -06:00
parent d0c8ab82fe
commit e3d0ec434e
12 changed files with 1787 additions and 1655 deletions

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
Archive member included to satisfy reference by file (symbol)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o (__aeabi_unwind_cpp_pr0)
C:\Users\paul\AppData\Local\Temp\cci1eGxe.o (__aeabi_unwind_cpp_pr0)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(libunwind.o)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o) (restore_core_regs)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
@ -49,24 +49,21 @@ c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o) (_exit)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o (__gnu_thumb1_case_uqi)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_shi.o)
C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o (__gnu_thumb1_case_shi)
C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o (__gnu_thumb1_case_shi)
c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o (__gnu_thumb1_case_uhi)
Allocating common symbols
Common symbol size file
errno 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
addrh 0x4 source/bootload.o (symbol from plugin)
incoming_bytes_remain
0x1 source/buffer.o (symbol from plugin)
pbje_cmd_update_flag
0x1 source/jtag.o (symbol from plugin)
raw_bank_status 0x10 source/buffer.o (symbol from plugin)
raw_buffer16 0x200 source/buffer.o (symbol from plugin)
cur_usb_load_buff 0x4 source/buffer.o (symbol from plugin)
Discarded input sections
@ -89,23 +86,23 @@ Discarded input sections
.ARM.exidx 0x00000000 0x8 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.ARM.attributes
0x00000000 0x1b c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.text 0x00000000 0x0 source/bootload.o (symbol from plugin)
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.rodata.oper_info
0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.rodata.usb_buff
0x00000000 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.text 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.text 0x00000000 0x0 source/buffer.o (symbol from plugin)
.text 0x00000000 0x0 source/ciccom.o (symbol from plugin)
.text 0x00000000 0x0 source/dump.o (symbol from plugin)
@ -125,12 +122,12 @@ Discarded input sections
.text 0x00000000 0x0 source/usb.o (symbol from plugin)
.text 0x00000000 0x0 source_stm_only/stm_init.o (symbol from plugin)
.text 0x00000000 0x0 source_stm_only/usbstm.o (symbol from plugin)
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.data 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.bss 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.ARM.extab 0x00000000 0x0 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.data 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.bss 0x00000000 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.debug_frame 0x00000000 0x2c4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
@ -367,12 +364,12 @@ Linker script and memory map
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crti.o
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtbegin.o
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/crt0.o
LOAD C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
LOAD C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
LOAD source/bootload.o
LOAD C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
LOAD C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
LOAD source/buffer.o
LOAD source/ciccom.o
LOAD source/dump.o
@ -392,8 +389,8 @@ LOAD source/swim.o
LOAD source/usb.o
LOAD source_stm_only/stm_init.o
LOAD source_stm_only/usbstm.o
LOAD C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
LOAD C:\Users\paul\AppData\Local\Temp\cc2herkl.o
LOAD C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
LOAD C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
START GROUP
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a
@ -407,12 +404,12 @@ END GROUP
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtend.o
LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtn.o
.text 0x08000000 0x4c9c
.text 0x08000000 0x4c6c
*(.isr_vector)
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.isr_vector 0x08000000 0xc0 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
0x08000000 __isr_vector
*(.text*)
.text 0x080000c0 0x40 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.text 0x080000c0 0x40 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
0x080000c0 Reset_Handler
0x080000fc TSC_IRQHandler
0x080000fc ADC1_COMP_IRQHandler
@ -451,214 +448,216 @@ LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-
0x080000fc FLASH_IRQHandler
0x080000fc USART1_IRQHandler
0x080000fc TIM1_BRK_UP_TRG_COM_IRQHandler
.text.USB_IRQHandler
0x08000100 0x1ac0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x08000100 USB_IRQHandler
.text.nes_cpu_wr
0x08001bc0 0x6c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001bc0 nes_cpu_wr
.text.nes_cpu_rd
0x08001c2c 0x40 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001c2c nes_cpu_rd
.text.disc_push_exp0_prgrom_wr
0x08001c6c 0x48 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001c6c disc_push_exp0_prgrom_wr
.text 0x08000100 0x17f0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x08000100 usbFunctionSetup
.text.pbje_scan
0x08001cb4 0x12c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x080018f0 0x12c C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.text.pbje_state_change
0x08001de0 0x98 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001a1c 0x98 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.text.write_page
0x08001e78 0x34 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001ab4 0x34 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.text.get_next_buff
0x08001eac 0x54 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.text.nes_ppu_wr
0x08001f00 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001f00 nes_ppu_wr
.text.nes_ppu_rd
0x08001f50 0x38 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001f50 nes_ppu_rd
0x08001ae8 0x54 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.text.discrete_exp0_prgrom_wr
0x08001f88 0x58 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001f88 discrete_exp0_prgrom_wr
0x08001b3c 0x58 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
0x08001b3c discrete_exp0_prgrom_wr
.text.jtag_init_pbje
0x08001fe0 0xe0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08001fe0 jtag_init_pbje
0x08001b94 0xe0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
0x08001b94 jtag_init_pbje
.text.jtag_run_pbje.part.0
0x080020c0 0xd8 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x080020c0 jtag_run_pbje.part.0
0x08001c74 0xd8 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
0x08001c74 jtag_run_pbje.part.0
.text.io_reset
0x08002198 0x154 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x08002198 io_reset
0x08001d4c 0x154 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
0x08001d4c io_reset
.text.startup.main
0x080022ec 0xb8c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x080022ec main
0x08001ea0 0xb00 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
0x08001ea0 main
.text.append_pairity
0x08002e78 0x1e C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
*fill* 0x08002e96 0x2
.text.snes_wr 0x08002e98 0x60 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08002e98 snes_wr
.text.snes_rd 0x08002ef8 0x48 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08002ef8 snes_rd
0x080029a0 0x1e C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
*fill* 0x080029be 0x2
.text.snes_wr 0x080029c0 0x60 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x080029c0 snes_wr
.text.snes_rd 0x08002a20 0x48 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002a20 snes_rd
.text.snes_3v_flash_wr
0x08002f40 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08002f40 snes_3v_flash_wr
0x08002a68 0x50 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002a68 snes_3v_flash_wr
.text.snes_5v_flash_wr
0x08002f90 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08002f90 snes_5v_flash_wr
.text.mmc3_chrrom_flash_wr
0x08002fe0 0x44 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08002fe0 mmc3_chrrom_flash_wr
.text.nrom_chrrom_flash_wr
0x08003024 0x44 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003024 nrom_chrrom_flash_wr
.text.cdream_chrrom_flash_wr
0x08003068 0x88 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003068 cdream_chrrom_flash_wr
.text.mmc4_chrrom_flash_wr
0x080030f0 0x74 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x080030f0 mmc4_chrrom_flash_wr
.text.cnrom_chrrom_flash_wr
0x08003164 0x80 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003164 cnrom_chrrom_flash_wr
.text.mmc4_prgrom_sop_flash_wr
0x080031e4 0x54 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x080031e4 mmc4_prgrom_sop_flash_wr
.text.mmc3_prgrom_flash_wr
0x08003238 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003238 mmc3_prgrom_flash_wr
.text.unrom_prgrom_flash_wr
0x08003288 0x64 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003288 unrom_prgrom_flash_wr
.text.mmc1_chrrom_flash_wr
0x080032ec 0x60 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x080032ec mmc1_chrrom_flash_wr
.text.mmc1_prgrom_flash_wr
0x0800334c 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x0800334c mmc1_prgrom_flash_wr
.text.control_xfr_in.lto_priv.38
0x0800339c 0xd8 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x0800339c control_xfr_in.lto_priv.38
.text.HardFault_Handler
0x08003474 0x2 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003474 HardFault_Handler
*fill* 0x08003476 0x2
0x08002ab8 0x50 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002ab8 snes_5v_flash_wr
.text.nes_cpu_wr
0x08002b08 0x6c C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002b08 nes_cpu_wr
.text.swim_wotf
0x08003478 0xb4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003478 swim_wotf
0x08002b74 0xb4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002b74 swim_wotf
.text.swim_rotf
0x0800352c 0xac C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x0800352c swim_rotf
0x08002c28 0xac C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002c28 swim_rotf
.text.delay_us
0x080035d8 0x16 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x080035d8 delay_us
*fill* 0x080035ee 0x2
.text.nrom_prgrom_flash_wr
0x080035f0 0x44 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x080035f0 nrom_prgrom_flash_wr
0x08002cd4 0x16 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002cd4 delay_us
*fill* 0x08002cea 0x2
.text.nes_dualport_wr
0x08003634 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003634 nes_dualport_wr
0x08002cec 0x50 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002cec nes_dualport_wr
.text.nes_dualport_rd
0x08003684 0x38 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x08003684 nes_dualport_rd
.text.write_page_snes.constprop.33
0x080036bc 0x194 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x080036bc write_page_snes.constprop.33
.text.snes_page_rd_poll.constprop.24
0x08003850 0x7c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x08003850 snes_page_rd_poll.constprop.24
.text.nes_cpu_page_rd_poll.constprop.23
0x080038cc 0x6c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x080038cc nes_cpu_page_rd_poll.constprop.23
.text.nes_ppu_page_rd_poll.constprop.21
0x08003938 0x68 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x08003938 nes_ppu_page_rd_poll.constprop.21
.text.mmc1_wr.constprop.12
0x080039a0 0x22 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x080039a0 mmc1_wr.constprop.12
*fill* 0x080039c2 0x2
.text 0x080039c4 0x4 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
0x080039c4 jump2addr
*fill* 0x080039c8 0x8
.text 0x080039d0 0x154 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
0x080039d0 swim_xfr
.text 0x08003b24 0xa38 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
0x08003df4 _Unwind_GetCFA
0x08003df8 __gnu_Unwind_RaiseException
0x08003e4c __gnu_Unwind_ForcedUnwind
0x08003e60 __gnu_Unwind_Resume
0x08003ea8 __gnu_Unwind_Resume_or_Rethrow
0x08003ec4 _Unwind_Complete
0x08003ec8 _Unwind_DeleteException
0x08003ed8 _Unwind_VRS_Get
0x08003f24 _Unwind_VRS_Set
0x08003f70 __gnu_Unwind_Backtrace
0x080042d0 __aeabi_unwind_cpp_pr0
0x080042dc __aeabi_unwind_cpp_pr1
0x080042e8 __aeabi_unwind_cpp_pr2
0x080042f4 _Unwind_VRS_Pop
.text 0x0800455c 0x144 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(libunwind.o)
0x0800455c __restore_core_regs
0x0800455c restore_core_regs
0x08004588 __gnu_Unwind_Restore_VFP
0x0800458c __gnu_Unwind_Save_VFP
0x08004590 __gnu_Unwind_Restore_VFP_D
0x08004594 __gnu_Unwind_Save_VFP_D
0x08004598 __gnu_Unwind_Restore_VFP_D_16_to_31
0x0800459c __gnu_Unwind_Save_VFP_D_16_to_31
0x080045a0 __gnu_Unwind_Restore_WMMXD
0x080045a4 __gnu_Unwind_Save_WMMXD
0x080045a8 __gnu_Unwind_Restore_WMMXC
0x080045ac __gnu_Unwind_Save_WMMXC
0x080045b0 ___Unwind_RaiseException
0x080045b0 _Unwind_RaiseException
0x080045e0 _Unwind_Resume
0x080045e0 ___Unwind_Resume
0x08004610 _Unwind_Resume_or_Rethrow
0x08004610 ___Unwind_Resume_or_Rethrow
0x08004640 _Unwind_ForcedUnwind
0x08004640 ___Unwind_ForcedUnwind
0x08004670 ___Unwind_Backtrace
0x08004670 _Unwind_Backtrace
.text 0x080046a0 0x3a8 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
0x080046f4 __gnu_unwind_execute
0x080049f0 __gnu_unwind_frame
0x08004a18 _Unwind_GetRegionStart
0x08004a24 _Unwind_GetLanguageSpecificData
0x08004a38 _Unwind_GetTextRelBase
0x08004a40 _Unwind_GetDataRelBase
.text.abort 0x08004a48 0x10 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
0x08004a48 abort
.text.memcpy 0x08004a58 0x84 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
0x08004a58 memcpy
0x08002d3c 0x38 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002d3c nes_dualport_rd
.text.nes_ppu_wr
0x08002d74 0x50 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002d74 nes_ppu_wr
.text.nes_ppu_rd
0x08002dc4 0x38 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002dc4 nes_ppu_rd
.text.cdream_chrrom_flash_wr
0x08002dfc 0x88 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002dfc cdream_chrrom_flash_wr
.text.mmc4_chrrom_flash_wr
0x08002e84 0x74 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002e84 mmc4_chrrom_flash_wr
.text.mmc3_chrrom_flash_wr
0x08002ef8 0x44 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002ef8 mmc3_chrrom_flash_wr
.text.cnrom_chrrom_flash_wr
0x08002f3c 0x80 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002f3c cnrom_chrrom_flash_wr
.text.mmc1_chrrom_flash_wr
0x08002fbc 0x60 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08002fbc mmc1_chrrom_flash_wr
.text.nrom_chrrom_flash_wr
0x0800301c 0x44 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x0800301c nrom_chrrom_flash_wr
.text.nes_cpu_rd
0x08003060 0x40 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08003060 nes_cpu_rd
.text.mmc4_prgrom_sop_flash_wr
0x080030a0 0x54 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x080030a0 mmc4_prgrom_sop_flash_wr
.text.mmc3_prgrom_flash_wr
0x080030f4 0x50 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x080030f4 mmc3_prgrom_flash_wr
.text.unrom_prgrom_flash_wr
0x08003144 0x64 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x08003144 unrom_prgrom_flash_wr
.text.mmc1_prgrom_flash_wr
0x080031a8 0x50 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x080031a8 mmc1_prgrom_flash_wr
.text.nrom_prgrom_flash_wr
0x080031f8 0x44 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x080031f8 nrom_prgrom_flash_wr
.text.disc_push_exp0_prgrom_wr
0x0800323c 0x48 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x0800323c disc_push_exp0_prgrom_wr
.text 0x08003284 0x48 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x08003284 usbFunctionWrite
.text.control_xfr_in
0x080032cc 0xd8 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.text.write_page_snes.constprop.31
0x080033a4 0x194 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x080033a4 write_page_snes.constprop.31
.text.snes_page_rd_poll.constprop.22
0x08003538 0x7c C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x08003538 snes_page_rd_poll.constprop.22
.text.nes_cpu_page_rd_poll.constprop.21
0x080035b4 0x6c C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x080035b4 nes_cpu_page_rd_poll.constprop.21
.text.nes_ppu_page_rd_poll.constprop.19
0x08003620 0x68 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x08003620 nes_ppu_page_rd_poll.constprop.19
.text.mmc1_wr.constprop.10
0x08003688 0x22 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x08003688 mmc1_wr.constprop.10
*fill* 0x080036aa 0x2
.text.USB_IRQHandler
0x080036ac 0x2ec C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x080036ac USB_IRQHandler
.text.HardFault_Handler
0x08003998 0x2 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x08003998 HardFault_Handler
*fill* 0x0800399a 0x2
.text 0x0800399c 0x4 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
0x0800399c jump2addr
.text 0x080039a0 0x154 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
0x080039a0 swim_xfr
.text 0x08003af4 0xa38 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
0x08003dc4 _Unwind_GetCFA
0x08003dc8 __gnu_Unwind_RaiseException
0x08003e1c __gnu_Unwind_ForcedUnwind
0x08003e30 __gnu_Unwind_Resume
0x08003e78 __gnu_Unwind_Resume_or_Rethrow
0x08003e94 _Unwind_Complete
0x08003e98 _Unwind_DeleteException
0x08003ea8 _Unwind_VRS_Get
0x08003ef4 _Unwind_VRS_Set
0x08003f40 __gnu_Unwind_Backtrace
0x080042a0 __aeabi_unwind_cpp_pr0
0x080042ac __aeabi_unwind_cpp_pr1
0x080042b8 __aeabi_unwind_cpp_pr2
0x080042c4 _Unwind_VRS_Pop
.text 0x0800452c 0x144 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(libunwind.o)
0x0800452c __restore_core_regs
0x0800452c restore_core_regs
0x08004558 __gnu_Unwind_Restore_VFP
0x0800455c __gnu_Unwind_Save_VFP
0x08004560 __gnu_Unwind_Restore_VFP_D
0x08004564 __gnu_Unwind_Save_VFP_D
0x08004568 __gnu_Unwind_Restore_VFP_D_16_to_31
0x0800456c __gnu_Unwind_Save_VFP_D_16_to_31
0x08004570 __gnu_Unwind_Restore_WMMXD
0x08004574 __gnu_Unwind_Save_WMMXD
0x08004578 __gnu_Unwind_Restore_WMMXC
0x0800457c __gnu_Unwind_Save_WMMXC
0x08004580 ___Unwind_RaiseException
0x08004580 _Unwind_RaiseException
0x080045b0 _Unwind_Resume
0x080045b0 ___Unwind_Resume
0x080045e0 _Unwind_Resume_or_Rethrow
0x080045e0 ___Unwind_Resume_or_Rethrow
0x08004610 _Unwind_ForcedUnwind
0x08004610 ___Unwind_ForcedUnwind
0x08004640 ___Unwind_Backtrace
0x08004640 _Unwind_Backtrace
.text 0x08004670 0x3a8 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
0x080046c4 __gnu_unwind_execute
0x080049c0 __gnu_unwind_frame
0x080049e8 _Unwind_GetRegionStart
0x080049f4 _Unwind_GetLanguageSpecificData
0x08004a08 _Unwind_GetTextRelBase
0x08004a10 _Unwind_GetDataRelBase
.text.abort 0x08004a18 0x10 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-abort.o)
0x08004a18 abort
.text.memcpy 0x08004a28 0x84 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-memcpy-stub.o)
0x08004a28 memcpy
.text._raise_r
0x08004adc 0x5c c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
0x08004adc _raise_r
.text.raise 0x08004b38 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
0x08004b38 raise
.text._kill_r 0x08004b4c 0x28 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
0x08004b4c _kill_r
0x08004aac 0x5c c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
0x08004aac _raise_r
.text.raise 0x08004b08 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signal.o)
0x08004b08 raise
.text._kill_r 0x08004b1c 0x28 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
0x08004b1c _kill_r
.text._getpid_r
0x08004b74 0x8 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
0x08004b74 _getpid_r
.text._getpid 0x08004b7c 0x10 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
0x08004b7c _getpid
.text._kill 0x08004b8c 0x10 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
0x08004b8c _kill
.text._exit 0x08004b9c 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
0x08004b9c _exit
.text 0x08004ba0 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
0x08004ba0 __gnu_thumb1_case_uqi
.text 0x08004bb4 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_shi.o)
0x08004bb4 __gnu_thumb1_case_shi
.text 0x08004bc8 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
0x08004bc8 __gnu_thumb1_case_uhi
0x08004b44 0x8 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-signalr.o)
0x08004b44 _getpid_r
.text._getpid 0x08004b4c 0x10 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)
0x08004b4c _getpid
.text._kill 0x08004b5c 0x10 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(kill.o)
0x08004b5c _kill
.text._exit 0x08004b6c 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(_exit.o)
0x08004b6c _exit
.text 0x08004b70 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
0x08004b70 __gnu_thumb1_case_uqi
.text 0x08004b84 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_shi.o)
0x08004b84 __gnu_thumb1_case_shi
.text 0x08004b98 0x14 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
0x08004b98 __gnu_thumb1_case_uhi
*(.init)
.init 0x08004bdc 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crti.o
0x08004bdc _init
.init 0x08004bac 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crti.o
0x08004bac _init
*(.fini)
.fini 0x08004be0 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crti.o
0x08004be0 _fini
.fini 0x08004bb0 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crti.o
0x08004bb0 _fini
*crtbegin.o(.ctors)
*crtbegin?.o(.ctors)
*(EXCLUDE_FILE(*crtend.o *crtend?.o) .ctors)
@ -671,54 +670,54 @@ LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-
*(.dtors)
*(.rodata*)
.rodata.config_desc
0x08004be4 0x12 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x08004bb4 0x12 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.rodata.device_desc
0x08004bf6 0x12 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x08004bc6 0x12 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.rodata.string0_desc
0x08004c08 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x08004bd8 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.rodata.string1_desc
0x08004c0c 0x54 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x08004bdc 0x54 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.rodata.string2_desc
0x08004c60 0x3c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x08004c30 0x3c C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
*(.eh_frame*)
.glue_7 0x08004c9c 0x0
.glue_7 0x08004c9c 0x0 linker stubs
.glue_7 0x08004c6c 0x0
.glue_7 0x08004c6c 0x0 linker stubs
.glue_7t 0x08004c9c 0x0
.glue_7t 0x08004c9c 0x0 linker stubs
.glue_7t 0x08004c6c 0x0
.glue_7t 0x08004c6c 0x0 linker stubs
.vfp11_veneer 0x08004c9c 0x0
.vfp11_veneer 0x08004c9c 0x0 linker stubs
.vfp11_veneer 0x08004c6c 0x0
.vfp11_veneer 0x08004c6c 0x0 linker stubs
.v4_bx 0x08004c9c 0x0
.v4_bx 0x08004c9c 0x0 linker stubs
.v4_bx 0x08004c6c 0x0
.v4_bx 0x08004c6c 0x0 linker stubs
.iplt 0x08004c9c 0x0
.iplt 0x08004c9c 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtbegin.o
.iplt 0x08004c6c 0x0
.iplt 0x08004c6c 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtbegin.o
.ARM.extab 0x08004c9c 0x30
.ARM.extab 0x08004c6c 0x30
*(.ARM.extab* .gnu.linkonce.armextab.*)
.ARM.extab 0x08004c9c 0x24 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.ARM.extab 0x08004cc0 0xc c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
0x08004ccc __exidx_start = .
.ARM.extab 0x08004c6c 0x24 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.ARM.extab 0x08004c90 0xc c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
0x08004c9c __exidx_start = .
.ARM.exidx 0x08004ccc 0xd0
.ARM.exidx 0x08004c9c 0xd0
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
.ARM.exidx 0x08004ccc 0x8 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.ARM.exidx 0x08004cd4 0x0 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.ARM.exidx 0x08004c9c 0x8 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.ARM.exidx 0x08004ca4 0x0 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
0x10 (size before relaxing)
.ARM.exidx 0x08004cd4 0x98 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
.ARM.exidx 0x08004ca4 0x98 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(unwind-arm.o)
0xd8 (size before relaxing)
.ARM.exidx 0x08004d6c 0x30 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
.ARM.exidx 0x08004d3c 0x30 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(pr-support.o)
0x48 (size before relaxing)
0x08004d9c __exidx_end = .
0x08004d9c __etext = ALIGN (0x4)
0x08004d6c __exidx_end = .
0x08004d6c __etext = ALIGN (0x4)
.rel.dyn 0x08004d9c 0x0
.rel.iplt 0x08004d9c 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtbegin.o
.rel.dyn 0x08004d6c 0x0
.rel.iplt 0x08004d6c 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtbegin.o
.data 0x20000000 0x430 load address 0x08004d9c
.data 0x20000000 0x430 load address 0x08004d6c
0x20000000 __data_start__ = .
*(vtable)
*(.data*)
@ -746,87 +745,89 @@ LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-
0x20000430 . = ALIGN (0x4)
0x20000430 __data_end__ = .
.igot.plt 0x20000430 0x0 load address 0x080051cc
.igot.plt 0x20000430 0x0 load address 0x0800519c
.igot.plt 0x20000430 0x0 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crtbegin.o
.bss 0x20000430 0x2f0 load address 0x080051cc
.bss 0x20000430 0x2f0 load address 0x0800519c
0x20000430 . = ALIGN (0x4)
0x20000430 __bss_start__ = .
*(.bss*)
.bss.addrh 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.addrh 0x20000430 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.bss.bank_table
0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000434 0x2 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000434 bank_table
*fill* 0x20000436 0x2
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.buff0 0x20000438 0x14 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000438 buff0
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.buff1 0x2000044c 0x14 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x2000044c buff1
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.buff2 0x20000460 0x14 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000460 buff2
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.buff3 0x20000474 0x14 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000474 buff3
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.cur_bank 0x20000488 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000488 cur_bank
*fill* 0x20000489 0x3
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.cur_buff 0x2000048c 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x2000048c cur_buff
.bss.cur_usb_load_buff
0x20000490 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.incoming_bytes_remain
0x20000494 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
*fill* 0x20000495 0x3
.bss.oper_info_struct
0x20000498 0x20 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000498 oper_info_struct
0x20000490 0x20 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000490 oper_info_struct
.bss.pbje_command
0x200004b8 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200004b8 pbje_command
0x200004b0 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200004b0 pbje_command
.bss.pbje_data
0x200004b9 0x20 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200004b9 pbje_data
0x200004b1 0x20 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200004b1 pbje_data
.bss.pbje_numclk
0x200004d9 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200004d9 pbje_numclk
0x200004d1 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200004d1 pbje_numclk
.bss.pbje_status
0x200004da 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200004da pbje_status
0x200004d2 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200004d2 pbje_status
.bss.raw_bank_status
0x200004db 0x10 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
*fill* 0x200004eb 0x1
0x200004d3 0x10 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
*fill* 0x200004e3 0x1
.bss.raw_buffer16
0x200004ec 0x200 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.bss.rv16.4995
0x200006ec 0x8 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200004e4 0x200 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.bss.rv16.4991
0x200006e4 0x8 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.bss.swim_base
0x200006f4 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200006f4 swim_base
.bss.swim_pin 0x200006f8 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200006f8 swim_pin
0x200006ec 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200006ec swim_base
.bss.swim_pin 0x200006f0 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200006f0 swim_pin
*fill* 0x200006f1 0x3
.bss.tck_base 0x200006f4 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200006f4 tck_base
.bss.tck_pin 0x200006f8 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200006f8 tck_pin
*fill* 0x200006f9 0x3
.bss.tck_base 0x200006fc 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x200006fc tck_base
.bss.tck_pin 0x20000700 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000700 tck_pin
.bss.tdi_base 0x200006fc 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x200006fc tdi_base
.bss.tdi_pin 0x20000700 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000700 tdi_pin
*fill* 0x20000701 0x3
.bss.tdi_base 0x20000704 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000704 tdi_base
.bss.tdi_pin 0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000708 tdi_pin
.bss.tdo_base 0x20000704 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000704 tdo_base
.bss.tdo_pin 0x20000708 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000708 tdo_pin
*fill* 0x20000709 0x3
.bss.tdo_base 0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x2000070c tdo_base
.bss.tdo_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000710 tdo_pin
*fill* 0x20000711 0x3
.bss.tms_base 0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000714 tms_base
.bss.tms_pin 0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x20000718 tms_pin
.bss.num_buff.5075
0x20000719 0x1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.bss.tms_base 0x2000070c 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x2000070c tms_base
.bss.tms_pin 0x20000710 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x20000710 tms_pin
.bss.num_buff.5071
0x20000711 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
*fill* 0x20000712 0x2
.bss.cur_usb_load_buff
0x20000714 0x4 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x20000714 cur_usb_load_buff
.bss.incoming_bytes_remain
0x20000718 0x1 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x20000718 incoming_bytes_remain
*(COMMON)
*fill* 0x2000071a 0x2
*fill* 0x20000719 0x3
COMMON 0x2000071c 0x4 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libg.a(lib_a-reent.o)
0x2000071c errno
0x20000720 . = ALIGN (0x4)
@ -836,12 +837,12 @@ LOAD c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-
0x20000720 __end__ = .
0x20000720 PROVIDE (end, .)
*(.heap*)
.heap 0x20000720 0x0 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.heap 0x20000720 0x0 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
0x20000720 __HeapLimit = .
.stack_dummy 0x20000720 0xc00
*(.stack*)
.stack 0x20000720 0xc00 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.stack 0x20000720 0xc00 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
0x20001800 __StackTop = (ORIGIN (RAM) + LENGTH (RAM))
0x20000c00 __StackLimit = (__StackTop - SIZEOF (.stack_dummy))
0x20001800 PROVIDE (__stack, __StackTop)
@ -853,19 +854,19 @@ OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
.ARM.attributes
0x00000000 0x1e c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m/crti.o
.ARM.attributes
0x0000001e 0x1b C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
0x0000001e 0x1b C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.ARM.attributes
0x00000039 0x2f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x00000039 0x2f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.ARM.attributes
0x00000068 0x2f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x00000068 0x2f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.ARM.attributes
0x00000097 0x2f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x00000097 0x2f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.ARM.attributes
0x000000c6 0x2f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x000000c6 0x2f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.ARM.attributes
0x000000f5 0x21 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
0x000000f5 0x21 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.ARM.attributes
0x00000116 0x21 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
0x00000116 0x21 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.ARM.attributes
0x00000137 0x1e c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uqi.o)
.ARM.attributes
@ -874,82 +875,82 @@ OUTPUT(build_stm/inlretro_stm.elf elf32-littlearm)
0x00000173 0x1e c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/thumb/v6-m\libgcc.a(_thumb1_case_uhi.o)
.comment 0x00000000 0x6e
.comment 0x00000000 0x6e C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.comment 0x00000000 0x6e C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x6f (size before relaxing)
.comment 0x0000006e 0x6f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.comment 0x0000006e 0x6f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.comment 0x0000006e 0x6f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.comment 0x0000006e 0x6f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.comment 0x0000006e 0x6f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.comment 0x0000006e 0x6f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_line 0x00000000 0x1b68
.debug_line 0x00000000 0x6f C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.debug_line 0x0000006f 0xaf7 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.debug_line 0x00000b66 0x816 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.debug_line 0x0000137c 0x44d C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.debug_line 0x000017c9 0x263 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.debug_line 0x00001a2c 0x49 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.debug_line 0x00001a75 0xf3 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.debug_line 0x00000000 0x1ba6
.debug_line 0x00000000 0x6f C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.debug_line 0x0000006f 0xa1e C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_line 0x00000a8d 0x6fe C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_line 0x0000118b 0x4a9 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_line 0x00001634 0x436 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_line 0x00001a6a 0x49 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.debug_line 0x00001ab3 0xf3 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.debug_info 0x00000000 0x46d7
.debug_info 0x00000000 0x9b C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.debug_info 0x0000009b 0x17a1 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.debug_info 0x0000183c 0x175a C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.debug_info 0x00002f96 0xffb C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.debug_info 0x00003f91 0x61a C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.debug_info 0x000045ab 0x98 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.debug_info 0x00004643 0x94 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.debug_info 0x00000000 0x4757
.debug_info 0x00000000 0x9b C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.debug_info 0x0000009b 0x149a C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_info 0x00001535 0x14bf C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_info 0x000029f4 0x11f2 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_info 0x00003be6 0xa45 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_info 0x0000462b 0x98 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.debug_info 0x000046c3 0x94 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.debug_abbrev 0x00000000 0xb18
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
.debug_abbrev 0x00000014 0x35d C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.debug_abbrev 0x00000371 0x40f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.debug_abbrev 0x00000780 0x1ce C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.debug_abbrev 0x0000094e 0x1a2 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.debug_abbrev 0x00000af0 0x14 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
.debug_abbrev 0x00000b04 0x14 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
.debug_abbrev 0x00000000 0xbe3
.debug_abbrev 0x00000000 0x14 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.debug_abbrev 0x00000014 0x31e C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_abbrev 0x00000332 0x3b2 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_abbrev 0x000006e4 0x190 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_abbrev 0x00000874 0x347 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_abbrev 0x00000bbb 0x14 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.debug_abbrev 0x00000bcf 0x14 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.debug_aranges 0x00000000 0x218
.debug_aranges 0x00000000 0x228
.debug_aranges
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\cc6pRmhD.o
0x00000000 0x20 C:\Users\paul\AppData\Local\Temp\ccA7U3xu.o
.debug_aranges
0x00000020 0x20 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x00000020 0x20 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_aranges
0x00000040 0x88 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x00000040 0x60 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_aranges
0x000000c8 0xd0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x000000a0 0xe8 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_aranges
0x00000198 0x40 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x00000188 0x60 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_aranges
0x000001d8 0x20 C:\Users\paul\AppData\Local\Temp\ccSIjLzW.o
0x000001e8 0x20 C:\Users\paul\AppData\Local\Temp\cci1eGxe.o
.debug_aranges
0x000001f8 0x20 C:\Users\paul\AppData\Local\Temp\cc2herkl.o
0x00000208 0x20 C:\Users\paul\AppData\Local\Temp\ccUzNUgX.o
.debug_loc 0x00000000 0x45b6
.debug_loc 0x00000000 0x27eb C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.debug_loc 0x000027eb 0x1095 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.debug_loc 0x00003880 0x922 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.debug_loc 0x000041a2 0x414 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.debug_loc 0x00000000 0x4958
.debug_loc 0x00000000 0x2b56 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_loc 0x00002b56 0xdec C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_loc 0x00003942 0xa3f C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_loc 0x00004381 0x5d7 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_ranges 0x00000000 0x1748
.debug_ranges 0x00000000 0x13c8 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.debug_ranges 0x000013c8 0x270 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.debug_ranges 0x00001638 0xc0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.debug_ranges 0x000016f8 0x50 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.debug_ranges 0x00000000 0xc70
.debug_ranges 0x00000000 0x840 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_ranges 0x00000840 0x230 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_ranges 0x00000a70 0xd8 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_ranges 0x00000b48 0x128 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.debug_str 0x00000000 0xdcb
.debug_str 0x00000000 0x872 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
0x8d7 (size before relaxing)
.debug_str 0x00000872 0x268 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
0x52b (size before relaxing)
.debug_str 0x00000ada 0x1d2 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
0x3e8 (size before relaxing)
.debug_str 0x00000cac 0x11f C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
0x39d (size before relaxing)
.debug_str 0x00000000 0xdd5
.debug_str 0x00000000 0x76d C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
0x7d2 (size before relaxing)
.debug_str 0x0000076d 0x22c C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
0x4c5 (size before relaxing)
.debug_str 0x00000999 0x1c7 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
0x3e2 (size before relaxing)
.debug_str 0x00000b60 0x275 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
0x555 (size before relaxing)
.debug_frame 0x00000000 0x4c0
.debug_frame 0x00000000 0x30 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans0.ltrans.o
.debug_frame 0x00000030 0x174 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans1.ltrans.o
.debug_frame 0x000001a4 0x26c C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans2.ltrans.o
.debug_frame 0x00000410 0xb0 C:\Users\paul\AppData\Local\Temp\ccKkt1EM.ltrans3.ltrans.o
.debug_frame 0x00000000 0x4fc
.debug_frame 0x00000000 0x30 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans0.ltrans.o
.debug_frame 0x00000030 0x118 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans1.ltrans.o
.debug_frame 0x00000148 0x2a0 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans2.ltrans.o
.debug_frame 0x000003e8 0x114 C:\Users\paul\AppData\Local\Temp\ccGNbBMZ.ltrans3.ltrans.o
.stabstr 0x00000000 0x76
.stabstr 0x00000000 0x76 c:/arm/gcc-arm-none-eabi-6_2-2016q4-20161216-win32/bin/../lib/gcc/arm-none-eabi/6.2.1/../../../../arm-none-eabi/lib/thumb/v6-m\libnosys.a(getpid.o)

View File

@ -80,10 +80,32 @@ int main(void)
RCC->CFGR = (RCC->CFGR & ~RCC_CFGR_SW) | RCC_CFGR_SW_PLL;
//Initialize periphery clocks as needed
//tried to have this done but usb code but wasn't working..
//having the main handle this prob makes more sense anyway, but would like to know
//why this didn't work..
init_usb_clock();
//Initialize WDT, core features, etc
//init_usb();
//don't call the USB code directly,
//instead set the usb flag to tell it to initialize then jump to the USB ISR
//we know where the USB ISR is because of the vector table
usbflag = INITUSB;
typedef void (*pFunction)(void);
pFunction JumpToApplication;
//interrupts should already be disabled
JumpToApplication = (void (*)(void)) (*((uint32_t *) ((0x000000BC)))); //USB ISR vector location
//Jump to the USB ISR
JumpToApplication();
//set the usb_buff ram function pointers to USB ISR can use them
usbfuncwrite = (uint32_t) &usbFunctionWrite; //should only assign lower 16bits
usbfuncsetup = (uint32_t) &usbFunctionSetup; //should only assign lower 16bits
//Initialize WDT, core features, etc
//enable interrupts
__enable_irq(); //clear's processor PRIMASK register bit to allow interrupts to be taken
//I think this gets done automatically when enabling individual IRQs
@ -92,8 +114,7 @@ int main(void)
//setup LED as outputs and turn them on
//setup user switch as input
init_usb();
//Initialize board/system
#endif

View File

@ -46,7 +46,10 @@
USB_PUBLIC usbMsgLen_t usbFunctionSetup(uchar data[8]) {
#endif
#ifdef STM_CORE
uint16_t usbFunctionSetup(uint8_t data[8]) {
#define NOINLINE __attribute__ ((section (".text"), noinline, noclone))
//NOINLINE should keep these functions at beinging of flash (.text)
//they need to be in the first 64KByte which is non issue with C6, but could prob with RB
NOINLINE uint16_t usbFunctionSetup(uint8_t data[8]) {
#endif
@ -274,8 +277,9 @@ uint16_t usbFunctionSetup(uint8_t data[8]) {
#ifdef AVR_CORE
USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) {
#endif
#ifdef STM_CORE
uint8_t usbFunctionWrite(uint8_t *data, uint8_t len) {
NOINLINE uint8_t usbFunctionWrite(uint8_t *data, uint8_t len) {
#endif
//defined and controled by buffer.c

View File

@ -230,3 +230,39 @@ void init_clock()
}
//pick define based on xtal setup for init_clock and init_usb_clock functions
//#define NO_XTAL
#define EXTERNAL_XTAL
void init_usb_clock()
{
// stm32f0x2 devices have HSI 48Mhz available to clock usb block, or PLL if it's source accurate enough
// stm32f0x0 devices must have ext xtal and use PLL output to drive usb block
#ifdef EXTERNAL_XTAL
//by default the 072 has HSI 48Mhz selected as USB clock
//on the 070 this equates to off, so 070 must set USBSW bit
RCC->CFGR3 |= RCC_CFGR3_USBSW_PLLCLK;
#endif
#ifdef NO_XTAL
//Turn on HSI48 supposedly it will turn itself on if USB is enabled with HSI48 selected as clock
RCC->CR2 |= RCC_CR2_HSI48ON;
while ((RCC->CR2 & RCC_CR2_HSI48RDY) != RCC_CR2_HSI48RDY) /* (10) Wait until the HSI48 is stable */
{ /* For robust implementation, add here time-out management */ }
//by default the 072 has HSI 48Mhz selected as USB clock
RCC->CFGR3 &= ~RCC_CFGR3_USBSW_Msk;
//on the 070 this equates to off, so 070 must set USBSW bit
//CRS system must be turned on to keep HSI 48Mhz calibrated
RCC->APB1ENR |= RCC_APB1ENR_CRSEN;
//Default settings are good using SOF packets for calibration
#endif
//enable USB block by providing clock
RCC->APB1ENR |= RCC_APB1ENR_USBEN;
}

View File

@ -2,4 +2,5 @@
#include <stm32f0xx.h>
void init_clock();
void init_usb_clock();

View File

@ -6,42 +6,6 @@
//since usb drivers don't use any .data nor .bss space
//static int log = 0;
//pick define based on xtal setup for init_clock and init_usb_clock functions
//#define NO_XTAL
#define EXTERNAL_XTAL
void init_usb_clock()
{
// stm32f0x2 devices have HSI 48Mhz available to clock usb block, or PLL if it's source accurate enough
// stm32f0x0 devices must have ext xtal and use PLL output to drive usb block
#ifdef EXTERNAL_XTAL
//by default the 072 has HSI 48Mhz selected as USB clock
//on the 070 this equates to off, so 070 must set USBSW bit
RCC->CFGR3 |= RCC_CFGR3_USBSW_PLLCLK;
#endif
#ifdef NO_XTAL
//Turn on HSI48 supposedly it will turn itself on if USB is enabled with HSI48 selected as clock
RCC->CR2 |= RCC_CR2_HSI48ON;
while ((RCC->CR2 & RCC_CR2_HSI48RDY) != RCC_CR2_HSI48RDY) /* (10) Wait until the HSI48 is stable */
{ /* For robust implementation, add here time-out management */ }
//by default the 072 has HSI 48Mhz selected as USB clock
RCC->CFGR3 &= ~RCC_CFGR3_USBSW_Msk;
//on the 070 this equates to off, so 070 must set USBSW bit
//CRS system must be turned on to keep HSI 48Mhz calibrated
RCC->APB1ENR |= RCC_APB1ENR_CRSEN;
//Default settings are good using SOF packets for calibration
#endif
//enable USB block by providing clock
RCC->APB1ENR |= RCC_APB1ENR_USBEN;
}
void usb_reset_recovery(){
// USB->CNTR |= USB_CNTR_FRES;
@ -206,10 +170,13 @@ uint16_t volatile (* const usb_buff) = (void*)USB_PMAADDR;
//static uint16_t num_bytes_req;
#define num_bytes_req usb_buff[NUM_BYTES_REQ] //place this variable in USB RAM
//static uint16_t num_bytes_sending;
#define num_bytes_sending usb_buff[NUM_BYTES_SENDING] //place this variable in USB RAM
//static uint16_t num_bytes_expecting; //this was never used, so it was cut
//#define num_bytes_expecting usb_buff[NUM_BYTES_EXPECTING] //place this variable in USB RAM
//static uint16_t num_bytes_xfrd;
#define num_bytes_xfrd usb_buff[NUM_BYTES_XFRD] //place this variable in USB RAM
@ -228,7 +195,6 @@ uint16_t volatile (* const usb_buff) = (void*)USB_PMAADDR;
#define newaddr_reqtype usb_buff[NEWADDR_REQTYPE] //place this variable in USB RAM
//static uint8_t req_dir;
#define req_dir usb_buff[VAR_REQ_DIR] //place this variable in USB RAM
@ -240,9 +206,15 @@ uint16_t volatile (* const usb_buff) = (void*)USB_PMAADDR;
//#define TSSOP20 //defined when using TSSOP-20 part to get PA11/12 alternate mapping to the pins
//prereq: USB block's clock must be initialized prior to calling
void init_usb()
{
//initialize the clock
//init_usb_clock();
//couldn't get this to work for some reason..
//leaving it up to the main to turn on the USB clock
//clear variables stored in USB ram since can't rely on .bss clearning them anymore
//Don't think most of these actually need to be cleared.. newaddr_reqtype might be only one..
num_bytes_req = 0;
@ -769,7 +741,22 @@ static void control_xfr_init( usbRequest_t *spacket ) {
//setup packets not handled by standard requests sent to usbFunctionSetup (just like Vusb)
if ((spacket->bmRequestType & REQ_TYPE_MASK) != REQ_TYPE_STD) {
//function must set usbMsgPtr to point to return data for IN transfers
num_bytes_sending = usbFunctionSetup( (uint8_t*) spacket );
//num_bytes_sending = usbFunctionSetup( (uint8_t*) spacket );
//the above worked great for a long time..
//but now I want to separate application code from usb code for firmware updates
//to do this the usb code can't directly call application code (usbFunction Setup/Write)
//need the application code to tell the usb code where the functions are using variables
//call the usbFunctionSetup function with some function pointer magic
typedef uint16_t (*pFunction)(uint8_t data[8]);
pFunction JumpToApplication;
JumpToApplication = (uint16_t (*)(uint8_t data[8])) ((0x08000000)); //base of flash
//application main makes the following assignment at powerup
//usbfuncsetup = (uint32_t) &usbFunctionSetup; //should only assign lower 16bits
JumpToApplication += usbfuncsetup;
num_bytes_sending = JumpToApplication( (uint8_t*) spacket );
}
@ -863,6 +850,7 @@ static void control_xfr_init( usbRequest_t *spacket ) {
//control_xfr_out();
}
}
@ -881,6 +869,20 @@ static void control_xfr_init( usbRequest_t *spacket ) {
void USB_IRQHandler(void)
{
//communications between application code & USB to prevent direct calls
//USB interrupts should probably be disabled when getting things done in this manner..
if (usbflag) {
//IDK if checking for it to be clear before switching will result in faster code or not..
switch (usbflag) {
case INITUSB:
init_usb(); break;
}
//clear the flag so don't come back for same request
//TODO think this trough to make sure other IRQ triggers aren't going to mess this up..
//perhaps we need to disable irq's while performing these flaging operations..
usbflag = 0x0000;
}
//all interrupts enabled by USB_CNTR, plus any successful rx/tx to an endpoint triggers this ISR
//should be our goal to get out of this ISR asap, signal the transaction to the main thread
@ -947,7 +949,20 @@ void USB_IRQHandler(void)
// if ( log >= LOG_COUNT) { DEBUG_HI(); DEBUG_LO(); }
//number of bytes received is denoted in USB_COUNTn_RX buffer table
//control_xfr_out();
usbFunctionWrite((uint8_t*) &usb_buff[EP0_RX_BASE], (usb_buff[USB_COUNT0_RX] & RX_COUNT_MSK));
//usbFunctionWrite((uint8_t*) &usb_buff[EP0_RX_BASE], (usb_buff[USB_COUNT0_RX] & RX_COUNT_MSK));
//usb code doesn't know where usbFunctionWrite is at build time
//must use usb_buff variables as function pointers, but they're only 16bit
//function pointer magic
typedef uint8_t (*pFunction)(uint8_t *data, uint8_t len);
pFunction JumpToApplication;
JumpToApplication = (uint8_t (*)(uint8_t *data, uint8_t len)) ((0x08000000)); //Base of flash
//application main makes the following assignment at powerup
//usbfuncwrite = (uint32_t) &usbFunctionWrite; //should only assign lower 16bits
JumpToApplication += usbfuncwrite; //must be within first 64KByte of flash
JumpToApplication((uint8_t*) &usb_buff[EP0_RX_BASE], (usb_buff[USB_COUNT0_RX] & RX_COUNT_MSK));
USB_EP0R_RX_VALID();
}
}

View File

@ -87,12 +87,23 @@
//usbstm only uses the stack and usb_buff ram table
//There are 2 bytes unused, perhaps these can be utilized for initialization flags or other communication between
//usb driver and application code
#define USBFLAG 7
#define usbflag usb_buff[USBFLAG] //used for communication between USB driver and main application
//different values for usbflag
// 0x0000 reserved for flag cleared
#define INITUSB 0xA53C
//need 4 bytes for setup & write functions, bump the BTABLE another 8Bytes for now...
#define USBFUNCSETUP 8
#define usbfuncsetup usb_buff[USBFUNCSETUP]
#define USBFUNCWRITE 9
#define usbfuncwrite usb_buff[USBFUNCWRITE]
//buffer table itself is located in 1KB buffer above, but it's location is programmable
//the table must be aligned to an 8Byte boundary
//#define USB_BTABLE_ADDR ((uint16_t) 0x0000) //least 3 significant bits are forced to zero
#define USB_BTABLE_ADDR ((uint16_t) 0x0010) //this skips the first 16Bytes of usb buffer so can be used for vars above
#define USB_BTABLE_ADDR ((uint16_t) 0x0018) //this skips the first 16+8Bytes of usb buffer so can be used for vars above
#define USB_BTABLE_BASE USB_BTABLE_ADDR/2 //The base index is in 16bit half words
#define USB_BTABLE_SIZE 64 //32x 16bit halfwords
//NOTE!!! ADDR is the 8bit "BYTE" address, BASE is the index of the usb_buff array
@ -273,13 +284,14 @@ extern uint16_t volatile (* const usb_buff);
#define usbMsgPtr_L usb_buff[USBMSGPTR_L] //place this variable in USB RAM
#define usbMsgPtr_H usb_buff[USBMSGPTR_H] //place this variable in USB RAM
//These declarations are solely for compilation purposes of usb code so it knows what
//these functions contained in the application code look like
extern uint16_t usbFunctionSetup(uint8_t data[8]);
extern uint8_t usbFunctionWrite(uint8_t *data, uint8_t len);
void init_clock();
void init_usb_clock();
void usb_reset_recovery();
void init_usb();
//don't want any application functions/files calling this code!
//void usb_reset_recovery();
//void init_usb();
#endif

35
host/scripts/app/time.lua Normal file
View File

@ -0,0 +1,35 @@
-- create the module's table
local time = {}
-- import required modules
-- file constants & variables
local tstart
-- local functions
local function start()
tstart = os.clock()
end
--send the number of KBytes flashed so it can report KBps
local function report(sizeKB)
local time = os.clock() - tstart
print("total time:", time, "seconds, average speed:", (sizeKB/time), "KBps")
end
-- global variables so other modules can use them
-- call functions desired to run when script is called/imported
-- functions other modules are able to call
time.start = start
time.report = report
-- return the module's table
return time

View File

@ -7,10 +7,12 @@ local dict = require "scripts.app.dict"
local nes = require "scripts.app.nes"
local dump = require "scripts.app.dump"
local flash = require "scripts.app.flash"
local time = require "scripts.app.time"
-- file constants & variables
local mapname = "BxROM"
local banktable_base = 0xFF94 --Lizard
--local banktable_base = 0xFFE0 --HH85
--local rom_FF_addr = 0x8000
-- local functions
@ -238,7 +240,9 @@ local function process( test, read, erase, program, verify, dumpfile, flashfile,
--TODO find bank table to avoid bus conflicts!
--dump cart into file
time.start()
dump_prgrom(file, prg_size, false)
time.report(prg_size)
--close file
assert(file:close())
@ -280,6 +284,8 @@ local function process( test, read, erase, program, verify, dumpfile, flashfile,
--determine if auto-doubling, deinterleaving, etc,
--needs done to make board compatible with rom
time.start()
--write bank table to all banks of cartridge
wr_bank_table(banktable_base, prg_size/32) --32KB per bank
--TODO need to verify where bank table belongs and properly determine number of banks
@ -287,6 +293,8 @@ local function process( test, read, erase, program, verify, dumpfile, flashfile,
--flash cart
flash_prgrom(file, prg_size, true)
time.report(prg_size)
--close file
assert(file:close())
@ -300,7 +308,9 @@ local function process( test, read, erase, program, verify, dumpfile, flashfile,
file = assert(io.open(verifyfile, "wb"))
--dump cart into file
time.start()
dump_prgrom(file, prg_size, false)
time.report(prg_size)
--close file
assert(file:close())