亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? template.c

?? 嵌入式單片機下可做對Intel flash編程的代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:

   TMPL_Status stat;
   UINT32 add;
   UINT32 offset;
   TMPL_FDATA item;
   UINT32 longitem;
   UINT32 i;

   TMPL_WriteF(TMPL_BASE_FLASH_ADDRESS, TMPL_READ_QUERY );
 
   offset = TMPL_QUERY_START_OFFSET;

   /* read query string */ 
   for ( i=0; i < 3; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );
      item &= 0xff;
      query->QueryStr[i] = (char)item;
	  offset++;
   }
   query->QueryStr[3] = '\0'; /* null terminate string */

   /* read vendor id */
   query->VendorId = 0;
   for ( i=0; i < 2; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  item = item << (8*(1-i) );
#else
      item &= 0xff;
	  item = item << (8*i);
#endif

      query->VendorId = (UINT16)( query->VendorId | item ); 
      offset++;
   }

   /* read extended table ptr */
   query->ExtTablePtr = 0;
   for ( i=0; i < 2; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  item = item << (8*(1-i) );
#else
      item &= 0xff;
	  item = item << (8*i);
#endif

      query->ExtTablePtr = (UINT16)( query->ExtTablePtr | item ); 
      offset++;
   }
 
   /* read alternate vendor id */
   query->AltVendorId = 0;
   for ( i=0; i < 2; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  item = item << (8*(1-i) );
#else
      item &= 0xff;
	  item = item << (8*i);
#endif
      query->AltVendorId = (UINT16)( query->AltVendorId | item ); 
      offset++;
   }

   /* read secondary extended table ptr */
   query->SecExtTablePtr = 0;
   for ( i=0; i < 2; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  item = item << (8*(1-i) );
#else
      item &= 0xff;
	  item = item << (8*i);
#endif
      query->SecExtTablePtr = (UINT16)
                                 ( query->SecExtTablePtr | item ); 
      offset++;
   }

   /* read minimum voltage */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->VccMin = (UINT8)item;
   offset++;

   /* read maximum voltage */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->VccMax = (UINT8)item;
   offset++;

   /* read supply voltage */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->VppMin = (UINT8)item;
   offset++;

   /* read supply max voltage */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->VppMax = (UINT8)item;
   offset++;

   /* read typical program timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->TypicalProgTimeout = (UINT8)item;
   offset++;

   /* read typical buffer timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->TypicalBufferTimeout = (UINT8)item;
   offset++;

   /* read block erase timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->BlockEraseTimeout = (UINT8)item;
   offset++;

   /* read chip erase timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->ChipEraseTimeout = (UINT8)item;
   offset++;

   /* read max single timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->MaxSingleTimeout = (UINT8)item;
   offset++;

   /* read max buffer timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->MaxBufferTimeout = (UINT8)item;
   offset++;

   /* read max block erase timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->MaxBlockEraseTimeout = (UINT8)item;
   offset++;

   /* read max chip erase timeout */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->MaxChipEraseTimeout = (UINT8)item;
   offset++;

   /* read device size */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->DeviceSize = (UINT8)item;
   offset++;

   /* read device interface */
   query->DeviceInterface = 0;
   for ( i=0; i < 2; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  item = item << (8*(1-i) );
#else
      item &= 0xff;
	  item = item << (8*i);
#endif

      query->DeviceInterface = (UINT16)
                                 ( query->DeviceInterface | item ); 
      offset++;
   }

   /* read max write buffer bytes */
   query->MaxWriteBufferBytes = 0;
   for ( i=0; i < 2; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  item = item << (8*(1-i) );
#else
      item &= 0xff;
	  item = item << (8*i);
#endif

      query->MaxWriteBufferBytes = (UINT16)
                                 ( query->MaxWriteBufferBytes | item ); 
      offset++;
   }

   /* read num erase blocks */
   stat = TMPL_GetQueryAddress(offset, &add);

   if ( stat.Result != StatCompleted )
   {
      return( stat );
   }

   TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
   item &= 0x00ff;
#else
   item &= 0xff;
