由于现在正在做基于ecos3.0的redboot在mx27ads板上的移植,所以把去年就买了的jlink翻了出来。按正常步骤将jlink把开发板和笔记本电脑连起来,打开开发板上的电源,jlink指示灯先闪后常亮,显示一切正常。

1.测试开发板主芯片MCIMX27是否正常启动

启动jlink commander,显示如下:

利用jlink测试开发板的各个模块是否正常-LMLPHP

从上图可以看出,jlink已经正常识别到开发板的内核芯片的相关信息,说明开发板的ARM芯片正常启动,间接说明开发板的电源,晶振和复位电路工作正常。

2.测试外部NOR FLASH工作是否正常

先看下开发板的memory map:

利用jlink测试开发板的各个模块是否正常-LMLPHP

测试外部NOR FLASH,测试如下:

我们先用如命令看能不能读到NOR FLASH中的值:

mem 0xC0000000 4

能正常读到值,如下图:

利用jlink测试开发板的各个模块是否正常-LMLPHP

用J-Mem查看也显示如下:

利用jlink测试开发板的各个模块是否正常-LMLPHP

显然,NOR FLASH工作正常。

3.测试DDR SDRAM

我们先用如命令看能不能读到DDR SDRAM中的值:

mem 0xA0000000 4

报错,读不到值:

利用jlink测试开发板的各个模块是否正常-LMLPHP

用J-Mem查看也显示如下:

利用jlink测试开发板的各个模块是否正常-LMLPHP

也读不到值,那么是不是就断定我们的DDR SDRAM有问题呢,这个结论还为时太早,因为我们现在还没有对Secondary AHB Port 3做初始化工作,读不出来是正常现象:

现在我们用jlink commander做如下配置:

J-Link>r

J-Link>w4 0x10000000 0x20040304

J-Link>w4 0x10000004 0xDFFBFCFB

J-Link>w4 0x10020000 0x00000000

J-Link>w4 0x10020004 0xFFFFFFFF

J-Link>w4 0x10027814 0xFFFFFFC9

J-Link>w4 0xD8001010 0x08

J-Link>w4 0xD8001010 0x04

J-Link>w4 0xD8001004 0x795729

J-Link>w4 0xD8001000 0x92200000

J-Link>mem 0xA0000F00 4

J-Link>w4 0xD8001000 0xA2200000

J-Link>mem 0xA0000F00 4

J-Link>mem 0xA0000F00 4

J-Link>w4 0xD8001000 0xB2200000

J-Link>mem 0xA0000033 1

J-Link>mem 0xA1000000 1

J-Link>w4 0xD8001000 0x82228485

配置过程如下图所示:

利用jlink测试开发板的各个模块是否正常-LMLPHP

经过上面的配置,用J-Mem查看显示如下:

利用jlink测试开发板的各个模块是否正常-LMLPHP

呵呵,现在DDR SDRAM可以显示出来了。

为了验证DDR SDRAM可以正常读写,我们进一步测试

读测试:

J-Link>mem 0xA0000000 4

结果如下图:

利用jlink测试开发板的各个模块是否正常-LMLPHP

写测试:

J-Link>w4 0xA0000000 0xaa55aa55

然后读出:

J-Link>mem 0xA0000000 4

结果如下图:

利用jlink测试开发板的各个模块是否正常-LMLPHP

完全正确。也可以用J-Mem查看显示如下:

利用jlink测试开发板的各个模块是否正常-LMLPHP

通过相同的方法,也可以检测其它一些外围设备是否正常,如PSRAM,以太网接口等。

总结,通过j-link直接测试开发板和通过编写程序测试开发板原理是一样的,因为它们都是通过设置相同的寄存器来实现启动模块,同时也是读取相同的状态寄存器来检测模块的状态是否正确。

10-28 02:35