在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            淺談ARM裸板調(diào)試

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

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

            1.連接仿真器,讀寫寄存器
            將硬件仿真器插到ARM板的JTAG口上,然后連接PC,現(xiàn)在的ARM仿真器好像都是通過USB和PC相連了。連接好后,就給板子上電,然后打開PC端的調(diào)試軟件,我在這里用的是ARM11的仿真器,調(diào)試軟件用AXD。如果AXD識別出ARM處理器表示連接成功,如果沒識別出來就是有問題了。
            (1)確認(rèn)ARM處理器的所有供電是否正確
            (2)確認(rèn)ARM處理器的RESET管腳
            (3)確認(rèn)ARM處理器的晶振是否震動
            (4)確認(rèn)JTAG接口是否正確
            如果上面這4條都正常,仿真器就應(yīng)該可以找到ARM。

            2.通過腳本初始化ARM處理器及DRAM
            由于是裸板,所以ARM上電以后沒有做過任何的初始化。一般會通過執(zhí)行一個(gè)腳本來對ARM做一個(gè)基本的初始化。腳本一般就是一個(gè)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”命令表示設(shè)置某個(gè)值到某個(gè)地址上,而“mem”命令表示從某個(gè)地址讀一個(gè)值并打印出來。通過這兩條命令,可以設(shè)置ARM內(nèi)部的寄存器,也可以讀出寄存器的值。腳本的作用主要是對ARM做初始化,一般包括關(guān)閉Interrupt和watchdog,配置clock,配置GPIO,配置DRAM控制器。
            如何在AXD中運(yùn)行腳本呢?首先在AXD菜單中選擇”System Views”,然后選擇”Command Line Interface”,會彈出一個(gè)窗口,在窗口中輸入如下命令:
            ob c:/init.txt

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


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


            3.通過AXD下載程序到DRAM中運(yùn)行

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



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

            4.燒錄bootloader,啟動ARM板
            被下載的程序運(yùn)行以后,就可以通過該程序?qū)ootloader燒錄到Nandflash,NORflash或者SD卡中,具體取決于板子所支持的啟動模式。這個(gè)程序可以通過串口下載bootloader。還有一種方法就是在AXD中暫停程序運(yùn)行,然后通過仿真器下載bootloader到DRAM中,然后再在AXD中恢復(fù)程序運(yùn)行,通過最開始下載的程序?qū)⑾螺d的bootloader燒到flash或者SD卡當(dāng)中。
            燒錄成功以后,關(guān)電,拔掉仿真器的JTAG,重新上電,這個(gè)時(shí)候ARM板中的bootloader就可以運(yùn)行了。

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


            關(guān)鍵詞: ARM裸板調(diào)

            評論


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

            關(guān)閉