音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

ads編譯后運(yùn)行和匯編不一致的的奇怪問題。請教。!

作者:zhaojiude 欄目:ARM技術(shù)
ads編譯后運(yùn)行和匯編不一致的的奇怪問題。請教。!
LPC2132,ADS編譯,AXD調(diào)試。
前2天發(fā)現(xiàn)的跳不出for循環(huán)的問題,今天在匯編里跟蹤,發(fā)現(xiàn)是寄存器的31位置1,一個很大的數(shù)據(jù),導(dǎo)致程序越界。但為什么會出現(xiàn)該現(xiàn)象,請各位看看,請教周工公司的技服,說沒遇見過,也沒好的辦法,再次請教高手,F(xiàn)象如下:

函數(shù)調(diào)用關(guān)系如下:
main()-->MyDeCodeAndProc(uint8 *Buffer,uint16 Length)-->ProcMeter(unsigned CHAR *RecvData,uint16 Length)-->SaveWaterData(unsigned CHAR WaterID[],unsigned CHAR *WaterData,uint16 Len)
在SaveWaterData()函數(shù)里,有以下語句:
volatile uint32 LLen;

LLen = (uint32)Len;

for(i=0;i < (uint16)LLen;i++)
{    
n = 16 + i;
DataFlashBuffer[n] = *wdata;
wdata++;
//if(i>=Length)  //異常后的測試
//break;
}
uint16 Len的參數(shù)傳遞發(fā)生了改變--在C調(diào)試窗口是正確的,進(jìn)入反匯編查看,本來是0x0038的值,在反匯編窗口R2寄存器的值為0x80000038,
在進(jìn)入SaveWaterData()函數(shù)后,如果在for循環(huán)的條件判斷處為i〈Len;則跳不出for循環(huán),按上述先定義一個uint32變量,再強(qiáng)制轉(zhuǎn)換,正常;但在進(jìn)入該函數(shù)里調(diào)用的另一個函數(shù)后,又出現(xiàn)上述問題。奇怪!,我改過堆棧,改過程序的定位,都沒影響,請教各位了。。。

2樓: >>參與討論
zhaojiude
自己頂一下
自己頂一下

3樓: >>參與討論
lws
呵呵,同病相憐
幾乎和你一樣,之前是好的,不過就加了幾個函數(shù)和變量就這樣了,每次加載程序到RAM后總是跳到一個固定地址,不是到main,用以前的沒問題,莫名其妙.

4樓: >>參與討論
zhaojiude
自己再頂一下
自己再頂一下

5樓: >>參與討論
zhaojiude
再頂再頂再頂再頂
 
6樓: >>參與討論
深思
re
unsigned CHAR *pWaterID,unsigned CHAR *WaterData,uint16 Len

uint16 i;
for (i=0; i<len;i++)
{
...

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
LPC21XX奇怪的IAP問題!ADS1.2的BUG嗎?LPC21xx的BUG嗎?請教高人?
ARTX 2.0是什么東東?怎么用的?
求助:C代碼和匯編對不上,在線等
2132的多任務(wù)雙串口
如何解決  IO1DIR = (1<<31); 編譯警告問題
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號