Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/05/07 07:13
Read: times


 
#130400 - I did that in a CAN environment with CC01/03
Responding to: ???'s previous message
You can copy your hexfile with an offset into FLASH, include some kind of checksum to your hexfile, check it after receiving, then copy the whole thing to 0x0000. With CC01 I ran into problems trying to copy more than 16bytes per ISP call.

I solved insystem programming through CAN like that:
created a small project called "ISPload" which does the receiving and programming of the new program and located it at 0x7000. It does not use any interrupts. ISPload uses the same node ID that was used for the normal application. It also contains some functions as jump back to 0x0000 (restart) and some handshake functions. It's a couple of 100bytes long. I did not include a fallback mechanism in case something goes wrong. Actually during development, some things went wrong, I had to reinstall the program through the onboard Bootloader using FLIP.

My standard project contains a jump to 0x7000 (ISPload) which can be issued on CAN command input. You can prepare Adressing through your standard project OR include it in "ISPload"


List of 3 messages in thread
TopicAuthorDate
IAP on Atmel 89C51AC2            01/01/70 00:00      
   I done it in AT89c51ED2            01/01/70 00:00      
   I did that in a CAN environment with CC01/03            01/01/70 00:00      

Back to Subject List