|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
問圈圈一個MemoryTest()的問題! |
| 作者:aceice 欄目:技術交流 |
*t_pointer = 0xaa; TestDelay(); judg_reg = *t_pointer; 第一句是往xdata的t_pointer單元中寫0xaa,那么第三句應該是從xdata的t_pointer單元中讀出數(shù)據(jù)吧? 如果存儲器該單元(t_pointer)是壞的,judg_reg的數(shù)據(jù)是什么? |
| 2樓: | >>參與討論 |
| 作者: aceice 于 2006/6/9 15:41:00 發(fā)布:
附加一個問題 每個變量的存儲類型都自己定義,這樣好嗎? |
|
| 3樓: | >>參與討論 |
| 作者: computer00 于 2006/6/10 2:08:00 發(fā)布:
如果t_pointer指向的地址是壞的,那么讀出來的值就不是0xaa了 第二個問題看不明白。 我在arm圈圈操作系統(tǒng)中寫的內存測試部分代碼: case MEMORY_TEST: //如果是內存檢測 { j=0xFF; //標志j為非0,即初始化成功 prints("MEMORY TESTing. ",1); //顯示信息 for(i=0;i<OSSizeOfMEMORYPool/4;i++) //檢測整個內存緩沖池 { OSMEMORYPool[i]=0x55555555; //寫入0x55555555 if(OSMEMORYPool[i]!=0x55555555) //如果讀回的不是0x55555555 { j=0; //則測試失敗 } OSMEMORYPool[i]=0xAAAAAAAA; //寫入0xAAAAAAAA if(OSMEMORYPool[i]!=0xAAAAAAAA) //如果讀回的不是0xAAAAAAAA { j=0; //則測試失敗 } OSMEMORYPool[i]=0; //寫入0 if(OSMEMORYPool[i]!=0) //如果讀回的不是0 { j=0; //則測試失敗 } if(i%(OSSizeOfMEMORYPool/4/80)==0) //顯示測試進度。共顯示80個> { prints(">",0); } } prints("",1); if(j) //如果測試成功 { prints("MEMORY TEST passed.",1); //顯示成功 } else //否則, { prints("Memroy TEST failed.",1); //顯示測試失敗 } OSExitCritical(); //退出臨界段 return j; //返回是否成功 } * - 本貼最后修改時間:2006-6-10 2:23:43 修改者:computer00 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |