| ??? 02/24/06 19:03 Read: times |
#110716 - updated code for 89LPC952 IAP Responding to: ???'s previous message |
Jon Ledbetter said:
I see the program to which you are referring, and I also see you are missing a line in the code you posted and what they have in the manual. Actually it's not missing, but appended to the end of a remark. This may not be the only problem. Copy and paste is the best method. Hi Jon, Please can you explain what part of the code am I missing..... The code which I have written is as follows:
LOAD EQU 00H
EP EQU 68H
INITALIZE:MOV R3,#64
MOV R4,#04H
MOV R5,#40H
MOV R7,#00H
PGM_USER: MOV FMCON,#LOAD ;load command,
MOV FMADRH,R4 ;get high address
MOV FMADRL,R5 ;get low address
MOV A,R7 ;
MOV R0,A ;get pointer
LOAD_PAGE:
MOV FMDAT,@R0 ;write data to
INC R0 ;point to next
DJNZ R3,LOAD_PAGE ;do until count
MOV FMCON,#EP ;else erase &
MOV R7,FMCON ;copy status
MOV A,R7 ;read status
ANL A,#0FH ;save only four
JNZ BAD ;
CLR C ;clear error
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ADDITIONAL CODE TO LOAD 32H TO LOCATIONS 440H TO 480H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R3,#64
MOV FMCON,#LOAD ;load command
MOV FMADRH,R4 ;get high address
MOV FMADRL,R5 ;get low address
LOAD_PAGE1:
MOV FMDAT,#32H ;write data to FMDATA
DJNZ R3,LOAD_PAGE ;do until count
RET ;and return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BAD: SETB C ;set error flag
RET ;and return
The additional part of the code should auto-increment the FMADRL and load "32h" to locations 440h-480h. This does not take place.Can anyone explain why? Aso please read the manual of 89LPC952 which states: page 104: " * Write the data to be programmed to FMDATA. This will increment FMADRL pointing to the next byte in the page register. page 105: * Write the address of the next byte to be programmed to FMADRL, if desired. (Not needed for contiguous bytes since FMADRL is auto-incremented). All bytes to be programmed must be within the same page." please refer the link for manual: http://www.standardics.philips.com/support/d...lpc952.pdf Thanks, Shruthi |
| Topic | Author | Date |
| 89LPC952 FLASH PROGRAMMING | 01/01/70 00:00 | |
| Notes on posting code | 01/01/70 00:00 | |
| rewrritten code 89LPC952 IAP code | 01/01/70 00:00 | |
| what more do you need | 01/01/70 00:00 | |
| Not sufficient!!! | 01/01/70 00:00 | |
| how did you not "see" that? | 01/01/70 00:00 | |
| I have written the code.... | 01/01/70 00:00 | |
| Looks to me like | 01/01/70 00:00 | |
| I have written the code | 01/01/70 00:00 | |
| How can writing a constant be "the next" | 01/01/70 00:00 | |
| Oh I see... | 01/01/70 00:00 | |
| Disreguard previous post | 01/01/70 00:00 | |
| a hint | 01/01/70 00:00 | |
| updated code for 89LPC952 IAP | 01/01/70 00:00 | |
| The above correction ('ONE' should be '1 | 01/01/70 00:00 | |
| Ok... | 01/01/70 00:00 | |
| That's exactly my question | 01/01/70 00:00 | |
| How about.... | 01/01/70 00:00 | |
| Thanks it worked!! | 01/01/70 00:00 | |
You're welcome | 01/01/70 00:00 | |
| Neat | 01/01/70 00:00 | |
| If we go there, then | 01/01/70 00:00 |



