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

Reply via email to