#endif

   query->NumEraseBlocks = (UINT8)item;
   offset++;

   /* read erase block information */
   query->EraseBlockInformation = 0;
   for ( i=0; i < 4; i++ )
   {
      stat = TMPL_GetQueryAddress(offset, &add);

      if ( stat.Result != StatCompleted )
      {
         return( stat );
      }

      TMPL_ReadF( add, &item );

#if BIG_ENDIAN_ARCHITECTURE
      item &= 0x00ff;
	  longitem = (UINT32)((UINT32)item << (8*(3-i) ));
#else
      item &= 0xff;
	  longitem = (UINT32)((UINT32)item << (8*i));
#endif

      query->EraseBlockInformation = (UINT32)
                                 ( query->EraseBlockInformation | longitem ); 
      offset++;
   }

   stat.Result = StatCompleted;

   TMPL_WriteF(TMPL_BASE_FLASH_ADDRESS, TMPL_READ_ARRAY );

   return( stat );
}
#endif /* X_16 */
#endif /* !DEVICE_QUERY */


#if !DEVICE_READ_BLOCK_STATUS /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_ReadBlockStatus
 *
 * Description:   
 *
 *    This procedure is called to read the status for the specified block
 *    from the flash device.  See the flash device datasheet for specific 
 *    details on this command.
 *
 * Parameters:
 *
 *    IN      blocknum - the block number on the device.
 *
 *    OUT     blockstat- the status of the block as: unlocked, locked, 
 *                       or locked down.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_ReadBlockStatus( UINT16  blocknum,
                                  TMPL_FDATA_PTR  blockstat );
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品伊人久久久久7777人| 美女一区二区在线观看| 国产成人免费av在线| 久久久国产综合精品女国产盗摄| 精品一区二区久久| 日本一区二区不卡视频| 99久久精品国产毛片| 亚洲美女视频一区| 亚洲欧美中日韩| 色综合天天性综合| 亚洲国产中文字幕在线视频综合| 91精品国产美女浴室洗澡无遮挡| 极品少妇xxxx偷拍精品少妇| 欧美国产乱子伦| 欧美性猛交xxxx黑人交| 久久精品噜噜噜成人88aⅴ| 欧美韩国日本不卡| 欧美色综合天天久久综合精品| 日韩电影在线免费看| 欧美激情一区二区三区在线| 日本精品视频一区二区三区| 日本不卡免费在线视频| 国产拍揄自揄精品视频麻豆| 91官网在线观看| 久久99国内精品| 亚洲激情一二三区| 久久夜色精品国产噜噜av | 亚洲不卡在线观看| 337p日本欧洲亚洲大胆精品| 色婷婷综合激情| 久久国产精品99久久久久久老狼| 亚洲同性同志一二三专区| 91精品国模一区二区三区| 国产成人精品免费一区二区| 婷婷激情综合网| 国产精品色哟哟网站| 日韩亚洲欧美高清| 一本久道中文字幕精品亚洲嫩| 另类小说色综合网站| 亚洲美女屁股眼交3| 久久综合狠狠综合久久综合88 | 午夜精品一区二区三区免费视频 | 成人精品免费网站| 一区二区三区中文字幕电影| 精品国一区二区三区| 色综合色综合色综合| 国产伦精品一区二区三区免费迷| 亚洲国产欧美在线人成| 国产精品沙发午睡系列990531| 日韩一区二区三区av| 欧洲亚洲精品在线| 成人久久久精品乱码一区二区三区| 美国十次了思思久久精品导航| 一区二区在线观看免费| 国产精品亲子乱子伦xxxx裸| 欧美电影免费观看高清完整版在| 91成人在线精品| 97aⅴ精品视频一二三区| 国产精品自拍av| 国产一区二区精品在线观看| 亚洲黄网站在线观看| 国产精品久久久一本精品| 亚洲精品在线电影| 日韩视频免费观看高清完整版在线观看| 色综合亚洲欧洲| 不卡电影一区二区三区| 成人综合婷婷国产精品久久蜜臀 | 欧美bbbbb| 天天综合天天综合色| 洋洋av久久久久久久一区| 亚洲欧美怡红院| 1024成人网| 综合网在线视频| 成人免费一区二区三区在线观看| 国产精品欧美综合在线| 国产精品乱码一区二三区小蝌蚪| 国产亚洲欧洲一区高清在线观看| 久久免费视频一区| 国产午夜精品在线观看| 久久久精品日韩欧美| 国产婷婷色一区二区三区| 国产偷v国产偷v亚洲高清| 欧美激情一区二区三区全黄 | 91精品国产欧美一区二区成人| 欧美日韩在线三区| 欧美区视频在线观看| 8x福利精品第一导航| 91精品欧美综合在线观看最新| 3atv一区二区三区| 日韩精品中文字幕一区| 久久综合狠狠综合久久综合88| 国产日韩欧美麻豆| 国产精品福利一区| 亚洲综合免费观看高清完整版| 一区二区三区在线免费| 香蕉成人伊视频在线观看| 日本特黄久久久高潮| 精品亚洲porn| caoporn国产一区二区| 91麻豆国产在线观看| 欧美精品精品一区| 26uuu国产在线精品一区二区| 中文欧美字幕免费| 一区二区三区在线观看视频| 秋霞电影网一区二区| 国产乱码精品一区二区三区五月婷 | 欧美军同video69gay| 日韩免费看网站| 国产精品久久久久久久久晋中 | 9191成人精品久久| 国产欧美视频在线观看| 亚洲女与黑人做爰| 免费在线看一区| 成人午夜在线播放| 欧美日韩mp4| 国产网红主播福利一区二区| 一区二区三区波多野结衣在线观看| 日本成人中文字幕| av一本久道久久综合久久鬼色| 欧美电影在线免费观看| 久久亚洲精华国产精华液| 亚洲欧美国产三级| 精品一区二区三区在线视频| 99热99精品| 日韩精品一区二区三区四区视频 | 亚洲黄一区二区三区| 美女mm1313爽爽久久久蜜臀| 91在线观看美女| 日韩一级大片在线| 亚洲精品免费在线| 国产成人在线免费| 欧美一区二区三区婷婷月色| 综合分类小说区另类春色亚洲小说欧美 | 久久久综合网站| 亚洲精品免费在线观看| 国产精品1区2区3区在线观看| 欧美日韩国产三级| 亚洲欧洲精品一区二区三区| 精品一二三四在线| 91精品在线观看入口| 亚洲激情av在线| 成人国产精品免费观看视频| 欧美一区二区三区四区在线观看 | 国产拍欧美日韩视频二区| 五月婷婷另类国产| 日本高清成人免费播放| 国产精品久久99| 大美女一区二区三区| 精品久久久久久久一区二区蜜臀| 五月婷婷久久丁香| 欧美男人的天堂一二区| 一区二区三区四区在线| 99精品视频在线播放观看| 亚洲国产激情av| 国产成人亚洲综合a∨婷婷图片 | 亚洲一区二区四区蜜桃| 不卡视频在线看| 国产精品免费视频网站| 国产在线观看一区二区| 日韩视频在线永久播放| 日韩激情在线观看| 91精品国产综合久久精品图片 | 欧美军同video69gay| 亚洲一区二区在线观看视频| 色一情一乱一乱一91av| 国产精品乱人伦一区二区| 不卡电影免费在线播放一区| 欧美国产激情一区二区三区蜜月| 国产美女在线观看一区| 久久久美女艺术照精彩视频福利播放| 捆绑调教一区二区三区| 欧美sm极限捆绑bd| 国产一区二区导航在线播放| 久久影院午夜论| 国产99久久久精品| 中文字幕一区二区三区不卡| 99精品国产91久久久久久| 亚洲欧美激情在线| 欧美色图12p| 日本不卡一区二区| 久久这里只精品最新地址| 国产成人亚洲综合a∨猫咪| 国产精品色噜噜| 色综合一区二区| 日韩电影在线一区二区| 久久久久久一二三区| 成人深夜在线观看| 洋洋av久久久久久久一区| 91精品国产综合久久精品性色| 久久精品国产久精国产| 国产欧美日韩不卡| 在线观看成人免费视频| 婷婷国产在线综合| 94色蜜桃网一区二区三区| 99久久精品国产网站| 欧美国产日韩在线观看| 一区二区三区高清在线| 色天天综合色天天久久| 午夜不卡av在线| 2021国产精品久久精品|