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

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

JTAG裝載調(diào)試程序的超級(jí)GUG!!

作者:Chang_HS 欄目:ARM技術(shù)
JTAG裝載調(diào)試程序的超級(jí)GUG!!
在程序中將一個(gè)循環(huán)語(yǔ)句:  for(i=0;i<=128;i++) Temp_Buffer[i]=0;
改為:for(i=0;i<128;i++) Temp_Buffer[i]=0;
或者將后者改為前者,只要整個(gè)程序中其他地方不做任何改動(dòng),僅僅將<改成<=或者將<=改成< ,然后用JTAG重新裝載image(thrumb in FLASH 模式),會(huì)發(fā)覺(jué)裝載進(jìn)去的新代碼和原來(lái)的代碼一樣(仍然用的<),也就是說(shuō)將<改成<=不起作用,程序反匯編碼可以看出來(lái)明顯的錯(cuò)誤,程序運(yùn)行結(jié)果也是錯(cuò)的,如果整個(gè)程序中其他任何一個(gè)地方再做一些改動(dòng),再裝載image又能得出正確結(jié)果.
而用ADS12自帶的仿真調(diào)試軟件裝載image沒(méi)有這個(gè)錯(cuò)誤,下面是我用JTAG和仿真軟件裝載同一個(gè)image出現(xiàn)的不同結(jié)果,顯然上面的一段JTAG裝載的是錯(cuò)誤的代碼!!

兩者不同之處 : 匯編碼第7行
JTAG裝載為 bcs 0x3edc
ARMU裝載為 bhi 0x3edc


