原创 NetICE命令集锦

2010-11-11 21:22 2001 4 4 分类: MCU/ 嵌入式


NetICE控制台提供的40多条命令,涵盖了许多嵌入式开发中经常使用的功能,包括:下载程序、上传数据、加载flash编程驱动和配置使用环境等。详细的内容可以在后面列出的总表中找到。


 


2dab90f9-84d3-47a8-9232-319bd8f92e8c.jpg


(在控制台直接按<TAB>键,可以列出所有NetICE支持的命令,这些命令是排过序的)



NetICE命令总表:

clock <kHz>
 

设置调试时钟频率,单位是:kHz



举例:


clock 12000





config <tftpsvrIP>


<configfile>


<gdbport>



 

配置NetICE,


<tftpsvrIP>为tftp服务器的IP地址


<configfile>为初始化配置文件的文件名


<gdbport>为GDB Server监听的端口号


 举例:


config
192.168.0.20 netice.cfg 3333


 



 

Continue





继续执行







cp15r <op1> <cn>

<cm> <op2>



 

读cp15寄存器,等同于下面的ARM汇编程序:


mrc p15,op1,rd,cn,cm,op2


rd的值在该命令执行后显示在屏幕上


 


举例:


cp15r 0 1 0 0


 



 

cp15rw <op1> <cn>


<cm> <op2>


<clrmsk>


<setmsk>



 

改写cp15寄存器的指定数据位,等同于下面4条ARM汇编程序:


mrc p15,op1,rd,cn,cm,op2


bic rd,rd,#clrmsk


orr rd,rd,#setmsk


mcr p15,op1,rd,cn,cm,op2



举例:


cp15rw 0 1 0 0 001000000000101b 0


 



 

cp15w <op1> <cn>


<cm> <op2>


<value>



 

写cp15寄存器,等同于下面2条ARM汇编程序:


mcr p15,op1,rd,cn,cm,op2



举例:


cp15w 0 1 0 0 0x1005


 



 

deverase [start]


[size]



 

Flash ROM的删除操作。不输入[start]和[size]时表示erase all。


 


举例:


deverase 0
0x10000


deverase


 



 

Devinfo



 

显示Flash ROM的相关信息




 

devload <drv>


 <base>


 <size>


       
[erasesize]


[pagesize]



 

加载Flash ROM的驱动程序


<drv>为tftp工作目录中的Flash ROM的驱动程序。


<base>为Flash ROM的基地址,对于nandflash为映射基地址。


<size>为Flash ROM的尺寸。


[erasesize]为删除尺寸,可以不输入,由实际驱动程序定。


[pagesize]为页尺寸,也可以不输入,由实际驱动程序定。


 


举例:


devload
dev/9260nand2k-8-data.drv 0xd0000000 0x800000 0x20000 2048


 



 

go [address]



 

从[address]开始执行。不输入[address]时,默认的执行地址为tftpw的下载起始地址。


 


举例:


go 0x0c000000


 



 

halt



 

停止执行并进入调试模式。


 



 

info



 

显示NetICE的配置信息和目标CPU的当前状态。


 



 

init



 

下载并执行存放在tftp工作目录中的配置文件


 



 

jtagbypass <bypass1> <bypass2> ...



 

设置jtag链上各个节点的bypass指令,最多可设定8个。


 


举例:


jtagbypass 0xff 0x0f 0x1f


 



 

jtagcurnode <num>



 

设置jtag链上被调试节点的编号。


 


举例:


jtagcurnode 1


 



 

jtaginsnsize <size1> <size2> ...



 

设置jtag链上各个节点的指令位长度,最多可设定8个。


 


举例:


jtaginsnsize 8 4 5


 



 

jtagtdi <bitpatern>


 <clkcount>


[show]



 

控制TDI信号,TMS信号恒为低电平。


<bitpatern>为TDI信号的位流模板


<clkcount>为TDI信号的位流时钟数


[show]可以显示操作后从TDO信号端读出的数据


 


举例:


jtagtdi 0xfe 8 show


 



 

jtagtdiend
<bitpatern> <clkcount>


[show]   



 

控制TDI信号,当扫描TDI的最后一个数据位时,TMS信号翻转为高电平。


<bitpatern>为TDI信号的位流模板


<clkcount>为TDI信号的位流时钟数


[show]可以显示操作后从TDO信号端读出的数据


 


举例:


jtagtdiend 0 1


 



 

jtagtms <bitpatern>


<clkcount>



 

控制TMS信号


<bitpatern>为TMS信号的位流模板


<clkcount>为TMS信号的位流时钟数


 


