<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Eclipse在線調(diào)試ARM11——Tiny6410+OpenJTAG

          Eclipse在線調(diào)試ARM11——Tiny6410+OpenJTAG

          作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏

          其中“D:/Working/arm/init/init.bin”要根據(jù)您的具體情況進(jìn)行改寫。

          本文引用地址:http://www.ex-cimer.com/article/201611/322800.htm

          第二種跟第一種的不同在于第二種情況需要將init.bin文件燒寫到Steppingtone來初始化Tiny6410的DDR。init.bin及其工程可以在這里下載,適用于所有支持OpenJTAG的S3C6410開發(fā)板:

          另外,配置好這些后還需要配置調(diào)試環(huán)境的Commands選項(xiàng),對于第一種情況,可以如下填寫:

          對于第二種情況,則可以這樣寫:

          第一個(gè)里面寫有reset和halt的原因是鎖相環(huán)不能重復(fù)初始化,如果程序中對鎖相環(huán)進(jìn)行了設(shè)置reset之后就會(huì)失效,這樣每次調(diào)試都會(huì)執(zhí)行reset,后一次的設(shè)置就不會(huì)受前一次的影響。對于第二中情況里面沒有加reset是因?yàn)榇a要寫到DDR中進(jìn)行調(diào)試,reset之后init.bin的初始化作用失效,調(diào)試時(shí)無法燒寫代碼到DDR,進(jìn)而無法進(jìn)行調(diào)試。所以第二種情況下被調(diào)試的代碼應(yīng)該判斷自己的位置,可以模擬u-boot,檢測到代碼在DDR中運(yùn)行時(shí)跳過lowlevel_init。

          通過上面這些分析,我們應(yīng)該了解了OpenJTAG的調(diào)試原理,現(xiàn)在總結(jié)一下,使用OpenJTAG在線調(diào)試Tiny6410時(shí)應(yīng)該按照以下步驟進(jìn)行:

          (1)啟動(dòng)OpenOCD,連接OpenOCD到開發(fā)板,然后在telnet中執(zhí)行halt,將目標(biāo)機(jī)掛起。

          注意:默認(rèn)狀態(tài)下,OpenOCD自帶配置文件的JTAG時(shí)鐘頻率是6000,對于某些開發(fā)板來說這個(gè)工作頻率太高,經(jīng)過測試Tiny6410的JTAG時(shí)鐘頻率為1000時(shí)最佳。

          (2)創(chuàng)建Eclipse,編碼代碼并編譯。

          注意:代碼編譯時(shí)應(yīng)該啟用-g選項(xiàng),這樣生成的ELF文件才會(huì)帶有調(diào)試信息,如果不加-g則沒有調(diào)試信息,無法調(diào)試。

          (3)按照前面的貼圖,配置Eclipse調(diào)試選項(xiàng)。Commands的break _start是指對_start下斷點(diǎn),當(dāng)然可以改成其他函數(shù)。

          (4)進(jìn)行調(diào)試。

          好了,到這里OpenJTAG調(diào)試Tiny6410的全部工作已經(jīng)完成,這時(shí)你已經(jīng)可以順利的進(jìn)行Tiny6410的單步調(diào)試了,起始這里講述的調(diào)試原理適用于所有支持OpenJTAG的S3C6410開發(fā)板,所以如果調(diào)試其他開發(fā)板也可以按照以上分析進(jìn)行操作,下面是單步調(diào)試的貼圖,作為真相吧!

          最后,提幾個(gè)需要注意的問題:

          (1)在編寫Makefile時(shí)應(yīng)該注意添加-g選項(xiàng),否則elf文件中沒有調(diào)試信息,無法進(jìn)行調(diào)試

          (2)在編寫Makefile時(shí)不應(yīng)使用-O優(yōu)化選項(xiàng),優(yōu)化后的代碼跟原代碼失去了對應(yīng)關(guān)系,調(diào)試時(shí)跳轉(zhuǎn)錯(cuò)亂。

          (3)調(diào)試uboot或者內(nèi)核時(shí)需要根據(jù)具體的要求修正openjtag.cfg中的頻率。

          (4)OpenJTAG下載程序時(shí)應(yīng)該使用OpenOCD而不應(yīng)該使用oflash,如果是用oflash需要將dbgsel引腳拉高,強(qiáng)烈建議直接使用OpenOCD指令進(jìn)行燒寫。對于TQ2440或者M(jìn)INI2440可以直接使用oflash燒寫程序。


          上一頁 1 2 下一頁

          評論


          推薦視頻

          更多>>

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();