Good morning all!
(well morning my time...where is everyone else from?)
An update on the project so far:
1) We have a custom PBP DEFINE to specify where our bootloader should be in memory (needs to be checked further per Jumper's previous)
2) I've written and compiled test code with the new DEFINE, and the resultant program truly does locate where it should be and run properly
3) I wrote a little program that resides in 'remote' loader memory (ORG'd at 60160d) and writes a block of data to 'low' memory space starting at 0. This data block consists of 256 incrementing values starting at 0h and ending in FFh.
I'm having a small problem with the last part. The data that I read back from memory is correct for the most part, but every 8th memory location has a "0" instead of the correct value. I don't have the code in front of me to attach, but I'll send it when I get back to my office later this morning. Basically though, the sequence of events is:
A) Dump the 256 byte memory block to Hyperterminal using READCODE
B) Do a 64-byte block erase using ERASECODE
C) Rewrite each byte in the block just erased using WRITECODE
D) Repeat for a total of 256 bytes
E) Dump the re-written memory values to Hyperterminal
If you want to cogitate on this for a while and speculate on what I might be doing wrong, I'll get you with some more details later. I think that once we get through this, we're on our way!
BTW, in regard to programming bigger (>64K) parts, maybe we can fall back to using a little bit of embedded assembly code. Check out the OshonSoft web site for an example of how simple it can be:
http://www.oshonsoft.com/pic18bootloader.html
Joe
Bookmarks