Retrive previous PC from the stack before entering specific interrupt
handler routines. Allow user to trace where interrupt occured: e.g.
WatchDog and Spurious interrupt
Prior to this change, spurious interrupt would occur so much (observed
via gdb/remote debug) so it appears that the board stalled. Once a
custom spurious interrupt installed, the code continues after the
interrupt instead of re-entering the interrupt.
The old implementation has a big local_irq_save() / restore() around the
endpoint re-fill routine. This disables interrupts for a long time,
psossibly causing lost interrupts.
The new implementation works around this by disabling the USB (UDP)
interrupt only, rather than disabling all interrupts on the system.
Only send the ZLP if we send less data than was required/asked for
by the host and it is a multiple of the bMaxPacketSize0 (which is
hardcoded to 8 right now).
This is completing the change done in fe88b83e80 to
fix SIMtrace attached to OSX and not regress on windows.
Introduce another parameter to udp_ep0_send_data to specify the window
size (wLength) or if not available the default from USB 2.0 specification.
- DFU: put all DEBUG_ defines in "#ifdef DEBUG" enclosure
- alter GPIO defines for new OpenPICC v0.4 prototype
- add new AT91F_DBGU_Fini() function
- take care of new inverted USB pullip in OpenPICC v0.4 prototype
- fix typo in 'opicc_reg_write' macro
- add some more PICC related SSC code
NOTE: this firmware is the first version that will _NOT_ run on a OpenPICC v0.3 anymore!
(All changes by Henryk Ploetz)
git-svn-id: https://svn.openpcd.org:2342/trunk@283 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
- remove old copy+paste+edit port of parts of librfid
- add ability to directly link librfid.a from mainline librfid
- make usb string descriptors optional again (config.h)
- fix TC_CDIV to reset correctly on swtrig (For OpenPICC)
- temporarily re-implement ep0_send_data() in pcd_enumerate.c
- make UDP_PUPv4 switching conditional to PCD
- introduce DEBUG_UNBUFFERED define in dbgu.c
- fix some signed/unsigned/typecast related compiler warnings
- remove dead code from src/os/led.c
- implement a 'mdelay' and 'usleep' stub function (FIXME!)
- rename rc632_... functions into opcd_rc632_... to avoid confusion
- introduce new 'main_librfid' TARGET
- make main_{reqa,analog} work with librfid rather than old code
- introduce mroe debugging options for FIQ handler code in Cstartup_app
- lots of PICC work that doesn't need comments now
git-svn-id: https://svn.openpcd.org:2342/trunk@266 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
- fix minor issues with PIT timer code
- make new led blinkcode implementation work
git-svn-id: https://svn.openpcd.org:2342/trunk@257 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
- add a comment about this strange fact
- some code cleanup
- add missing 'break' after end of GET_DESCRIPTOR USB_DT_DEVICE
git-svn-id: https://svn.openpcd.org:2342/trunk@253 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
- port debug unit, watchdog timer, periodic interval timer to system_irq.c
git-svn-id: https://svn.openpcd.org:2342/trunk@252 6dc7ffe9-61d6-0310-9af1-9938baff3ed1