From: dave@davehigton.me.uk   
      
   In message    
    The Natural Philosopher wrote:   
      
   > It seems C has caught the disease of 'we will modify your code according   
   > to what WE think it means'..   
   >   
   > ..my pointers to 254 byte structures are going haywire when I add 256   
   > bytes to them...I have to add one instead... ..add that to the fact that to   
   > write to flash RAM you need to specify the *offset* from flash RAM base,   
   > but to read it you need to use the actual hardware address...   
   >   
   > sigh.   
   >   
   > What is the generic type for a simple pointer to presumably bytes, in ARM   
   > C? Or should I resign myself to doing everything in 256byte chunks? the   
   > structure to be read and written from Flash is exactly that big for   
   > obvious hardware reasons...   
      
   Pointers in C are incremented by the size of whatever they point to.   
      
   Yes, I've found it very frustrating in the past, too.   
      
   If you want to increment by one byte, you are clearly wanting to point   
   to something within the struct, so, point at the struct member rather   
   than the overall struct; and make sure that the member is amenable to   
   being addressed byte by byte. If necessary, create a union with a byte   
   array.   
      
   David   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|