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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/05/08 08:01
Read: times


 
#159700 - reding flash
Responding to: ???'s previous message
Hello,


unsigned char xdata * idata pwrite; // pointer to FLASH used for writes
// NOTE: this pointer must be located
// in <data> or <idata> space!

unsigned char code *pread; // pointer to FLASH used for reads

// test string stored in FLASH
unsigned char code test_string[] = "Howdy!";

...

while (*pread != '') { // copy until NULL is detected
*pwrite = *pread; // copy byte
pread++; // advance pointers
pwrite++;
}

*pwrite = '';

Read pointer not in xdata and not pointing to xdata, so it should be ok.



This part of code is for writing into flash memory and that's working but this part of code :


// PART B -- copy test string to FLASH memory at address 0x1000
   
   // initialize FLASH read pointer
   pread = (unsigned char code *) test_string;

   EA_save = EA;                       // save interrupt status
   EA = 0;                             // disable interrupts (precautionary)
   pwrite = 0x1000;                    // initialize FLASH write pointer
   
   FLSCL |= 0x01;                      // enable FLASH writes/erases from
                                       // user software
      
   PSCTL = 0x01;                       // MOVX writes target FLASH memory

   while (*pread != '') {            // copy until NULL is detected

      *pwrite = *pread;                // copy byte

      pread++;                         // advance pointers
      pwrite++;
   }

   *pwrite = '';

   PSCTL = 0x00;                       // MOVX writes target XRAM
   
   FLSCL &= ~0x01;                     // disable FLASH writes/erases from
                                       // user software   

   EA = EA_save;                       // re-enable interrupts

 


don't working. It's for reading values in the flash memory and store it in an array (eedata for me).

Thanks
Regards




List of 31 messages in thread
TopicAuthorDate
flash memeory reading            01/01/70 00:00      
   How do you know            01/01/70 00:00      
      flash memory reading            01/01/70 00:00      
   Cross-posted on Keil            01/01/70 00:00      
   pread and pwrite...            01/01/70 00:00      
      my problem            01/01/70 00:00      
         No, you ignored my notes in my previous post            01/01/70 00:00      
            answers            01/01/70 00:00      
               Still no answers            01/01/70 00:00      
   first            01/01/70 00:00      
      a quick glance seems to revceal ...            01/01/70 00:00      
         /            01/01/70 00:00      
         MOVX During FLASH Write            01/01/70 00:00      
   and now he crossed it on the SILabs forum            01/01/70 00:00      
   my problem            01/01/70 00:00      
      RTFM            01/01/70 00:00      
         not xdata            01/01/70 00:00      
            reding flash            01/01/70 00:00      
               So fix the loop then            01/01/70 00:00      
            Not ok            01/01/70 00:00      
         reading flash problem            01/01/70 00:00      
            Yet one more post with broken read loop            01/01/70 00:00      
               correcting my code            01/01/70 00:00      
                  Then specify exactly what you don't understand            01/01/70 00:00      
                     i correct my code            01/01/70 00:00      
                        it's working            01/01/70 00:00      
                           Report feedback            01/01/70 00:00      
                              write cycle time            01/01/70 00:00      
                                 New Question, New Thread.            01/01/70 00:00      
                           So what fixed it?            01/01/70 00:00      
   correct registers ?            01/01/70 00:00      

Back to Subject List