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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? memtest.c

?? Keil Cx51 V7.0書籍配套光盤中的全部源碼
?? C
字號(hào):
#include <reg51.h>
#include <stdio.h>

typedef unsigned char datum;

/***************************** 數(shù)據(jù)總線測(cè)試函數(shù) ***************************
 * 函數(shù)原型:datum  memTestDataBus(volatile datum xdata * address)
 * 功    能: 對(duì)某一固定地址存儲(chǔ)器區(qū)域?qū)懭搿耙苿?dòng)的”1(walking 1’s),
*           存儲(chǔ)器地址由主調(diào)函數(shù)給定。測(cè)試成功返回0,測(cè)試失敗返回寫入值。
*************************************************************************/
datum memTestDataBus(volatile datum xdata * address) {
  datum pattern;
  for (pattern = 1; pattern != 0; pattern <<= 1) {
    /* Write the test pattern */
    *address = pattern;			/* 寫入測(cè)試值 */
    /* Read it back (immediately is okay for this test). */
    if (*address != pattern) {  /* 如果讀取值與寫入值不相等 */
      return (pattern);			/* 測(cè)試失敗返回寫入值 */
    }
  }
  return (0);					/* 測(cè)試成功返回0 */
}


/***************************** 地址總線測(cè)試函數(shù) **************************** 函數(shù)原型:datum xdata *memTestAddressBus(volatile datum xdata 
*                                  baseAddress, unsigned long nBytes)
* 功    能:對(duì)某一段存儲(chǔ)器地址范圍的地址相關(guān)位寫入“移動(dòng)的”1(walking 1’s),    *           并檢查是否發(fā)生混淆,測(cè)試中將發(fā)現(xiàn)單個(gè)位地址的錯(cuò)誤,譬如“粘滯高、    *           粘滯低”(stuck-high、stuck-low)以及引腳間短路現(xiàn)象。測(cè)試基地址以     *           及測(cè)試范圍由主調(diào)函數(shù)給定。測(cè)試成功返回 NULL,測(cè)試失敗返回發(fā)生
*           混淆錯(cuò)誤的首地址。
* 注:      為了獲得最好的測(cè)試結(jié)果,測(cè)試基地址低位部分(LSB)應(yīng)有足夠多的的
*           0以保證單個(gè)位地址能夠正確變化,例如要測(cè)試64KB范圍的地址總線,測(cè)
*           試基地址應(yīng)選擇在64KB地址范圍的邊界上,并且應(yīng)盡可能使被測(cè)試的地址
*           范圍為2的整數(shù)次冪。通過(guò)檢查存儲(chǔ)器內(nèi)容可以找出其 它錯(cuò)誤信息。
*************************************************************************/
datum xdata *memTestAddressBus(volatile datum xdata * baseAddress, 
unsigned long nBytes) {
  unsigned long addressMask=(nBytes-1);
  unsigned long offset;
  unsigned long testOffset;
  
  datum pattern     = (datum) 0xAAAAAAAA;
  datum antipattern = (datum) 0x55555555;
  
  /* 對(duì)每個(gè)2的整數(shù)次冪的偏移地址寫入默認(rèn)的測(cè)試數(shù)據(jù) */
  for (offset=sizeof(datum); (offset & addressMask)!=0; offset<<= 1) {
    baseAddress[offset] = pattern;
  }
  
  /* 檢查地址位是否粘滯高 */
  testOffset = 0;
  baseAddress[testOffset] = antipattern;
  
  for (offset=sizeof(datum); (offset & addressMask)!=0; offset <<= 1) {
    if (baseAddress[offset] != pattern) {
      return ((datum xdata *) &baseAddress[offset]);
    }
  }
  
  baseAddress[testOffset] = pattern;
  
  /* 檢查地址位是否粘滯低或發(fā)生短路 */
  for (testOffset=sizeof(datum); (testOffset & addressMask)!=0;
                                                testOffset <<= 1) {
    baseAddress[testOffset] = antipattern;
    for (offset=sizeof(datum); (offset & addressMask)!=0; offset <<= 1) {
      if ((baseAddress[offset] != pattern) && (offset != testOffset)) {
        return ((datum xdata *) &baseAddress[testOffset]);
      }
    }
    baseAddress[testOffset] = pattern;
  }
  return (NULL);
}

