Keith Packard [Sat, 7 Mar 2009 06:52:35 +0000 (22:52 -0800)]
Wait for a while when switching the RESET_N line
The cc1111 manual suggests placing a 2.7kΩ resister and 1nF capacitor on the
RESET_N line to filter out noise. This increases the time necessary to reset
the chip to several microseconds which is longer than the interval between
two USB packets. Flush the USB packet queue and sleep for a while after
changing the value on the RESET_N line to make sure the chip sees the state
change.
Keith Packard [Wed, 31 Dec 2008 06:35:53 +0000 (22:35 -0800)]
Save/restore registers to host during memory operations. Cache ROM data.
Because the debug port uses instructions for most operations, the debug code
will clobber registers used by the running program. Save and restore these
to avoid corrupting application data.
If the ROM file is known, use that to return data instead of fetching it
from the target to improve performance.
Keith Packard [Mon, 29 Dec 2008 20:35:11 +0000 (12:35 -0800)]
Fix flashing less than a full page of data. Verify page at a time.
The 8051 flashing code requires special help with counts with non-zero low
byte. Also, instead of verifying the entire flash contents at the end,
verify each page as it goes.
Keith Packard [Sun, 28 Dec 2008 08:09:30 +0000 (00:09 -0800)]
Save/restore regs when reading/writing memory. Add SFR access.
The DPL and ACC registers are used by the memory access code,
so they need to be saved and restored. Stuff them up high in ram for now;
this should probably be fixed to pull them back to the host instead.
Special SFR access is required as not all SFRs are visible in the unified
address space.
Keith Packard [Sat, 27 Dec 2008 07:05:04 +0000 (23:05 -0800)]
Switch to libusb-1.0 and use async interface.
The async libusb interface offers substantial performance benefits by not
making each command wait for the reply. This makes talking over this
interface almost reasonable.
Keith Packard [Mon, 22 Dec 2008 07:33:35 +0000 (23:33 -0800)]
Add preliminary version of s51, a UI clone of the 8051 emulator.
sdcdb provides source-level debugging using the 8051 emulator, s51. By
emulating that emulator a the UI level, we should be able to get source
debugging right on our target platform.
This is just the preliminary structure for the program with most commands
not yet implemented.