title: Access Memory Mapped I/O
body: <p>I am very new to embedded system programming, I just need to learn how to manipulate the given via c++ code. </p>
  
  <p>Given: </p>
  
  <p>Motor 1 is mapped to 0x60000000</p>
  
  <p>Motor 2 is mapped to 0x50000000</p>
  
  <p>the following are the definitions of current 32-bit registers</p>
  
  <pre><code>REGISTER NAME            |     BYTE OFFSET        |     NOTES
  ----------------------------------------------------------------------
  motor_interrupt               0x00                 service interrupts
  
  motor_status                  0x01                 enable on demand access to status elements
  motor_command                 0x02                 enable command of the motor
  
  
  
  REGISTER NAME           |   NAME   |  BITS   | ACCESS TYPE   | DESC 
  ----------------------------------------------------------------------------------
  
  motor_interrupt_register
                             CLOSED      0          R/W         high when motor transitions to CLOSED position
                             OPEN        1          R/W         high when motor transitions to OPEN position
                             RESERVED    2.31       N/A         reserved for future use
  
  motor_status        
  
                             SPEED       0.2         R          speed in counts/seconds
                             STATE        3          R          current state of motor
                             POSITION    4.13        R          current position of the motor
                             RESERVED    14.31       n/a         reserved for future use
  </code></pre>
  
  <p>I find it hard to see a sample c++ code using the given, At this point what i know is I need to access the register_name and set their bits to perform specific task or read the register  name to get the status for example. </p>
  
  <p>I think I can understand it more if it is used in a c++ code. The given is a automatic door system ( i didnt write the button details). Will I need to access the register_name or the byte_offset in c++? </p>
  
  <p>Your help would be very much appreciated</p>