Oh, the quality of NXP documentation on the '51 derivatives is decaying, to be very polite...
You must first enable the boot ROM (which is otherwise "hidden" to allow full 64kB of FLASH code space). Yes, NXP "forgot" to put this small piece of information into the datasheet. See for example http://forum.flashmagictool.com/index.php?topic=3478.0 , last sentence. Make sure no interrupt will happen during IAP programming. The best policy is to disable interrupts during IAP calls. Please come back with your results, either here, or, better, to 8052.com Forum. JW ----- Original Message ----- From: Gudjon I. Gudjonsson <gud...@gudjon.org> To: <sdcc-user@lists.sourceforge.net> Sent: Tuesday, January 20, 2009 9:13 PM Subject: [Sdcc-user] In-application programming on p89v664 > Hi > Thanks for the answers to the last question about the function call to an > absolute address. I am trying to use the iap routines for the NXP p89v664 > device. The first test is just to get the manufacturers ID but it doesn't > work. > > To simplify the code I just check if I can pass by the lcall instruction. With > the lcall instruction I get 'a' to my terminal but no 'b' but if I comment it > out, I get 'ab' > > while(1) { > c=serial_getchar(); > serial_putchar('a'); > _asm > mov R1, #0x00 > mov dptr, #0x0000 > lcall 0xfff0 > _endasm; > serial_putchar('b'); > } > > I have tested many possible changes to the code but without success. > > Hope I'm not off topic and many thanks. > Gudjon > > Ps. The relevant part from the p89v664 datasheet is below: > > All calls are made through a common interface, PGM_MTP. The > programming functions are selected by setting up the microcontroller’s > registers before making a call to PGM_MTP at FFF0H. > > IAP function IAP call parameters > Read Id Input parameters: > R1 = 00H or 80H (WDT feed) > DPH = 00H > DPL = 00H = mfgr id > DPL = 01H = device id 1 > DPL = 02H = device id 2 > DPL = 03H = 6x/12x bit (bit 7 = 1 = 6x) > DPL = 80H = ISP version number > Return parameter(s): > ACC = requested parameter > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user