Author Topic: FM overwrites the boot vector and status  (Read 5161 times)

Stefan Ludescher

  • Guest
FM overwrites the boot vector and status
« on: January 04, 2005, 03:50:46 am »
Hello,
My device is totally encapsulated. The only connection is DC power and a RS485 link. The RS485 driver needs to be enabled before any data transmission can work. And so ISP does not work if the 89C51RB2 boots at FC00h.

I

Andy Ayre

  • ESAcademy Staff
  • Sr. Member
  • *****
  • Posts: 2178
    • View Profile
    • Embedded Systems Academy, Inc.
    • Email
Re: FM overwrites the boot vector and status
« Reply #1 on: January 04, 2005, 06:18:01 am »
You have to manually set the boot vector to what you want immediately after programming and before the device is reset. You can do this by going to the ISP menu and choosing Boot Vector and Status Byte...

If you want something a bit more automated, then you can set the boot vector back using the command line. You can make Flash Magic do it automatically after every programming.

Embedded Systems Academy, Inc.
support at esacademy dot com

Stefan Ludescher

  • Guest
Re: FM overwrites the boot vector and status
« Reply #2 on: January 04, 2005, 11:10:09 pm »
Thank you for the response.

The problem is not that it doesn't work or is not possible to do. The problem is that our service or production can do mistakes, forget something or do not understand why to do certain steps.

Meanwhile I wrote a batch file using FM.EXE to do it step by step. I found out that when I give the command HEXFILE together with BOOTVECTOR and STATUS, immediately after loading the file it resets the vector and status to what I need.

However, I think FM.EXE and FlashMagic.exe should at least not change the vector and status until after it verifies without error.

Stefan


Andy Ayre

  • ESAcademy Staff
  • Sr. Member
  • *****
  • Posts: 2178
    • View Profile
    • Embedded Systems Academy, Inc.
    • Email
Re: FM overwrites the boot vector and status
« Reply #3 on: January 05, 2005, 06:21:27 am »
The Boot Vector is restored immediately after the device has been erased (and therefore the boot vector was erased). This is done to help ensure that if there is a power supply glitch or accidental reset or something like that, the chances of you ending up with the wrong boot vector value are minimal.

Embedded Systems Academy, Inc.
support at esacademy dot com