您的位置 首页 培训

浅谈ARM裸板调试

我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一…

我所说的ARM裸板调试是指ARM的PCB板制造完后,贴片回来的板子,不光没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,依据S3C6410的,可是咱们把原本的M-DDR DRAM和Nandflash全部都换掉了,硬件做了不小的改动。曾经也做过相似的裸板调试,从ARM7到ARM9,再到现在的ARM11。今日就来写一篇ARM裸板调试的文章。

如我前面所说,刚拿到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运转后,作业就简单了。现在的bootloader都很强壮,Linux有uboot,WinCE有Eboot,都能支撑烧录,下载等功能。一般假如是买的开发板,都会供给烧录东西。不过在更换了DRAM和Nandflash今后,烧录东西或许也需求从头调试了。并且运用的bootloader也需求做改动。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/264789.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部