for(i=0;i<=128;i++) Temp_Buffer[i]=0;
    [0x2000]   mov      r0,#0
    [0xab20]   add      r3,r13,#0x80
    [0x8198]   strh     r0,[r3,#0xc]
    [0xab20]   add      r3,r13,#0x80
    [0x8998]   ldrh     r0,[r3,#0xc]
    [0x2880]   cmp      r0,#0x80
    [0xd20b]   bcs      0x3edc  ; (CPowerOn::Initial_Meters + 0x7e)
    [0xe004]   b        0x3ed0  ; (CPowerOn::Initial_Meters + 0x72)
    [0xab20]   add      r3,r13,#0x80
    [0x8998]   ldrh     r0,[r3,#0xc]
    [0x3001]   add      r0,#1



  for(i=0;i<=128;i++) Temp_Buffer[i]=0;
    [0x2000]   mov      r0,#0
    [0xab20]   add      r3,r13,#0x80
    [0x8198]   strh     r0,[r3,#0xc]
    [0xab20]   add      r3,r13,#0x80
    [0x8998]   ldrh     r0,[r3,#0xc]
    [0x2880]   cmp      r0,#0x80
    [0xd80b]   bhi      0x3edc  ; (CPowerOn::Initial_Meters + 0x7e)
    [0xe004]   b        0x3ed0  ; (CPowerOn::Initial_Meters + 0x72)
    [0xab20]   add      r3,r13,#0x80
    [0x8998]   ldrh     r0,[r3,#0xc]
    [0x3001]   add      r0,#1
   

* - 本貼最后修改時(shí)間:2006-5-10 16:36:28 修改者:Chang_HS

2樓: >>參與討論
Chang_HS
程序代碼是直接從調(diào)試軟件的反匯編碼拷貝下來(lái)的,
大家可以逐行比較.

3樓: >>參與討論
Chang_HS
??
 
4樓: >>參與討論
Chang_HS
超級(jí)BUG,反復(fù)試驗(yàn)都是這個(gè)結(jié)果!!!
做其他改動(dòng)重新裝載image都可以正常運(yùn)行,就是不能改<為<=,改了重新裝載都不起作用!!!

5樓: >>參與討論
Chang_HS
我用的i是 unsigned SHORT 型的,用unsigned CHAR也一樣!
 
6樓: >>參與討論
bbb_ATK
RE
對(duì)于匯編來(lái)說(shuō)只是改一條語(yǔ)句,Image的大小并不變,可能是這個(gè)原因?qū)е赂緵](méi)有重裝。我以前也遇到過(guò)。所以我后來(lái)對(duì)于這樣的小的修改都會(huì)先Remove Object Code。然后再編譯一次,可以確保重新編譯了。

7樓: >>參與討論
yadog
re
樓上說(shuō)得有可能啊

8樓: >>參與討論
Chang_HS
Remove Object Code,不是這個(gè)問(wèn)題,
Remove Object Code這個(gè)問(wèn)題不是的,整個(gè)TARGET的Object都MOVE掉也不能解決問(wèn)題,查看了整個(gè)目錄,所有的文件都有更新,轉(zhuǎn)載的時(shí)候一樣有這個(gè)問(wèn)題,此外樓上別忘了,用ADS自帶的ARMu仿真軟件裝載同一個(gè)image,得出的結(jié)果卻是正確的,可見(jiàn)生成的文件是沒(méi)有問(wèn)題的。

9樓: >>參與討論
Chang_HS
其實(shí)大家都可以試的,將<改成<=,其他程序不變,然后裝載看結(jié)果
 
10樓: >>參與討論
Chang_HS
看帖子的人很多,去試驗(yàn)一下的人卻沒(méi)有一個(gè)!
難道只有我的開(kāi)發(fā)板上有這個(gè)問(wèn)題?


11樓: >>參與討論
twentyone
我晚上試一試
估計(jì)是樓主自己的問(wèn)題.我晚上試一試,然后把試驗(yàn)結(jié)果放上來(lái).

12樓: >>參與討論
hehuading
兄弟,不是JTAG問(wèn)題,是編譯問(wèn)題。
兄弟,不是JTAG問(wèn)題,是編譯問(wèn)題。

13樓: >>參與討論
Chang_HS
twentyone 你試驗(yàn)完了就知道了
剛才我的另外一個(gè)同事也試出了這個(gè)問(wèn)題,他用的開(kāi)發(fā)板和我的不一樣,軟件也不一樣,但這個(gè)問(wèn)題是一樣的

14樓: >>參與討論
Chang_HS
hehuading,不是編譯的問(wèn)題,如果是編譯問(wèn)題,怎用ARMu裝載沒(méi)有問(wèn)題
此外,編譯完的HEX燒入芯片中,運(yùn)行沒(méi)有問(wèn)題!

15樓: >>參與討論
xiaoxiao_1
深有同感!經(jīng)常毛病百出呀!
 
16樓: >>參與討論
twentyone
剛試驗(yàn)過(guò),沒(méi)發(fā)現(xiàn)問(wèn)題
LZ,剛試驗(yàn)過(guò),沒(méi)有發(fā)現(xiàn)你說(shuō)的問(wèn)題.LOAD完全正確.

17樓: >>參與討論
twentyone
圖1
 

* - 本貼最后修改時(shí)間:2006-5-12 2:10:13 修改者:twentyone

18樓: >>參與討論
twentyone
圖2
 

* - 本貼最后修改時(shí)間:2006-5-12 2:10:46 修改者:twentyone

19樓: >>參與討論
twentyone
原因
我LOAD的時(shí)候是LOAD到RAM里面去的.

不知道是不是因?yàn)閾е鬟x擇了"thumb in FLASH.html">FLASH"造成的. 按字面理解,"THUMB IN FLASH"的意思是不是轉(zhuǎn)載到FLASH里面,因?yàn)?a target="_blank" href="http://m.58mhw.cn/stock-ic/FLASH.html">FLASH是只讀的,所以調(diào)試器就沒(méi)有更新內(nèi)容.

不過(guò)看了摟主發(fā)的帖子,還不能確定摟主用的是什么調(diào)試器,是AXD嗎?



20樓: >>參與討論
Chang_HS
re:twentyone
估計(jì)是FLASH中的問(wèn)題,我的程序較大,沒(méi)有辦法在RAM中試,切記其他任何地方都不要改動(dòng)!
FLASH中反復(fù)試都是有問(wèn)題,去其他人那里去試了,也是一樣的結(jié)果!


21樓: >>參與討論
twentyone
re
如果你的程序是下載到FLASH里面去,你肯定用的是別的工具吧?難道你用AXD直接把程序下載到FLASH里面去? 如果你用的是別的工具,那就不一定是AXD的問(wèn)題,可能是FLASH燒寫(xiě)的問(wèn)題.

希望你能仔細(xì)測(cè)試一下,看看問(wèn)題到底在那里.

22樓: >>參與討論
Chang_HS
re:twentyone
此外,我的代碼是在Thrumb模式下的,是用的AXD調(diào)試器,畫(huà)面和你用的是一模一樣的,不同的地方是在FLASH中,thrumb模式

23樓: >>參與討論
Chang_HS
re:twentyone
你能不能在FLASH中試驗(yàn)一下?

24樓: >>參與討論
Chang_HS
在RAM中裝載確實(shí)是沒(méi)有問(wèn)題的!
FLASH中裝載不光是<=的問(wèn)題,改一些常數(shù)表格也不重新裝載!

25樓: >>參與討論
twentyone
re
如果是裝載到FLASH里面去的話(huà),和AXD肯定沒(méi)關(guān)系.因?yàn)槟銣y(cè)試也說(shuō)明了,裝載到RAM里面去確實(shí)是沒(méi)問(wèn)題的.我想問(wèn)題應(yīng)該是在你的FLASH燒寫(xiě)工具上.不知道你用的是什么仿真器?

另外,我用自己寫(xiě)的IAP燒寫(xiě)程序燒寫(xiě)FLASH,沒(méi)有問(wèn)題的.

26樓: >>參與討論
Chang_HS
就沒(méi)有一個(gè)有同感的?怪
 
27樓: >>參與討論
Chang_HS
真希望ZLG的同志能試一下或者回個(gè)貼,有不有問(wèn)題也應(yīng)該發(fā)個(gè)言
 
28樓: >>參與討論
Chang_HS
再讓大家看一眼這個(gè)問(wèn)題,知道了就不算問(wèn)題,不知道很容易迷惑!
 
29樓: >>參與討論
Chang_HS
re:twentyone 誰(shuí)說(shuō)AXD只能裝載到RAM?
 
30樓: >>參與討論
wlq_9
更新表格的時(shí)候,AXD有時(shí)也不重裝.
偶遇到過(guò).是在FLASH下運(yùn)行的,改了常數(shù)表格里的一個(gè)值,怎么改,仿真出來(lái)都是最開(kāi)始那個(gè).

31樓: >>參與討論
twentyone
re Chang_HS
這個(gè)帖子討論了這么久,你好像還沒(méi)有說(shuō)過(guò)你用的是什么仿真器?
你能確定這是AXD的問(wèn)題,還是仿真器的問(wèn)題嗎?

AXD本身不能直接將程序下載到FLASH里面,這點(diǎn)是肯定的.AXD只是告訴仿真器需要下載什么數(shù)據(jù),到什么位置上去.從AXD的角度來(lái)說(shuō),AXD并不知道那個(gè)地址是FLASH,那個(gè)地址是SDRAM/RAM.你也做過(guò)試驗(yàn),把程序下載到RAM里面去的話(huà),是沒(méi)有你說(shuō)的那個(gè)更新問(wèn)題的.這就說(shuō)明AXD從AXF文件里提取的數(shù)據(jù)是更新過(guò)的,沒(méi)有錯(cuò)誤的.

如果你現(xiàn)在能直接將程序轉(zhuǎn)載到FLASH里面去,肯定是你的仿真器提供的FLASH下載功能.如果是仿真器提供的FLASH下載功能,你怎么能確定這個(gè)是AXD的BUG,而不是仿真器的問(wèn)題呢?




32樓: >>參與討論
Chang_HS
re:twentyone
帖子一開(kāi)始就說(shuō)了用的JTAG調(diào)試,也說(shuō)的是JTAG的裝載程序的BUG,調(diào)試器是AXD,用周立功的LPC2114開(kāi)發(fā)板,用周立功的模板程序用JTAG裝載,可以裝載到FLASH中呀,你怎么說(shuō)不可以呢?ThumbRelInFlash

33樓: >>參與討論
twentyone
re Chang_HS
基本上所有的ARM的調(diào)試都是基于JTAG的.都是JTAG調(diào)試.那你用的到底是什么仿真器呢? EASYJTAG, MULTI-ICE?, ULINK? 如果你不說(shuō)清楚,你給誰(shuí)提醒,EASYJTAG的用戶(hù),MULTI-ICE的用戶(hù),還是ULINK的用戶(hù)?

我并沒(méi)有說(shuō)不可以裝載到FLASH里面,我的意思是AXD本身不能直接下載到FLASH去,需要仿真器提供FLASH下載功能.例如,你用AXD+MULTI-ICE,就不能直接下載到FLASH里去調(diào)試.

我沒(méi)有別的意思,只是覺(jué)得,你應(yīng)該把問(wèn)題說(shuō)清楚,問(wèn)題在那里.按你說(shuō)的"JTAG裝載調(diào)試程序的超級(jí)GUG", 一棍子把JTAG調(diào)試都打死了,變成JTAG調(diào)試都有問(wèn)題了.










34樓: >>參與討論
Chang_HS
re:twentyone
在ZLG的論壇上,用的ZLG的LPC2114調(diào)試板,用的ZLG的模板程序,自然是用ZLG的EasyJTAG了,EasyJTAG驅(qū)動(dòng)版本是ZLG目前最新的

35樓: >>參與討論
twentyone
re Chang_HS
謝謝你的回復(fù).其實(shí)調(diào)試的時(shí)候,我用別的仿真器,也能用ZLG的模板的.模板和仿真器并不是一種必然的聯(lián)系. :-)

按你說(shuō)的,問(wèn)題應(yīng)該是存在的,不過(guò)應(yīng)該是EASYJTAG的問(wèn)題.EASYJTAG針對(duì)LPC系列提供了特殊的支持.所以能把程序下載到FLASH里去.從AXD里送過(guò)來(lái)的數(shù)據(jù)應(yīng)該是正確的,很可能是EASYJTAG燒寫(xiě)FLASH的時(shí)候出了問(wèn)題.

如果你覺(jué)得影響調(diào)試,可以嘗試聯(lián)系ZLG的技術(shù)支持,他們應(yīng)該能幫你解決.

36樓: >>參與討論
enic1980
你編譯修改的文件后用ISP下載下去,再連接調(diào)試就OK
用AXD好象只是建立映射連接,根本都沒(méi)有把程序下載到FLAHS里面去,所以---

37樓: >>參與討論
gdtyy
AXD+EASYJTAG可以下載和調(diào)試程序
    JTAG下載速度比ISP快,還能匯編調(diào)試。enic1980就別用慢吞吞的ISP下載了。
    我用GNU的開(kāi)發(fā)工具,生成的ELF格式的執(zhí)行文件不能在AXD里進(jìn)行源代碼調(diào)試,AXD只能識(shí)別AXF格式的文件,因此我直接燒錄bin文件,遇到的現(xiàn)象是燒下去的程序經(jīng)常跑飛,全局變量不能初始化,后來(lái)發(fā)現(xiàn)是程序沒(méi)有燒錄完全造成的,比如:最后部分總是燒不進(jìn)去,或者BSS段全是FF。我的解決辦法是把bin文件補(bǔ)上4K字節(jié)的FF,以后每次燒錄都成功,512K RAM太小,我一直在FLASH里調(diào)試,都燒了上百次了,沒(méi)有問(wèn)題。估計(jì)是小于4K的內(nèi)容EASYJTAG不執(zhí)行寫(xiě)操作,可能你只改變一個(gè)等號(hào)沒(méi)有使文件大小發(fā)生變化,EASYJTAG沒(méi)有被激活。你改變了其他語(yǔ)句導(dǎo)致程序大小變化,激活了EASYJTAG。不管怎么說(shuō),AXD沒(méi)有問(wèn)題,仿真正確,固化的結(jié)果也會(huì)正確,問(wèn)題出在FLASH燒錄上。你改變了<=,編譯器肯定正確編譯了,可惜"整個(gè)程序中其他地方不做任何改動(dòng)",bcs 0x3edc和bhi 0x3edc又恰好一樣長(zhǎng),EASYJTAG根本就沒(méi)有被激活寫(xiě)入,程序還是上次的。另外,還可能是你的程序小于4K。
    解決的辦法是加個(gè)無(wú)用的語(yǔ)句改變程序大小,適配EASYJTAG的這個(gè)特性,總之,沒(méi)什么不方便的。

參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
我有一塊2214的板子,尋一和我共同開(kāi)發(fā)的能人,有錢(qián)拿哦!
請(qǐng)教I2C的器件從地址問(wèn)題
有誰(shuí)買(mǎi)了ZLG LPC2146/2148的板
ARM中關(guān)于全局變量的問(wèn)題
請(qǐng)問(wèn):easyarm2131上的cpu pack就是貼片嗎?
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)