最近我在做arm开发,结果发现我要开发的板子是兼容arm926的国产芯片,重点是没有uboot,所以为了把我们的程序下到板子上去运行,我们选择了jlink。
在淘宝上买了jlink后,我便在jlink官网上看了一些相关的知识,但是说真的,只有当你试着去做,你才会学得更多,真是应了了一句话:读万卷书,不如行万里路。
好了,回归正题。说起jlink的使用,无外乎注意两个,软件和硬件。。。硬件用的是USB接主机,JTAG接目标机,另外还需要一个串口线和串口工具显示打印结果。软件则包括jlink驱动,以及jlink的开发工具。该软件可以直接从官网上下载,比如我下载的就是JLink_Windows_V616j.exe。它会同时把jlink驱动和jlink开发工具,以及开发文档都安装好。
开发工具大概包括如下:
现在我大概只会使用jlink.exe。
首先要把jlink连上主机和目标机,主机将会识别到jlink。
运行jlink.exe,第一步要做的肯定是连接目标机。此时使用的命令是connect。然后需要使用命令?来配置一些属性,比如:目标机的CPU是arm9的,传输频率为500khz等。
连接好以后,就可以使用loadbin命令,把bin文件下载到片内内存(此时片外内存还没有初始化)中。然后使用setPC命令来指定pc从哪个地址开始运行,最后使用g命令来让程序跑起来。想让程序停下来就使用h命令,想让目标机软重启就使用r命令,想要判断我们下载到目标机的文件是否正确,可使用verifybin,这个命令非常有用,我这次就遇到一个问题,片内内存太小,我下载的bin文件大了点导致后面的内容没在内存里面,跑起来肯定就错了。
最后,想知道jlink支持的命令,最好去看link提供的开发文档,或者在命令行中使用help进行查看。
总结一下使用得比较多的命令:
usb--------连接目标板
connect--------连接目标机
r----------重启目标板
halt(h)-------停止cpu运行的程序
loadbin----加载可执行的二进制文件
verifybin----校验二进制文件是否正常加载
g----------跳到代码段地址执行
s----------单步执行(调试用)
setpc-----设置pc寄存器的值(调试用)
Regs-------读寄存器组织
wreg-------写寄存器
mem--------读内存
w4---------写内存
speed------设置jtag的传输速率
help------查看常用命令