INL-retro-progdump/firmware/source
Paul XPS a8a4e7e1e2 Have the usb code physically separate from the main/application code
with large number of updates to the linker script (nokeep.ld)

The first 2KByte is dedicated for vector table, usb driver, usb desc
tables, hardfault, dummy handler, and firmware update routines.  There
is currently ~700Bytes of free space in that first 2KB.  Should be
plenty of space for firmware update routines and other advanced future
features.

The 070RB has 2KByte pages, and 070C6 has 1KB pages, which is the
smallest erase granularity size.  So we can't really have anything
smaller than 2KByte on the RB.  This leaves 30Kbyte for the
main/application code on the C6 which should be more than enough.

That 30KByte starts with the reset handler fixed to 0x0800_0800 because
we don't want to have to update the vector table.

After the reset handler is the usbFunctionWrite, then Setup routines
which the usb driver calls for incoming/outgoing data.  These need to be
in first 64KByte of flash as a 16bit pointer is kept in usb_buff RAM.
Write was put first as it's less likely to change, with Setup following
which is quite large due to all the inlining that's happening inside it
thanks to the compiler.

Perhaps these function locations could be kept at a fixed location.  Or
we could make a 'vector table' of our own just before the reset handler.
This may speed things up a bit, but for now it works.  Also like the
ability to change these pointers which may be useful for the next update
as the firmware update code will effectively need it's own Setup/Write
functions.  So the current pointers can just be updated to call them
instead, and restore originals/new ones through reset.?

This leaves 96KByte of unused flash on the 070RB, don't have any plans
for this yet.  Perhaps future updates for all the connectors and
features will require it.

Also added definition for fast ram functions to .data section.  Got that
working but not sure when it may be needed..
2018-11-28 16:01:58 -06:00
..
asm_stm Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
old Have USB drivers successfully calling usbFunctionSetup when vendor setup 2017-07-24 21:56:34 -05:00
avr_gpio.h Double and long overdue commit.. 2018-01-01 23:32:09 -06:00
bootload.c Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
bootload.h Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
buffer.c slight tweak to buffer.c for firmware, want buffer status to be last thing 2017-08-24 13:56:09 -05:00
buffer.h Have PRG-ROM flashing working for NROM on AVR KAZZO 2017-08-08 15:08:39 -05:00
ciccom.c Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
ciccom.h Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
dump.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
dump.h Have basic SNES cart detection and dumping working. Dumping mario paint 2017-08-21 12:30:39 -05:00
flash.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
flash.h Big old first major commit since publicly releasing.. 2018-11-09 21:52:33 -06:00
gameboy.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
gameboy.h Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
gba.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
gba.h Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
io.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
io.h Big old first major commit since publicly releasing.. 2018-11-09 21:52:33 -06:00
jtag.c Another late commit from bunch of updates I made over a month ago.. 2018-02-13 14:36:43 -06:00
jtag.h Another late commit from bunch of updates I made over a month ago.. 2018-02-13 14:36:43 -06:00
main.c Have the USB code effectively separated from the main application code! 2018-11-27 23:26:26 -06:00
n64.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
n64.h Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
nes.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
nes.h Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
operation.c Big update, have PRG-ROM dumping on NROM working for all devices! 2017-08-07 16:06:23 -05:00
operation.h Big update, have PRG-ROM dumping on NROM working for all devices! 2017-08-07 16:06:23 -05:00
pinport.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
pinport.h Big old first major commit since publicly releasing.. 2018-11-09 21:52:33 -06:00
pinport_al.h fixing EXP definitions for STM_NES so it'll actually build for previous 2018-11-25 22:30:04 -06:00
sega.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
sega.h Massive commit with bunch of random junk.. 2018-09-06 23:01:59 -05:00
snes.c Most things working on STM_NES now with more complete pinport_al.h 2018-11-25 22:17:36 -06:00
snes.h Big update from past weeks' work. Most of the work involves converting 2018-11-19 18:00:03 -06:00
swim.c Double and long overdue commit.. 2018-01-01 23:32:09 -06:00
swim.h Double and long overdue commit.. 2018-01-01 23:32:09 -06:00
types.h Big update from past weeks' work. Most of the work involves converting 2018-11-19 18:00:03 -06:00
usb.c Have the usb code physically separate from the main/application code 2018-11-28 16:01:58 -06:00
usb.h Moved usbMsgPtr to usb_buff ram successfully. 2018-11-27 02:00:47 -06:00