许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MentorGraphics MAJIC-LT的使用:工具功能与操作指南

MentorGraphics MAJIC-LT的使用:工具功能与操作指南

阅读数 14
点赞 0
article_banner

MentorGraphicsMAJIC-LT的使用

hansel@163.com

  2007.9.30

MentorGraphic的JTAG仿真调试器支持 ARM   7/9/11、Intel XScale、Marvel、Broadcom和MIPS处理器。LT类型只支持单CPU调试,MX类型支持JTAG多CPU调试,PLUS类型还支持RTOS调试。

  术语:

   MAJTC:Multi-processor Advanced JTAG Interface controller

   EDBICE:EPI的GUI接口,支持源码级调试。

   MONICE:基于命令行的汇编级代码调试器

1、硬件安装

  给仿真器接上JTAG电缆、网线,在目标板和仿真器都断电的情况下把JTAG电缆连接到目标板。

指示灯:

  .STATUS:上电时为闪烁红色、然后熄灭、再变绿色。如果一直为红色则说明仿真器有问题。

  .POWER:上电后一直为绿色

  .RUN:红色:目标板CPU被仿真器复位; 绿色:目标板CPU在运行状态;熄灭:不是上述两种状态。

  .CONNECT:红色:目标板连接没有使能; 绿色:目标板处于连接状态。注意:不是指JTAG电缆是否连接目标板,而是指是否使能了JTAG连接。



  上电顺序:仿真器->目标板

  断电顺序:目标板->仿真器

注意:不能带电插拔JTAG电缆!!!!

2、软件安装

Windows  主机上安装EPI TOOLS- EDTM2.4a,选择是ARM还是MIPS体系,输入产品License Key。

  安装完成后,可以用MAJIC Setup Wizards来设置MAJTC仿真器。

3、使用GDB方式调试目标板

  以Atheros AR7130 pb42板为例。

(1)配置MAJIC

  .启动"MAJIC Setup Wizards"->Next

  .选中Setup A Debug Environment,在Choose your Debugger下拉框中选"GDB",Next.

  .输入工程的名字,比如"pb42",next

  .Processor Type:MTKI24Kc, Big Endian, Intrusive方式, Next

  .选择Enternet Static IP方式:给仿真器设置一个IP地址,比如:192.168.1.125, Next

  .选择启动文件:在EDM24a的安装目录下:targets/malta.24k,也可以自己建一个新的启动文件(需要熟悉板子硬件),Next

  .选择启动文件保存的目录,Next

  .单击"Perform Action"按钮,Done.

配置完成后,在桌面会有一个快捷方式"mdi-server pb42"

(2)在Windows主机上启动"mdi-server pb42"

  屏幕会显示仿真gdbserver的端口,一般为2345

(3)使用gdb调试程序

  在 linux  主机上启动mips-linux-gdb,注意不能用linux系统的gdb,否则连接时会出现"Reply contains invalid hex digit"错误。



  (gdb) set heur 0       /* MIPS only—避免gdb扫描不存在的内存地址 */

  (gdb) set remoteti 10      /* Remote timeout—仿真器运行启动文件需要一定的时间,设置该参数避免超时 */

  (gdb) file 要调试的文件

  (gdb) target remote IP:2345     /* Open MDI connection to MAJIC,IP为Windows主机的IP地址,注意不是仿真器的IP地址 */

此时,在Windows主机的mdi-server上可以看到以下信息:

Accepted gdb MDI connection.

  Attaching...Capabilities:

          TraceOutput

          TraceCtrl

  End of Capabilities List

  Devices:

  Index   Name

  [0]     MTI24Kc via 192.168.1.125

  Selecting device [0] of 1

  Notification from the target:

  JTAG interface enabled at 3v level

  Auto JTAG detection process detected 1 TAP

  JTAG connection established

  MMU with 16 TLBs detected

  ICache = 64k <4 way, 32 b/l>, DCache = 32k <4 way, 32 b/l>, based on CONFIG1

  Done.



  目标板处于复位状态,接下来就可以正常调试程序了。

  某些特殊的板子需要特殊的Reset,可以使用以下命令(需要gdb支持monitor命令):

   (gdb) mon rt