/******************************* 器件測(cè)試函數(shù) ****************************** 函數(shù)原型:datum xdata *memTestDevice(volatile datum xdata * baseAddress,  
*                                                     unsigned long nBytes)
* 功    能:通過(guò)對(duì)存儲(chǔ)器器件的整個(gè)地址單元進(jìn)行加1和減1來(lái)測(cè)試其完整性,每一
*           個(gè)存儲(chǔ)位都要進(jìn)行寫0和寫1測(cè)試。測(cè)試基地址以及測(cè)試范圍由主調(diào)函數(shù)
*           給定。測(cè)試成功返回NULL,并且整個(gè)存儲(chǔ)器區(qū)域?qū)⒂?填充。
*           測(cè)試失敗則返回發(fā)生錯(cuò)誤的第一個(gè)存儲(chǔ)器地址。通過(guò)檢查存儲(chǔ)器內(nèi)容可
*           以找出其它錯(cuò)誤信息。
*************************************************************************/
datum xdata *memTestDevice(volatile datum xdata * baseAddress, 
unsigned long nBytes) {
  unsigned long offset;
  unsigned long nWords = nBytes / sizeof(datum);
  datum pattern;
  datum antipattern;

  /* 用已知數(shù)據(jù)填充存儲(chǔ)器單元 */
  for (pattern = 1, offset = 0; offset < nWords; pattern++, offset++) {
    baseAddress[offset] = pattern;
  }

  /* 檢查每個(gè)存儲(chǔ)器單元并將其取反 */
  for (pattern = 1, offset = 0; offset < nWords; pattern++, offset++) {
    if (baseAddress[offset] != pattern) {
      return ((datum xdata *) &baseAddress[offset]);
    }

    antipattern = ~pattern;
    baseAddress[offset] = antipattern;
  }

  /* 檢查每個(gè)存儲(chǔ)器單元并將其清零 */
  for (pattern = 1, offset = 0; offset < nWords; pattern++, offset++) {
    antipattern = ~pattern;
    if (baseAddress[offset] != antipattern) {
      return ((datum xdata *) &baseAddress[offset]);
    }
    baseAddress[offset] = 0;
  }
  return (NULL);
} 

/***************************** 存儲(chǔ)器測(cè)試函數(shù)*****************************
* 函數(shù)原型:memTest()
* 功    能:測(cè)試外部RAM存儲(chǔ)器數(shù)據(jù)總線、地址總線以及RAM器件。
*           測(cè)試成功返回0,測(cè)試失敗返回-1
**************************************************************************/
int memTest(void) {
  #define BASE_ADDRESS  (volatile datum xdata *) 0x00009000 
  #define NUM_BYTES     8 * 1024
  if ((memTestDataBus(BASE_ADDRESS) != 0) ||
      (memTestAddressBus(BASE_ADDRESS, NUM_BYTES) != NULL) ||
      (memTestDevice(BASE_ADDRESS, NUM_BYTES) != NULL))
  {
    return (-1);
  }
  else
  {
    return (0);
  }		
}

