新聞中心

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

        ARM裸板調試技術

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

        本文引用地址:http://www.104case.com/article/201611/317873.htm

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

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

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

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

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

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

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

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

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

        由于是裸板,所以ARM上電以后沒有做過任何的初始化。一般會通過執行一個腳本來對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就應該已經被初始化好了。這時候可以做讀寫Memory的測試,在菜單中選擇”Process Views”,然后選擇”Memory”,輸入DRAM的地址,然后修改一些地址上面的值,被改變后的值會變成紅色,如果可以修改,表示DRAM應該工作正常了,這里給一張截圖:

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


        接下來就是下載程序到DRAM中運行了,主要目的是通過該程序來燒錄bootloader。現在的ARM處理器都很強大,支持多種啟動模式。根據不同的啟動模式,要將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在的bootloader都很強大,Linux有uboot,WinCE有Eboot,都能支持燒錄,下載等功能。一般如果是買的開發板,都會提供燒錄工具。不過在更換了DRAM和Nandflash以后,燒錄工具可能也需要重新調試了。而且使用的bootloader也需要做改動。



        關鍵詞: ARM裸板調試技

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 会昌县| 新巴尔虎左旗| 南昌县| 茶陵县| 玉环县| 咸丰县| 纳雍县| 龙州县| 大埔区| 礼泉县| 宝丰县| 绥宁县| 滕州市| 阿巴嘎旗| 江华| 荔浦县| 漯河市| 博客| 乐至县| 乐清市| 铜山县| 灵武市| 德兴市| 磴口县| 湘潭县| 彭山县| 海原县| 阿克苏市| 桦川县| 喜德县| 成都市| 康定县| 潢川县| 新田县| 濮阳市| 静乐县| 阜平县| 卢龙县| 吴堡县| 冷水江市| 双辽市|