启动目标板:

   (gdb) continue

4、调试Linux内核

    .编译Linux内核

      选择 Kernel   Hacking->Include debugging information in kernel binary

      选择Kernel debugging option和其下的所有子选项。

      禁止KGDB support 选项

    .gdb连接上mdi-server

     (gdb)file vmlinux  /* 装入kernel的符号信息 */

     (gdb)mon rt        /* 复位目标板 */

     (gdb)continue

     在目标板串口可以看到bootloader的输出信息了,

    .下载内核

     通过目标板的bootloader下载Linux内核,就可以调试了。

5、调试LKM(Loadable Kernel Module)

  .在目标板上插入模块并输出map信息,查看.text入口地址:

     #insmod -m hello.ko > map

     #grep .text map  

               比如为0xc68c0060

  .在gdb中转入LKM的调试信息:

     (gdb) add-symbol-file hello.ko 0xc68c0060  /*注意必须是LKM .text的入口地址)

  .正常调试



  6、使用EPIFlash

     EPIFlash是一个下载到目标板执行的程序,用来显示Flash信息,上传Flash image ,对Flash进行编程等。

     注意:

       .EPIFlash需要在目标板的RAM中运行,因此必须先初始化目标板的内存控制器,可以通过目标板的bootloader完成,也可以通过MAJIC的启动文件来完成。

       .在擦除Flash中的Bootloader前,必须有合适的MAJTC启动文件包含合适的内存初始化脚本,否则没有办法再对Flash操作。

     使用MONICE来下载EPIFlash:

       .Linux下启动MOINCIE,需要带-d -v参数

       .如果启动文件中定义了epiflash别名,则直接在MONICE中输入epiflash就可以。

               da epiflash命令可以查看启动文件是否有epiflash别名定义

       .如果没有定义epiflash,可以装入程序命令:

               L "../samples/__/__/epiflash.__"  /* 注意选择针对目标板CPU、字节模式和装入RAM地址的epiflash ,在samples目录中le目录或be目录中*/
VL  /* 校验装入的程序 */

            启动epiflash: G

  epiflash类型参考:

  ./samples/be/ram_0xXXXXXXXX/epiflash.axf    // Big Endian ARM/XScale

  ./samples/le/ram_0xXXXXXXXX/epiflash.axf    // Little Endian ARM/XScale

  ./samples/be/ram_0xXXXXXXXX/epiflash.elf    // Big Endian MIPS

  ./samples/le/ram_0xXXXXXXXX/epiflash.elf    // Little Endian MIPS      

  在Atheros AR7130 pb42板上,redboot留出的可用RAM地址为:0x80050fe0-0x80fe1000,可以选择ram_0x80001000目录下的epiflash.elf文件。

      .运行epiflash后,可以看到epiflash显示一些信息,然后是命令菜单。



  7、一些技巧

  .在gdb中直接发命令给仿真器

     使用gdb的monitor命令可以直接把命令传送给MONICE,不过不是所有的gdb支持这个命令。

.提高GDB下载速度

     gdb下载程序到目标板一般比较慢(一次下载几百字节)。

     如果gdb支持monitor命令,则可以直接让MONICE下载程序,比如:

     (gdb) mon L pathname-of-program

     如果不支持monitor命令,则修改gdb下载cache设置,例如设置下载速度为每次4KB:

    (gdb) set remote memory-write-packet-size fixed

    (gdb) set remote memory-write-packet-size 4200

    (gdb) set download-write-size 4096  

.使用DDD来调试程序:

    在X Windows的终端中输入命令:

      #ddd --debugger mips-linux-gdb

    然后在ddd中的gdb命令窗口输入gdb命令

      (gdb)target remonte IP:2345

      (gdb)mon rt

      (gdb)continue

7、参考文档

  EDTM2.4a Manual:

  .Using a MAJIC Probe With Embedded Linux Software (10014.pdf)

  .gdb-readme.txt

  .Quick start Guide for EDT Software(majic_quickstart.pdf)

  .MAJIC Probe User’s Manual(majic_probe_user.pdf)

  .Using the EPIFlash Utility(10009.pdf)


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空