|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
程序不執(zhí)行條件比較的的怪問題,請教。。。! |
| 作者:zhaojiude 欄目:ARM技術(shù) |
用LPC2132,AXD調(diào)試器,EASY-JTAG,以下一段程序在條件滿足時,不跳出for循環(huán): for(i=0;i<Length;i++) { n = 16 + i; ` ` DataFlashBuffer[n] = *wdata; ? @ wdata++; ? X? if(i>=Length) \ C o m m o break; A u t o d e } 其中Length=0X38,單步執(zhí)行,當i>=0x38時,還在for循環(huán)里運行,一直運行到數(shù)組越界,跳入數(shù)據(jù)中止,在數(shù)據(jù)中止處返回,還在for循環(huán)里一直運行, 其相應的匯編語句為: [0x2a00000d] bcs 0xa868 ; (SaveWaterData + 0x240) [0xe59f1220] ldr r1,0x0000aa58 ; = #0x40000159======循環(huán)開始== [0xe2802010] add r2,r0,#0x10 [0xe3c28b40] bic r8,r2,#0x10000 [0xe5d72000] ldrb r2,[r7,#0] [0xe7c12008] strb r2,[r1,r8] [0xe2877001] add r7,r7,#1 [0xe2877001] add r7,r7,#1 [0xe1500002] cmp r0,r2 [0x2a000004] bcs 0xa868 ; (SaveWaterData + 0x240)====循環(huán)結(jié)束======== [0xe2800001] add r0,r0,#1 [0xe3c00b40] bic r0,r0,#0x10000 這個問題困擾了我2天了,請教了!。。。。!另,在這段程序之前,運行了IAP,但我已延時了足夠長的時間,而且隔了很長時間(分鐘級),以前遇見過IAP之后,馬上運行程序,沒有實質(zhì)運行,但IAP后延時一段時間后就好了呀。 |
| 2樓: | >>參與討論 |
| 作者: zxwwwwcom 于 2005/12/26 15:09:00 發(fā)布:
你的程序有錯誤。! for(i=0;i<Length;i++) if(i>=Length) break; //當i==Length時 for循環(huán)就結(jié)束了,if下的break;無法執(zhí)行到! |
|
| 3樓: | >>參與討論 |
| 作者: zhaojiude 于 2005/12/26 16:29:00 發(fā)布:
if語句是不正常后加的測試代碼;但還是不跳出for循環(huán)。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |