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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM裸板調試技術

          ARM裸板調試技術

          作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏
          我所說的ARM裸板調試是指ARM的PCB板制作完后,貼片回來的板子,不但沒有任何程序,上電都是第一次。之所以寫一篇blog,是因為最近調試了一塊ARM板,基于S3C6410的,但是我們把原來的M-DDR DRAM和Nandflash全部都換掉了,硬件做了不小的改動。以前也做過類似的裸板調試,從ARM7到ARM9,再到現(xiàn)在的ARM11。今天就來寫一篇ARM裸板調試的文章。

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

          如我前面所說,剛拿到ARM裸板的時候,首先就是要上電。不過上電之前,最好測一下電源和地是否短路。然后就可以上電了,我一般采用穩(wěn)壓電源,這樣可以看到電流的大小,如果電流太大,說明硬件可能有問題,用手摸摸板子上的芯片,看看是否燙手,查一下各個電源模塊的供電電壓是否正常。如果ARM板正常,就可以開始了。下面根據(jù)我個人經(jīng)驗,介紹調試步驟和可能遇到的問題:

          1. 連接仿真器,讀寫寄存器

          將硬件仿真器插到ARM板的JTAG口上,然后連接PC,現(xiàn)在的ARM仿真器好像都是通過USB和PC相連了。連接好后,就給板子上電,然后打開PC端的調試軟件,我在這里用的是ARM11的仿真器,調試軟件用AXD。如果AXD識別出ARM處理器表示連接成功,如果沒識別出來就是有問題了。

          (1) 確認ARM處理器的所有供電是否正確

          (2) 確認ARM處理器的RESET管腳

          (3) 確認ARM處理器的晶振是否震動

          (4) 確認JTAG接口是否正確

          如果上面這4條都正常,仿真器就應該可以找到ARM。

          2. 通過腳本初始化ARM處理器及DRAM

          由于是裸板,所以ARM上電以后沒有做過任何的初始化。一般會通過執(zhí)行一個腳本來對ARM做一個基本的初始化。腳本一般就是一個txt文件,例如:

          setmem 0x36001004 0x4 32

          setmem 0x36001010 0x40d 32

          setmem 0x36001014 0x6 32

          setmem 0x36001018 0x3 32

          setmem 0x3600101c 0xf 32

          setmem 0x36001020 0xf 32

          setmem 0x36001024 0xf 32

          mem 0x36001000 +1 32

          mem 0x36001004 +1 32

          mem 0x36001008 +1 32

          mem 0x3600100c +1 32

          ….

          上面的腳本命令是用于AXD軟件的,其中“setmem”命令表示設置某個值到某個地址上,而“mem”命令表示從某個地址讀一個值并打印出來。通過這兩條命令,可以設置ARM內部的寄存器,也可以讀出寄存器的值。腳本的作用主要是對ARM做初始化,一般包括關閉Interrupt和watchdog,配置clock,配置GPIO,配置DRAM控制器。

          如何在AXD中運行腳本呢?首先在AXD菜單中選擇”System Views”,然后選擇”Command Line Interface”,會彈出一個窗口,在窗口中輸入如下命令:

          ob c:/init.txt

          該命令的意思是運行C盤根目錄下的init.txt中的腳本命令。如圖:

          腳本運行完成以后,板子上的ARM和DRAM就應該已經(jīng)被初始化好了。這時候可以做讀寫Memory的測試,在菜單中選擇”Process Views”,然后選擇”Memory”,輸入DRAM的地址,然后修改一些地址上面的值,被改變后的值會變成紅色,如果可以修改,表示DRAM應該工作正常了,這里給一張截圖:

          3. 通過AXD下載程序到DRAM中運行


          接下來就是下載程序到DRAM中運行了,主要目的是通過該程序來燒錄bootloader。現(xiàn)在的ARM處理器都很強大,支持多種啟動模式。根據(jù)不同的啟動模式,要將bootloader燒到不同的介質當中。在AXD菜單中選擇”File”,然后選擇”Load Memory from File…”,會彈出一個窗口,如下:


          如圖要在”Address”輸入下載的地址,這個地址就是Loader_RAM.bin的運行地址。下載成功以后,打開串口,然后在AXD的”Command Line Interface”中輸入命令”setpc 0x50000000”,將PC指針指到0x50000000地址上,然后輸入命令”go”開始運行。

          4. 燒錄bootloader,啟動ARM板

          被下載的程序運行以后,就可以通過該程序將bootloader燒錄到Nandflash,NORflash或者SD卡中,具體取決于板子所支持的啟動模式。這個程序可以通過串口下載bootloader。還有一種方法就是在AXD中暫停程序運行,然后通過仿真器下載bootloader到DRAM中,然后再在AXD中恢復程序運行,通過最開始下載的程序將下載的bootloader燒到flash或者SD卡當中。

          燒錄成功以后,關電,拔掉仿真器的JTAG,重新上電,這個時候ARM板中的bootloader就可以運行了。

          bootloader運行后,工作就容易了?,F(xiàn)在的bootloader都很強大,Linux有uboot,WinCE有Eboot,都能支持燒錄,下載等功能。一般如果是買的開發(fā)板,都會提供燒錄工具。不過在更換了DRAM和Nandflash以后,燒錄工具可能也需要重新調試了。而且使用的bootloader也需要做改動。



          關鍵詞: ARM裸板調試技

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();