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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/04/07 12:22
Read: times


 
#130383 - IAP on Atmel 89C51AC2
I have an application that I need to be able to update remotely, and FLIP isn't psosible to use.

So, first thoughts were to create a custom bootloader, but this idea seems to be more of a pain, with each chip needing parallel programming with the new code before being placed onto the boards, and also doesn't provide much of a fallback option if things go wrong.

Using the Atmel bootloder isn't possible, as I'd need some form of addressing & reset control because there are nine possible processors connected on the 485 line.


This led me to IAP and accepting new code via 485.

My plan is to receive the hex file over 485 comms, and then write it into an empty/unused space in the flash, and then have the code 'jump' to this new address when everything was deemed ok.

This would allow me to keep the original application as a backup in case something went wrong.

However, I'm starting to wonder whether or not this concept will work.

Effectively, what I'd end up with is two separate programs in the flash. On reset, the first will run and then call the second if everything checks out.

Would this actually work? Would each application have its own memory/variable allotment/space? Or would the first booting program create & own the memory, and the second would just fail?

Would I need to (is it possible) to have the chip just reset to a different part of the memory without using custom bootloaders? So it could bypass the first program automatically allowing the second full control?

I'm attempting to do this in C using Keil, building on top of an existing application that I wrote a few years back.


Any ideas here would be appreciated.


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