void main(void) {
    SCON = 0x5a;        
    TMOD = 0x20;  
    TCON = 0x69;  
    TH1 =  0xfd; 
  if (!memTest())  printf("test t OK\n");
  else printf("test fail\n");
  while(1);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一福利视频在线| 国产精品你懂的在线| 亚洲国产日韩精品| 欧美日韩中文字幕一区二区| 亚洲国产精品人人做人人爽| 欧美日韩一区在线| 日本午夜一本久久久综合| 日韩精品一区二区三区老鸭窝| 毛片不卡一区二区| 欧美videofree性高清杂交| 国产成人综合亚洲网站| 中文字幕中文字幕一区二区| 一本久道久久综合中文字幕| 午夜视频一区二区三区| 久久综合成人精品亚洲另类欧美 | 国产一区二区视频在线播放| www久久久久| 色94色欧美sute亚洲线路二| 日本中文字幕一区| 欧美国产一区视频在线观看| 欧洲一区在线电影| 免费日本视频一区| 国产精品久久网站| 欧美欧美欧美欧美| 成人av综合一区| 天天综合网天天综合色| 中文字幕av免费专区久久| 日本韩国一区二区三区| 九九精品视频在线看| 亚洲欧美经典视频| 精品国内片67194| 色偷偷一区二区三区| 久久爱www久久做| 亚洲狼人国产精品| 国产三级欧美三级| 欧美午夜精品久久久久久超碰 | 国产精品麻豆一区二区| 欧美一区二区视频观看视频| 99久久久免费精品国产一区二区| 日韩成人一级片| 亚洲欧美另类小说视频| 精品国产百合女同互慰| 在线观看免费一区| 不卡一卡二卡三乱码免费网站| 青青草精品视频| 亚洲一区二区三区中文字幕 | 久久久久久久久岛国免费| 在线影院国内精品| 国产91丝袜在线播放九色| 日韩国产欧美在线观看| 亚洲免费在线视频一区 二区| 久久这里都是精品| 欧美一区二区三区日韩视频| 色国产精品一区在线观看| 国产91在线|亚洲| 精品在线观看免费| 美女视频黄 久久| 午夜电影网一区| 夜夜嗨av一区二区三区中文字幕| 国产精品午夜电影| 久久中文娱乐网| 久久综合久色欧美综合狠狠| 欧美一区二区三区视频免费播放| 欧美私人免费视频| 在线国产电影不卡| 97久久人人超碰| 97精品超碰一区二区三区| 国产成人99久久亚洲综合精品| 国内外成人在线视频| 久久电影网站中文字幕| 免费不卡在线观看| 日韩国产欧美一区二区三区| 亚洲国产精品精华液网站| 亚洲自拍偷拍麻豆| 亚洲国产成人av好男人在线观看| 亚洲综合一区二区| 亚洲综合自拍偷拍| 丝袜美腿成人在线| 日韩主播视频在线| 麻豆传媒一区二区三区| 另类调教123区 | 国产精品成人网| 日韩美女久久久| 亚洲综合色区另类av| 亚洲一区二区不卡免费| 五月天激情综合| 麻豆国产欧美一区二区三区| 国模大尺度一区二区三区| 国产一区二区不卡| 成人免费av网站| 日本道色综合久久| 欧美猛男超大videosgay| 欧美男女性生活在线直播观看| 日韩亚洲电影在线| 国产亚洲一区二区三区四区 | 国产精品一区二区久激情瑜伽| 国产精品一区二区免费不卡 | 国产一区二区三区蝌蚪| 国产精品主播直播| 91美女在线观看| 欧美日韩小视频| 久久女同精品一区二区| 国产精品夫妻自拍| 天堂va蜜桃一区二区三区漫画版| 久久99日本精品| av日韩在线网站| 制服丝袜av成人在线看| 国产欧美一区二区三区在线老狼| 亚洲欧美日韩电影| 美国十次了思思久久精品导航| 国产福利不卡视频| 在线免费av一区| 精品动漫一区二区三区在线观看| 国产精品色一区二区三区| 亚洲成人综合在线| 风间由美一区二区av101| 欧美日韩在线免费视频| 久久精品视频一区| 午夜久久久久久久久久一区二区| 国产精品资源站在线| 欧美日韩小视频| 国产精品久久久久久户外露出| 亚洲mv在线观看| 成人激情免费电影网址| 在线综合视频播放| 国产精品麻豆网站| 九九精品一区二区| 欧美三级日韩在线| 国产精品久久久久久久久免费丝袜 | 欧美一a一片一级一片| www亚洲一区| 日韩精品一二三| 91在线视频在线| 欧美精品一区二区不卡| 亚洲成av人在线观看| proumb性欧美在线观看| 欧美刺激午夜性久久久久久久| 亚洲最大色网站| 99国产精品国产精品久久| xnxx国产精品| 久国产精品韩国三级视频| 欧美在线观看视频在线| 国产精品女主播av| 国产一区二区女| 欧美电影免费观看高清完整版在线| 一区二区三区在线观看欧美| 国产一区二区三区在线观看精品 | 秋霞成人午夜伦在线观看| 99久久婷婷国产综合精品电影 | 日本成人在线看| 欧美性感一区二区三区| 国产精品美日韩| 国产在线麻豆精品观看| 欧美人成免费网站| 亚洲成a人v欧美综合天堂| 97久久人人超碰| 综合自拍亚洲综合图不卡区| 国产成人啪午夜精品网站男同| 日韩精品一区二区三区视频在线观看 | 国产在线播放一区二区三区| 欧美群妇大交群中文字幕| 亚洲一区二区三区精品在线| 91精品福利视频| 艳妇臀荡乳欲伦亚洲一区| 日本高清不卡在线观看| 亚洲精品成人悠悠色影视| 色婷婷av久久久久久久| 亚洲男人的天堂在线aⅴ视频| 99精品视频在线观看免费| 国产精品国产三级国产三级人妇| 国产黄人亚洲片| 成人欧美一区二区三区1314| 成人av在线看| 亚洲激情五月婷婷| 欧美群妇大交群中文字幕| 五月天婷婷综合| 精品久久一区二区| 国产v综合v亚洲欧| 中文字幕制服丝袜一区二区三区 | 亚洲电影第三页| 欧美另类久久久品| 毛片av中文字幕一区二区| 精品国产sm最大网站免费看| 国内久久婷婷综合| 中文字幕乱码一区二区免费| 91丨国产丨九色丨pron| 亚洲一区二区三区四区中文字幕| 欧美日韩国产美女| 韩国成人福利片在线播放| 日本一区二区三区在线不卡| 91麻豆产精品久久久久久 | 日韩女优电影在线观看| 国产一区二区三区免费看| 中文字幕在线一区免费| 欧美怡红院视频| 国产一区亚洲一区| 亚洲色图在线播放| 日韩三级视频在线看| 成人午夜av影视| 日韩精品视频网站|