

Current Version:
2.0
Released 10/24/2002
WinPSP 2.0 Release Notes
Changes in the PICSTART Plus firmware have removed the capability to erase only the program memory of a flash device; erasing program
memory now automatically erases the configuration and, on some parts, EEPROM data memory. When you choose to modify or erase program
memory, WinPSP will disable the configuration and EEPROM checkboxes to reflect this new behavior. Please note that this change applies
only to PICSTART Plus and does not affect the boot loader.
The minimum contiguous amount of program memory that will be written is 64 bytes. For example, if you have a HEX file that
programs addresses 0 through 39, WinPSP will erase addresses 0 through 63 before programming those 40 bytes. Configuration
and EEPROM data writes have a granularity of a single byte, however.
The "Ignore errors during programming" checkbox on the Program dialog can be used to maximize the speed of programming through
the boot loader. This is, of course, at the expense of automatically verifying each section written. The boot loader programs
flash devices much faster than PICSTART Plus even with verification turned on, so the best advice is to keep it enabled.
WinPSP Remote is primarily designed for LAN (not WAN) environments and may perform poorly in high latency situations
such as the Internet.
It's often useful to put a command in your application's serial protocol to drop the chip into its boot loader. To jump
to a boot loader in low memory, perform a goto 001Eh. To jump to a boot loader in high memory, perform a goto 3E00h
or goto 7E00h as appropriate for the location of the boot loader. USART boot loaders expect you to jump to them with
the desired SPBRG value in W, while I2C boot loaders expect to find the desired I2C slave address in W. Entering the boot
loader is a one way trip; the only way to exit the boot loader is via a device reset, which can be initiated using WinPSP.
Low memory boot loaders expect your application to begin at 0200h. The reset vector is remapped to 0200h, the high priority
interrupt vector is remapped to 0208h, and the low priority interrupt vector is remapped to 0218h.
High memory boot loaders are installed with a bit of code at the start of memory so that the boot loader runs at reset
until you burn in your application. Your application should start at 0000h when using a high memory boot loader. It is vital
that your application begin with code that gives you a way to invoke the boot loader on reset in case an iteration of your
application has a bug. Otherwise, you'll risk having to move the device back to the PICSTART Plus and reinstall the boot loader.