Загрузка данных



     uint32_t read_reg( const uint32_t addr)
     {
          uint32_t value;

          if(lseek(file_desc_, addr, SEEK_SET) < 0)
          {
               throw std::runtime_error( "lseek error: " + ErrnoToStr() + "\n");
          }

          if(read(file_desc_, &value, sizeof(value)) < 0) 
          {
               throw std::runtime_error("read error: " + ErrnoToStr() + "\n");
          }

          return value;
     }

     void write_reg( const uint32_t addr, const uint32_t value )
     {
          if(lseek(file_desc_, addr, SEEK_SET) < 0)
          {
               throw std::runtime_error( "lseek error: " + ErrnoToStr() + "\n");
          }

          if(write(file_desc_, &value, sizeof(value)) < 0) 
          {
               throw std::runtime_error("write error: " + ErrnoToStr() + "\n");
          }
     }

     void write_reg(const uint32_t addr, const uint8_t* value )
     {
          if(lseek(file_desc_, addr, SEEK_SET) < 0)
          {
               throw std::runtime_error( "lseek error: " + ErrnoToStr() + "\n");
          }

          if(write(file_desc_, value, 4) < 0) 
          {
               throw std::runtime_error("write error: " + ErrnoToStr() + "\n");
          }
     }