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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/13/06 12:18
Read: times


 
#126397 - Jan ... Guide me more
Responding to: ???'s previous message
Dear Jan ...

thank you very much for your efforts ...

you said :


Arvind Shrivastava said:
org 2010h

Why???
'51 starts executing program after reset from 0000h, doesnt' it?


Sir The user code must be above 2000h and also as stated by you the satements


;there is an ORG 2000h somewhere above this
FLASH_API:
PUSH IE ;DISABLE INTERRUPTS
CLR EA
ANL FCF,#0FCh ;enable boot sector - !!! this command MUST be located ABOVE 2000h!!!
CALL 01FF0H ;call to ISP_API (modifies B register but no Rx)
ORL FCF,#001h ;switch back to user FLASH
POP IE
RET


as you has stated for the FCF modification that the command should be above 2000h ... daz y I had given it

org 2010h
acall FLASH_SUBROUTINE

you said:

Arvind Shrivastava said:
FIRMWARE_BIT equ 010h ;flag for checking whether the program is
; exceuting for the forst time or not
; 0 for first time executing





I thought you want to keep this flag in non-volatile memory = FLASH, won't you? Then, you need to choose a space for it so that it won't get into conflict with the software. I wouldn't put it at 0010h, as the interrupt vectors are there, so if you want to use them in the future it would interfere. It does not matter if you put it below 2000h or above 2000h; the whole APPLICATION FLASH (Block 0) is treated by the IAP in the same way.

Of course, if stored in FLASH, you cannot simply test it by jb/jnb instruction. You need to fetch it from the code memory (=FLASH) using MOVC into accumulator, and THEN test it in accumulator.

Also, you can chose the default value of the flag simply by putting it in the source as data. Then it would get burned together with the rest of code, to be prepared for the first time usage. I would suggest you to have the default ("intact") value = 00h and store it in the same page than the password (say, at address 327Fh - I assume the password will be less than 128 bytes long); so that if you erase the flash page to reprogram the password, the flag gets automatically complemented.

So if we assume you will do it as I described above, store the flag at position 327Fh and the password from 3200h; you will include into source code the following to get the initial value of the flag:
ORG 327f
FIRMWARE_FLAG:
db 0


I dont understand fully FIRMWARE_FLAG: db 0 ...

also ... ORG 3200h is the starting address of my START subroutine and not the address of my password ... you can see that I have moved the value of r4 and r5 in dptr ...

I am sorry 3200 is decimal and I have converted to hex and then moved to dptr ... and jumping to 3200h ... could please tell me the stupidity I am doing here ... as I am confused ...

Please again revert for the mistakes ...

regards
AS

List of 50 messages in thread
TopicAuthorDate
how to write in EEPROM in P89V51RD2 ?            01/01/70 00:00      
   there is no such thing as an EEPROM            01/01/70 00:00      
   eh?            01/01/70 00:00      
      I mean FLASH ...            01/01/70 00:00      
         FlashMagic            01/01/70 00:00      
            I have flash magic            01/01/70 00:00      
               that IS what FlashMagic does            01/01/70 00:00      
                  All of them ...            01/01/70 00:00      
                     I'm at a loss            01/01/70 00:00      
                  Probs is password storing ...            01/01/70 00:00      
                     you have not, see above            01/01/70 00:00      
                        just give me an idea            01/01/70 00:00      
                           datasheet            01/01/70 00:00      
                     clear question will help            01/01/70 00:00      
         read the ... datasheet            01/01/70 00:00      
            P89V51 IAP (access)            01/01/70 00:00      
         Unfortunate terminology!            01/01/70 00:00      
   I read data sheet            01/01/70 00:00      
      read about IAP!!!            01/01/70 00:00      
         IAP code example...            01/01/70 00:00      
            this is NOT for P89V51RD2!            01/01/70 00:00      
               Use 89S52 / 89S8252            01/01/70 00:00      
                  I\'d guess...            01/01/70 00:00      
            few questions ...            01/01/70 00:00      
               Do you read my posts?            01/01/70 00:00      
   I have tried but failed ...            01/01/70 00:00      
      corrupted???            01/01/70 00:00      
         Dont know            01/01/70 00:00      
            How do you know that they are corrupted?            01/01/70 00:00      
            Refer the application notes for the P89V51RD2            01/01/70 00:00      
               Detail Problem ...            01/01/70 00:00      
                  think!            01/01/70 00:00      
                     program ...            01/01/70 00:00      
                        ehm....            01/01/70 00:00      
                           Well confused!            01/01/70 00:00      
                              one has to start somewhere...            01/01/70 00:00      
                                 Flowcharts            01/01/70 00:00      
                                    I don't think it's a good idea...            01/01/70 00:00      
                        Jan ... Guide me more            01/01/70 00:00      
                           where to place the code            01/01/70 00:00      
                  BIBLE TIME            01/01/70 00:00      
                     BASICs            01/01/70 00:00      
                        A very basic question            01/01/70 00:00      
                           to Arvind            01/01/70 00:00      
                           if you mean BASIC52/RD2 v1.4beta4...            01/01/70 00:00      
      the dangers of uncharted waters withou a pilots            01/01/70 00:00      
         maybe            01/01/70 00:00      
            I would not dare that            01/01/70 00:00      
               sunset...            01/01/70 00:00      
                  Mr. Shrivastava you are Wasting other's time            01/01/70 00:00      

Back to Subject List