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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/16/06 14:55
Read: times


 
#118419 - P89C668 emergency exit
I'm now developing my own bootloader on the P89C668.

Unfortunately there is no way back after changing the bootvector.

Only the Atmels allow reprograming the boootvector by forcing PSEN low.

Thus I insert this code on my developing. Since my application use memory mapped IOs, /RD and /WR acting as outputs normally.

So if something goes wrong during developing, I can /RD or /WR force low during reset to have a second chance to reprogram it by the Philips bootloader.

There is also denoising done, to avoid false decision.

#define CALL(addr)      (((void(*)(void))(char code *)addr)())


void emergency_exit(void)
{
  unsigned char i;

  for( i = 0x55; i; ){          // 8 consecutive zeros = run Philips bootloader
    i <<= 1;
    if( P3_7 && P3_6 )          // check /RD or /WR if pulled low
      i++;
    if( i == 0xFF )             // 8 consecutive ones = run user bootloader
      return;
  }

  EA = 0;
  AUXR1 |= 0x20;                // enable boot
  CALL( 0xFC00 );               // invoke Philips bootloader
}



Peter


List of 20 messages in thread
TopicAuthorDate
P89C668 emergency exit            01/01/70 00:00      
   just a question            01/01/70 00:00      
      Re "funny pin levels"            01/01/70 00:00      
         the "funny pin levels" is the only time            01/01/70 00:00      
            NoTouch can not help            01/01/70 00:00      
               I mentioned NoTouch to show that there i            01/01/70 00:00      
   P89C51RD2            01/01/70 00:00      
      Boot Vector            01/01/70 00:00      
   Re: P89C668 emergency exit            01/01/70 00:00      
   it works not yet !!!            01/01/70 00:00      
      try it manually            01/01/70 00:00      
   Now it works !            01/01/70 00:00      
   my first P89C668 is dead            01/01/70 00:00      
      P89C668 EOL            01/01/70 00:00      
         P89C66x to P89V66x migration            01/01/70 00:00      
            Iasked a contact I have at Philips and he had no a            01/01/70 00:00      
               V668            01/01/70 00:00      
                  668/669 EOL            01/01/70 00:00      
                     there are others            01/01/70 00:00      
      BV            01/01/70 00:00      

Back to Subject List