举例:


jtagtms 1100b
4


 



 

macaddr <MACaddress>



 

设置NetICE的MAC地址


 


举例:


macaddr 00:11:22:33:44:01


 



 

md.[bhw] <base>


 [ByteCount]



 

显示内存的内容。


md.b表示按8bit读出并显示


md.h表示按16bit读出并显示


md和md.w表示按32bit读出并显示


    
<base>为基地址


     [ByteCount]为字节数,缺省为128,最大不超过256


md和md.w命令执行后,连续按回车键可以连续显示后继内存中的内容。


 


举例:


md 0x0c000000


md 0x0c000000 128


 



 

mdelay <ms>



 

延时<ms>毫秒


 


举例:


mdelay 50


 



 

netconf <localIP>


<netmask>


<GatewayIP>



 

设置NetICE的网络参数(IPv4)


<localIP>为NetICE的IP地址


<netmask>为NetICE的子网掩码


<GatwayIP>为NetICE的网关IP地址


 


举例:


netconf
192.168.0.200 255.255.255.0 192.168.0.1


 



 

probe



 

检测被调试的CPU核的类型


 



 

regr.[bhw] <address>



 

读地址<address>的内容并显示。


regr.b表示按字节读


regr.h表示按half word读


regr和regr.w表示按word读


 


举例:


regr.b
0x1b000023


 



 

regw.[bhw] <address>


<value>



 

把<value>写入<address>


Regw.b表示按8bit写


Regw.h表示按16bit写


Regw和regw.w表示按32bit写


 


举例:


regw.h
0x18090002 0x1122


 



 

reset <hi/lo>



 

控制目标板Reset信号。hi表示高电平,lo表示低电平。同时调试时钟频率降到32KHz


 


举例:


reset hi


reset lo


 



 

set <param> <value>



 

设置系统参数值,该命令只能在配置文件中使用。用于选择ARM类型、调试模式和编程驱动加载位置。


 



 

tftpr <base>


<size>


<remotefile>



 

读取内存数据,用tftp上传到tftp工作目录中


<base>为读取内存的起始地址


<size>为读取的大小,单位是字节


<remotefile>为存到tftp工作目录中的文件名


 


举例:


tftpr
0x20000000 0x100000 foo.bin


 



 

tftpw <base>


<remotefile>



 

用tftp下载文件到内存中


<base>为下载到内存的起始地址


<remotefile>为tftp工作目录下的文件


 


举例:


tftpw
0xd0000000 nandboot.bin


 






后面举几个小例子:



使用halt命令,让目标芯片停止执行并进入调试模式。在进入调试模式后,用户还可以用info命令来查看目标芯片的一些状况,比如:芯片内部寄存器的值等信息。


18b749ad-64d1-4846-b3ef-4d55ef556da3.jpg


(这是STM32被halt后,用info命令显示出来的内容)


在实际的开发过程中,使用JTAG命令来操作JTAG链是很常见的。NetICE提供的jtagtdi, jtagtdiend和jtagtms命令,可以帮助用户去实现这类操作。例如:TI的ICE Pick就需要用JTAG命令来使能JTAG链上的ARM节点。

60e7b322-dca9-45a7-bd69-23f736f8eb3a.jpg


(这是用jtag原始操作命令读取STR912内部JTAG链上的第一个节点的IDCODE)


tftpw命令是一个集成了RAM下载和Flash烧写功能的常用命令。NetICE还提供一个和uboot命令行类似的md命令,这个命令也是用来查看内存的。另外,在加载相应驱动程序的情况下,这个命令还可以用来查看诸如nandflash和I2C E2PROM等串行存储器的内容。

d91e84a6-c870-4be9-bed3-d69278f84f66.jpg


(第一个tftpw命令用tftp协议下载文件到内存空间,md命令用来显示内存里的数据,连续回车可以显示紧跟在后面的内容)




和tftpw相对,NetICE还提供一个tftpr命令,tftpr命令是tftpw命令的逆过程。这个命令常被用来备份内存或Flash中的数据和程序。比如:我有个板子,上面运行的程序在我手里没有任何备份,而我又不想这个程序被我后面的操作误删或者破坏。这时候,使用tftpr就可以很方便地把板子里的程序备份下来,等到板子上的程序被破坏的时候,我还可以用备份去恢复。




NetICE的控制台命令中没有设断点、单步跟踪等调试功能。但是,NetICE内部集成了GDB Server和Angel,这为用户使用GDB、IAR和ADS调试器奠定了基础,相关内容在下一篇Blog中介绍。



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条