返回主站|会员中心|保存桌面|手机浏览
普通会员

密山市博锐科技有限公司

仿真器,super trace32

新闻分类
  • 暂无分类
联系方式
  • 联系人:易先生
  • 电话:0755-22156462
站内搜索
 
荣誉资质
  • 暂未上传
友情链接
首页 > 新闻中心 > 2017年最新Ubuntu12.04下安装Trace32 Jtag仿真器
新闻中心
2017年最新Ubuntu12.04下安装Trace32 Jtag仿真器
发布时间:2017-11-04        浏览次数:12        返回列表
 最近需要单步调试ARM Cortex A9内核,正巧手头上有Lauterbach Trace32 Jtag仿真器,同时仿真器的上位机安装包中也附带了Linux的安装包(一阵欣喜。。),其实Trace32 Jtag仿真器的上位机支持非常多的OS,可以在安装包目录下看到大部分支持的OS:
axp_unix/  das/    macosx/      pc_qnx/   tsim/     windows64/
citrix/    fts/    pc_linux/    setup64/  vax_vms/
cplower    hp700/  pc_linux64/  suns/     windows/
同时安装包也附带了pdf格式的安装说明,不过实际安装的过程和说明书上的有一些出入,同时鉴于Ubuntu下安装Trace32环境的资料比较少,因此这里列出详细的步骤:
$ mkdir /opt/t32/bin -p
$ cd /opt/t32
$ cp -r <path of trace installation package folder>/files/* ./
$ cp -r <path of trace installation package folder>/bin/pc_linux/ ./bin/
$ mv bin/pc_linux/config.t32 ./
$ chmod -R u+w *
$ <path of trace installation package folder>/bin/pc_linux/filecvt ./
同时在~/.bashrc中添加下面设置环境变量的代码:
export T32SYS=/opt/t32
export T32TMP=/tmp
export T32ID=T32
同时还需要设置字体(注意这一步可能每次开机后都要执行trace32的程序就需要设置):
$ cd /opt/t32/fonts
$ mkfontdir .
$ xset +fp /opt/t32/fonts
$ xset fp rehash
最后修改配置文件config.t32,找到下面这部分内容:
;uncomment the following 2 lines if you use PowerTrace, PowerNexus, PowerDebugEthernet or
;PowerDebugInterface USB with onhost driver executable (t32m*)
;please refer the installation manual (file icd_quick_installation.pdf) about more details
;concerning USB driver installation
;PBI=
;USB
然后把最后两行取消注释(即把分号去掉),否则会出现下面这个error:
PODBUS INTERFACE type not configured.
CONFIG: config.t32
再修改可执行文件的权限:
$ chmod +x /opt/t32/bin/pc_linux/t32marm
$ chmod +x /opt/t32/bin/pc_linux/t32usbchecker
接下来要测试一下trace32与电脑连接是否成功,即执行t32usbchecker,如果没有添加udev rules会出现下面的log:
$ cd /opt/t32
$ ./bin/pc_linux/t32usbchecker 
 
 Trace32 simple USB Checker V2
 
./bin/pc_linux/t32usbchecker: 
No useable Trace32 devices found, check power/cable/access permissions
其实在/opt/t32/bin/pc_linux/udev.conf目录下已经有了10-lauterbach.rules的udev规则文件,具体内容如下:
# /etc/udev/rules.d/10-lauterbach.rules
 
# handle udev events in kernel 2.6.22+
ACTION=="add",    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",   ENV{PRODUCT}=="897/*", \
  NAME="lauterbach/trace32/%k", MODE="0666", \
  OPTIONS="last_rule"
 
ACTION=="add",    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_endpoint", ENV{PRODUCT}=="897/*", \
  OPTIONS="last_rule, ignore_device"
ACTION=="remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_endpoint", ENV{PRODUCT}=="897/*", \
  OPTIONS="last_rule, ignore_device"
 
# handle udev events upto kernel 2.6.21
ACTION=="add",    SUBSYSTEM=="usb_device",   SYSFS{idVendor}=="0897", \
  NAME="lauterbach/trace32/%k", MODE="0666", \
  OPTIONS="last_rule"
 
ACTION=="add",    SUBSYSTEM=="usb_endpoint", SYSFS{idVendor}=="0897", \
  OPTIONS="last_rule, ignore_device"
ACTION=="remove", SUBSYSTEM=="usb_endpoint", SYSFS{idVendor}=="0897", \
  OPTIONS="last_rule, ignore_device"
由于Ubuntu用的是3.x内核,因此就把最下面的三条规则删掉即可,并且把修改过的10-lauterbach.rules文件复制到/etc/udev/rules.d目录下,接下来我们拔插一下Trace32仿真器的USB线,再重复执行上面的命令:
$ cd /opt/t32/
$ ./bin/pc_linux/t32usbchecker 
 
 Trace32 simple USB Checker V2
 
 Checking /dev/lauterbach/trace32/2-1.2.4 ... not useable (Trace32 found but not accessible: Permission denied)
./bin/pc_linux/t32usbchecker: 
No useable Trace32 devices found, check power/cable/access permissions
现在可以看到Trace32是找到了,但是没有权限,那么如果我们使用sudo执行的话:
$ cd /opt/t32
$ sudo ./bin/pc_linux/t32usbchecker 
 
 Trace32 simple USB Checker V2
 
 Checking /dev/lauterbach/trace32/2-1.2.4 ... useable
 
 Checking USB communication with /dev/lauterbach/trace32/2-1.2.4 ...
  Resetting Trace32...
 
 USB communication OK.
可以看到USB通信OK,但是开发中非常忌讳sudo权限执行程序,能避免的尽量避免,因此我们需要修改udev规则文件:
这里只需要在第一句中:
# /etc/udev/rules.d/10-lauterbach.rules
 
# handle udev events in kernel 2.6.22+
ACTION=="add",    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",   ENV{PRODUCT}=="897/*", \
  NAME="lauterbach/trace32/%k", MODE="0666", \
  OPTIONS="last_rule"
 
ACTION=="add",    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_endpoint", ENV{PRODUCT}=="897/*", \
  OPTIONS="last_rule, ignore_device"
ACTION=="remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_endpoint", ENV{PRODUCT}=="897/*", \
  OPTIONS="last_rule, ignore_device"
MODE后面多添加一个冒号,个人理解是即时更新的意思MODE:="0666"
$ cd /opt/t32 
$ ./bin/pc_linux/t32usbchecker 
 
 Trace32 simple USB Checker V2
 
 Checking /dev/lauterbach/trace32/2-1.2.4 ... useable
 
 Checking USB communication with /dev/lauterbach/trace32/2-1.2.4 ...
  Resetting Trace32...
 
 USB communication OK.
后来在trace的updat package中也找到了新的udev规则文件:
# /etc/udev/rules.d/10-lauterbach.rules
 
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0897", SYMlink+="lauterbach/trace32/%k", MODE:="0666"
USB驱动部分搞定以后就可以开始执行上位机了:
注意:这里务必cd到/opt/t32目录下再执行程序,默认的很多配置文件都在/opt/t32目录,比如config.t32等,如果不想后面加参赛的话请cd到该目录下
$ cd /opt/t32
$ ./bin/pc_linux/t32marm
截图如下,这里安装的是2009年左右的版本:(ps,界面比win的丑好多)
发顺丰 - 小辉辉 - 小辉辉的博客