打开“开始”——>“程序”——>“ARM DS-5”——>“Debug Hardware”——>“Debug Hardware Configuration”,出现“Debug Hardware Config”窗口,在列表中可以看到扫描到的仿真器。选中后,双击连接。
如果列表中出现多个,不确定是哪个时,可以点击“Identify”,之后在仿真器上的“Dstream”标识会闪烁5秒钟。
在连接后弹出的窗口中,去掉“Use adaptive clock if detected”选项前的√,然后选择“Auto Configure”。
如果扫描成功则出现JTAG扫描链,若不成功请检查单板连接。
保存退出。假设保存为test.rvc。
DS-5和之前的realview不同,不能直接连接处理器。DS-5拥有一个数据库,包含所支持的单板和处理器。对于一个新的单板,需要添加到数据库中。一次添加后,以后就不用再添加了。
Debug Hardware Config自动配置产生的文件,通过工具cdbimporter来导入,工具位于安装目录的sw\cdbimport目录下。
在安装目录下新建文件夹,假设命名为ds-5_configdb。
从开始菜单中打开DS-5 command prompt工具,转到cdbimport目录,运行cdbimporter.bat工具:
D:\Program Files\DS-5\sw\cdbimport>cdbimporter.bat -c "D:\Program Files\DS-5\sw\debugger\configdb" -t "D:\Program Files\DS-5\ds-5_configdb" "D:\test.rvc"
Select a core to modify (enter the index and hit return) or press enter to continue. [] :这儿按回车
Enter Platform Manufacturer
[default:'Imported'] > input manufacturer name, whatever
Enter Platform Name
[default:'target'] > input platform name
完成后在ds-5_configdb目录下会生成配置文件。
cdbimporter.bat使用方法:
cdbimporter [-c config_db] [-t destination_db] rvc_file
config_db - full path to main DS-5 configuration database
destination_db - full path to new configuration database
rvc_file - full path to RVC file produced by the Hardware Configuration utility
打开Eclipse,
选择菜单“Windows”下的“Preferences”
展开“DS-5”配置组,选择“Target Database”
点击“Add…”,选择新创建的database目录
点击“Rebuild database...”,重新生成database,完成后退出。
在Eclipse中,选择菜单“Run”下的“Debug configuration”,弹出窗口,
选择左栏中的DS-5 Debugger,
点击左上用的新建图标,新建一个配置,
在Platform中的列表框中选择新添加的manufature-platform,
下方的Connection选择一个仿真器;
Debugger页中的Run control选择Connect Only。
完成后选择右下角的Debug,即可连接。
在memory窗口中。点击右边的向下三角形,可弹出图中的菜单。
语法:command [argument] [/flag]…
注释用#打头。
每行只能包含一个命令。
print /x $r0 #打印寄存器值,16进制显示
print $datetime #打印时间
memory set 0x1008 0 0x1234 # Equivalent to set variable *(int*)0x1008 = 0x1234
脚本示例:
#echo 显示, #开始的是注释行
echo init script for ds-5.
#usage: write_reg_bit reg_addr bitstart bitcount val
#eg. write_reg_bit 0x10100000 1 3 4
# write 4 to 0x10100000, start from bit 1, write 3 bit.
#定义一个命令,参数用arg0,arg1…
define write_reg_bit
#使用r0寄存器存储中间变量
#set variable 设置变量的值
set variable $r0 = *($arg0)
if $arg1 == 0 && $arg2 ==31
set variable *($arg0) = $arg3
else
set variable $r0 = $r0 & (~(((1<<($arg2 + 1)) - 1) << $arg1))
set variable $r0 = $r0 | ($arg3 << $arg1)
set variable *($arg0) = $r0
end
end
#定义一个memory区域,重点是noveriry,写的时候不要读回来校验,因为有些寄存器是写清的,比对的话,脚本会执行失败。
memory 0x0 0x0 rw nocache noverify
#----config slow
#后面的参数从0开始计
write_reg_bit 0x10100068 2 0 0
write_reg_bit 0x10100000 0 2 2
wait 20
#等待