예제 #1
0
// Test MMX support
void CChildView::TestMMX()
{
    bool bMMX, bSSE;
    TestFeatures(&bMMX, &bSSE);

    if ( bMMX )
        m_bMMX = TRUE;
}
예제 #2
0
/* Read byte from active segment at address addr. */
TByte TStk500::ReadByte(TAddr addr)
{
  TByte val = 0xff;

  if (segment == SEG_FUSE)
  {
    switch (addr) 
    {
      case AVR_FUSE_LOW_ADDR:
        if (TestFeatures(AVR_FUSE_RD))
          val = ReadFuseLowBits();
        else
          Info (1, "Cannot read low fuse bits on this device. "
                "Returning 0xff\n");
        break;

      case AVR_FUSE_HIGH_ADDR:
        if (TestFeatures(AVR_FUSE_HIGH))
          val = ReadFuseHighBits();
        else
          Info (1, "Cannot read high fuse bits on this device. "
                "Returning 0xff\n");
        break;

      case AVR_CAL_ADDR:
        if (TestFeatures(AVR_CAL_RD))
          val = ReadCalFuseBits(0);
        else
          Info (1, "Cannot read calibration byte on this device. "
                "Returning 0xff\n");
        break;

      case AVR_LOCK_ADDR:
        val = ReadLockBits();
        break;

      case AVR_FUSE_EXT_ADDR:
        if (TestFeatures(AVR_FUSE_EXT))
          val = ReadFuseExtBits();
        else
          Info (1, "Cannot read extended fuse bits on this device. "
                "Returning 0xff\n");
        break;
    }
  }
  else
  {
    /* FIXME: TRoth/2002-05-29: This is still broken. If flash or eeprom
       changes after the calling ReadMem(), you won't ever see the change. */

    // Xbow: the original STK500 version reads all 128K of Atmega memory
    // before checking. This takes ~15sec on the mib510. This version reads
    // a 256 byte page. If a new 256 byte page is needed then it retreives
    // it from the mib510

    if (read_buffer[segment] == NULL) {
      page =  addr >> 8;                                  //page number
      read_buffer[segment] = new TByte[GetSegmentSize()]; //create buffer for data
      ReadMemPage(addr & 0xfff00);                        //read the page
    }
    int new_page = addr >> 8;
    if (new_page != page){
      page = new_page;
      ReadMemPage(addr & 0xfff00);
    }   
    val = read_buffer[segment][addr];
  }