tag 标签: debugger

相关博文
  • 热度 23
    2015-3-20 18:21
    1570 次阅读|
    0 个评论
    One way I keep myself out of trouble is to always have a bunch of hobby projects on the go. A few years ago I started playing with Arduino microcontroller development boards. The great thing about these boards: they have so many add-on boards (called "shields") available, such as motor control boards, real-time clocks, and so forth.   There are also lots of cool things you can control with these devices, like tri-color NeoPixel LED rings and strips from the folks at Adafruit and the MSGEQ7 audio-spectrum analyzer chip from the guys and gals at SparkFun .   As you will know if you've played with the Arduino yourself, you often end up with a stack of boards mounted on top of each other. In the case of my Vetinari Clock, for example, I have an Arduino Mega at the bottom of my stack. On top of this, we have a large prototyping board containing the circuits used to drive my antique analog meters. Next, we find a smaller prototyping board carrying a real-time clock (RTC) and a temperature sensor. And, in the fullness of time, I'm going to add a sound effects card.   Now, one tiny fly in the soup, as it were, is the fact that — when you have a board stack like this — it can be a pain to locate, isolate, and debug any problems. So you can only imagine my surprise and delight when I came into contact with Guido Bonelli.     Guido, who is an Independent Consultant, has created a capriciously cunning device called a Dr. Duino , which he describes as "A shield for your shields!" The image below shows a Dr. Duino (the green board) sitting on top of an Arduino Uno (the blue board). In addition to providing a bunch of switches, LEDs, potentiometers, and suchlike, the Dr. Duino also allows you to monitor signals going up and down through the header terminals forming the stack. Furthermore, by means of jumpers, it allows you to break the vertical connections and inject your own signals into the mix.     If you have a stack of shields mounted on top of an Arduino Uno, for example, you can insert the Dr. Duino between the Arduino and the first shield, or between the first and second shields, or between the second and third... or you can have it sitting on the top of the stack.   As an aside, I typically use the larger Arduino Mega for my projects, so I live in hopes that Guido will develop a Dr. Duino Mega. If he decides to do so, he says that I can have some input into its design. Guido may live to regret this, because I have ideas rocketing around my head like fireworks, but we digress...   The reason I'm waffling on about this here is that Guido will be giving a presentation on the way in which he designed and implemented the Dr. Duino at the forthcoming ESC Boston .   But don’t just take my word for this; take a peek at this video and hear what the man himself has to say:     For your delectation and delight, I asked Guido to pen a few words describing his presentation, and he kindly responded as follows:   Please join me, Guido Bonelli, for an exciting dive into the world of “Making” using Arduino at this year’s ESC Boston 2015. There will be giveaways, so don’t miss out! Learning and debugging your Arduino project will never be the same again after you sit in on this session! So come learn how to effortlessly get started with Arduino and debug like a pro. In this session, we will delve into the blissful highs of building stackable hardware, coupled with the lowest of lows when trying to debug our megalithic towers of Arduino awesomeness. New to Arduino and don’t know where to start? Well this session is for you too! During this presentation, you will learn how to use a new type of shield called a Dr. Duino to kick-start your entry into Arduino development. We will start off with an introduction into the Arduino landscape, followed by a brief discussion of a personal project called Orbis -- The Amazing Kinetic Sculpture. In fact, it was the problems I encountered while building Orbis that spurred the development of the Dr. Duino Arduino shield. In addition to a teardown of Orbis’s hardware, we will discuss how 3D printing, Arduino shields, and laser-cut wood were used to realize Orbis. Next, we will review all of the pain-points associated with building a multi-shield Arduino stack and the difficulties that can arise with this method. Finally, we will take a more in-depth look at the Dr.Duino shield, which is like a Swiss Army Knife when it comes to debugging one's Arduino-based projects. I am very excited to be presenting at this year’s ESC and look forward to changing the way you Arduino!   Well, this is certainly one of the talks I'm planning on attending, not the least that I can corner Guido and hound him with regard to the Dr. Duino Mega I so badly desire him to create in order to make my life easier; after all, isn’t that what it's all about (LOL)?
  • 热度 18
    2012-9-27 15:21
    1231 次阅读|
    0 个评论
    继续给大家介绍单片式以太网控制芯片——W7100A / W7100 的Debugger指南 最后一个部分。   第二部分可参考: W7100A / W7100 Debugger指南(二)http://blog.iwiznet.cn/?p=1263   前两篇讲到驱动程序安装、连接Debugger、如何安装W7100A / W7100 Debugger及 Debugger菜单 ,最后部分是搜索和变量窗口及存储器窗口的介绍, 希望对大家有帮助!   同样,先来简单介绍下 W7100和 W7100A 的基本特点。 网络微处理器W7100提供一体成型嵌入式网络方案(内嵌8051单片机 + TCP/IP协议栈+ 10/100 高速以太网络MAC/PHY)。而W7100A(100Pin封装) 是 100 % 相容 W7100,W7100A 是W7100 的 升级版,增加了一些新功能,详细可登录官网查看。   ———————————————————————————————————————————   6. 搜索和变量窗口 W7100A / W7100 Debugger程序提供变量窗口可以查看本地变量、全局变量和寄存器的值。 6.1 搜索窗口(Search Window) 搜索窗口根据用户的登记来显示全局变量、本地变量或者存储器的值。全局/本地变量窗口也显示变量的值。但是通常用户如果想要查看一个或者两个变量的值并且有时会同时想要查看全局和本地变量的值时只需要在搜索窗口中登记这些值。   为了能够登记全局/本地变量,在搜索窗口的Name区域写下寄存器名称。 在搜索窗口,用户不仅可以确认变量的值同时可以进行修改。点击搜索窗口的值区域写入值就可以修改变量的值。 为了能够查看搜索窗口中存储器的值,以‘存储器类型:地址:大小’的格式写入。存储器的类型是C、D和X(代码存储器、内部数据存储器和外部数据存储器)。 Ex) 代码存储器 = C:0×1000:5 内部存储器 = D:0×30:2 外部存储器 = E:0×000300:4 用户可以通过点击鼠标右键在搜索、本地和全局窗口中选择显示格式,如二进制、十进制、八进制和十六进制。   6.2 本地变量窗口(Local Variable Window) 本地变量窗口显示在PC处的函数的本地变量值。 本地变量窗口与搜索窗口具有几乎相同的界面。但是,它不允许登记一个新的变量或者存储器地址。   6.3 全局变量窗口(Global Variable Window) 全局变量窗口显示工程中的所有全局变量。全局变量窗口具有和本地变量窗口相同的界面。   6.4 符号窗口(Symbol window) 符号窗口显示工程中的所有符号信息。它显示类(Class)类型和相关符号的地址。   6.5 寄存器窗口(Register window) 在寄存器窗口中,用户可以验证或者修改寄存器的值。寄存器窗口显示默认寄存器、 PSW和特殊函数寄存器(SFR)。点击寄存器值区域写入新的值就可以修改寄存器的值。如果寄存器是只读的,值将不会变化。   7. 存储器窗口(Memory window) 注意: 要读取iMCU7100EVB存储器的值,首先应该打开一个Keil工程或者HEX文件。   7.1 Idata存储器窗口(Idata Memory Window) Idata存储器窗口能够显示或者修改内部数据存储器的值(D:0×00 ~ D:0xFF)。 想要修改内部数据存储器的值,点击内部数据存储器的值区域并且写入新的值。所有的存储器窗口可以变成显示格式,例如2/4/8字节显示单元或者CHAR/INT/LONG显示格式。如图7.3所示。 如果内部数据存储器的值更新并且Debugger命令处于停止状态,它将内部数据存储器的值更新到iMCU7100API开发板。   7.2 外部数据存储器窗口(External Data Memory Window) 外部数据存储器窗口显示外部数据存储器的值(X:0×000000 ~ X:0xFFFFFF).   7.3 程序存储器窗口(Code Memory Window) 程序存储器窗口显示代码存储器的值(0xFF0000 ~ 0xFFFFFF)。该窗口只能可读,所以不能对它修改。   7.4 闪存窗口(Flash Memory Window) 7.4.1 程序存储器域(Code Memory Domain) 在闪存窗口中,如果没有选中’Data memory’选项,它将会显示程序存储器的值(0xFF0000 ~ 0xFFFFFF)。基本上它和‘程序存储器窗口’相同,但是它能够利用闪存写入按钮来修改值。 7.4.2 数据存储器域(Data Memory Domain) —————————————————————————————————————————————— 单片式以太网控制芯片——W7100A / W7100 的Debugger指南已经全部介绍完毕了,谢谢阅读! 明天开始我要实施我的短期旅行计划了,因此要暂别大家一段时间。也预祝各位好友中秋、国庆,双节愉快!我们回来再见吧!! ^@^
  • 热度 24
    2012-9-27 09:14
    1194 次阅读|
    0 个评论
    今天继续给大家介绍单片式以太网控制芯片——W7100A / W7100 的Debugger指南 第二部分。   第一部分可参考: W7100A / W7100 Debugger指南(一)   http://blog.iwiznet.cn/?p=1253   上一篇讲到驱动程序安装、连接Debugger及如何安装W7100A / W7100 Debugger,今天继续的内容是Debugger菜单的介绍,希望对大家有帮助!     还是先来简单介绍下W7100和W7100A的基本特点。网络微处理器W7100提供一体成型嵌入式网络方案(内嵌8051单片机 + TCP/IP协议栈+ 10/100 高速以太网络MAC/PHY)。而W7100A(100Pin封装) 是 100 % 相容 W7100,W7100A 是W7100 的 升级版,增加了一些新功能,详细可登录官网查看。     5. Debugger 菜单   5.1 打开工程 W7100A / W7100 Debugger程序能够对KEIL工程文件以及HEX文件进行调试。首先运行W7100A/W7100 Debugger程序并且打开hex文件。   ❀ 打开工程 用Open Project命令来打开一个工程。 点击工具栏中的文件图标,也可以选择Project Menu=Open或者利用快捷键Ctrl+0来完成。   如图5.2为文件打开浏览器。   如果用户打开的工程只包括一个HEX文件,Debugger将会提示警告信息,并且只显示‘汇编窗口(Assembly window)’界面。     *注意:当用户打开工程并且出现如下的错误信息时,用户必须删除工程目录下的 xxx.SRC文件,然后选定‘GenerateAssembler SRC File’和‘Assemble SRC File’选项来防止 W7100A/W7100 Debugger程序发生错误。   关于解决方法的其它详细信息,请参阅第4章’KEIL工程’。   ❀ 重新装载工程 用Reload命令来重新装载一个工程。当装载的工程发生变化时,点击重装工具栏按钮 进行再次装载。也可以选择’Project’=’Reload’或者使用快捷键F4来完成。   ❀ 关闭工程 用Close命令来关闭一个工程。选择‘Project’ = ‘Close’或者快捷键Ctrl + Q来完成。   *注意:当使用W7100A/W7100 Debugger时,用户必须使用‘stop’命令来关闭 Debugger程序。   5.2 W7100A / W7100Debugger程序初始化   这一章主要介绍iMCU7100EVB Debugger程序的初始化过程。     ❀ Debugger程序和开发板复位 Debugger and board reset命令用来同时复位Debugger程序和开发板。已经进行设置的断点都会移动。 点击工具条上的 按钮,或者选择’Tool menu’=’Init Debugger and Board reset’菜单来复位Debugger程序和开发板。   ❀ 只复位开发板 Board reset命令只能用来复位开发板。如果已经设置了断点,它们仍然会被保留。点击工具条上的 按钮或者选择’Debug menu’=’Boardreset’来复位开发板。也可以使用快捷键F2。 ❀ 图像装载 Image load命令用来装载一个图像。 将用于debugging的HEX图像写入闪存。 点击 按钮或者选择Debug菜单= Image Load菜单来执行’图像装载’。也可以使用快捷键F3来完成。 如果图像写入并且确认成功,将会显示’Write OK’信息。   注意:如果开发板图像文件和当前的HEX文件不匹配,将会在执行例如‘Continue, Step, Next’等‘Debugger命令’时出现如下的错误信息。 ❀ 调试 W7100A / W7100 Debugger程序提供‘Debug’和‘Tool’菜单以及工具栏按钮来进行调试。 ❀ 到源码(Source)行 Go to Source Line命令用来使光标移动到希望的源码行。可以选择’Tool’=’Go to Source Line’或者利用快捷键Ctrl+G来实现此功能。   ❀ 查找 Find命令用来查找源码窗口中的一些单词。可以选择‘Tool’menu = ‘Find’ 或者利用快捷键Ctrl+ F来实现此功能。     5.3 运行和停止   这一章将会介绍如何使用步进(step in)、步出(step out)、下一步(next)等一些命令。   ❀ Continue Continue命令运行程序直到遇到断点(Break point)为止。点击工具栏上的 按钮或者选择Debug菜单=Continue,也可以利用快捷键F5使用此命令。 在Continue状态,除非执行Stop命令,否则用户不能使用调试菜单。   ❀ Stop Stop命令用来停止运行中的程序。点击工具栏中 按钮或者选择Debug菜单= Stop,也可以使用快捷键F6来执行此命令。 调试命令(搜索、存储器视图、断点等等)只能在Stop状态下执行。   ❀ Step   Step命令用来运行指定的一行。如果有函数调用,Step命令将会进入到相关的函数。在执行结束后,Debugger程序停止并且等待下一个命令。 点击工具栏中 按钮或者选择Debug菜单=Step,也可以使用快捷键F10来执行此命令。如果用户只需要调试HEX文件,Step命令和Nexti命令类似,执行一个指令说明。   ❀ Next   Next命令和Step命令基本类似。Next命令执行C代码的指定一行,即以一行为单位执行该命令。但是如果有函数调用,Next命令不会进入到函数中。在执行结束后,Debugger停止并且等待下一个命令。 点击工具栏中的 按钮或者选择Debug菜单=Next,也可以使用快捷键F10来执行此命令。如果用户只需要调试HEX文件,Next命令和Nexti类似,执行一个指令说明。   ❀ Stepi   Stepi 命令只执行一个指令说明。如果指令是函数调用,那么此命令就会进入到相关的函数。在执行结束后,Debugger停止并且等待下一个命令。 点击工具栏 中的按钮或者选择Debug菜单=Stepi,也可以用快捷键F7来执行此命令。   ❀ Nexti   Nexti 命令只执行一个指令说明。如果指令是函数调用,该命令不能进入相关的函数。在执行结束后,Debugger停止并且等待下一个命令。 点击工具栏中的 按钮或者选择Debug菜单=Nexti,也可以使用快捷键F6来执行此命令。   ❀ 运行到光标处(Run to cursor line) ‘Run to cursor line’ 命令运行到光标位置处停止。 点击鼠标右键 = 选择 ‘Run ToCursor Line(n)’ 或者选择Debug菜单 = Run To Cursor Line.   如果没有正确设定光标位置,可能会造成‘Run To Cursor Line’命令继续执行。如果发生这种情况,执行stop命令结束运行。     5.4 断点(Break Point)   这一章将会介绍如何设置/清除并且查找断点。只有在非调试状态下,即未使用 Debugger程序时才能设置断点。如果用户使用Debugger程序,通过stop命令结束运行来设置断点。                     第二部分的内容就是这些了,稍后给大家介绍本篇文章的最后一个部分,继续关注哦!^@^   本文官方地址:http://blog.iwiznet.cn/?p=1261  
  • 热度 24
    2012-9-26 10:56
    907 次阅读|
    0 个评论
    今天给大家介绍的是单片式以太网控制芯片—— W7100A / W7100 的Debugger 指南。 先简单介绍下 W7100 和 W7100A 的基本特点。网络微处理器W7100提供一体成型嵌入式网络方案(内嵌8051单片机 + TCP/IP协议栈+ 10/100 高速以太网络MAC/PHY)。而W7100A(100Pin封装) 是 100 % 相容 W7100,W7100A 是W7100 的 升级版,增加了一些新功能,详细可登录官网查看。     1. 驱动程序安装   用USB线连接Debugger和PC机,然后将会出现‘新硬件搜索窗口(new hardware search window)’界面,如下图1.1所示。 选择‘自动安装软件(Automatically setupthe software (I))’后点击Next(N)按钮。   新硬件搜索窗口 1   如果不是自动安装,选择‘从列表或者指定位置(高级)(Install from a list specific location(Advanced))’,并且如下进行驱动程序设置。 新硬件搜索窗口 2   等待搜索Dubgger设备驱动程序。当设备驱动安装完成之后,点击END按钮结束。   完成新硬件搜索 #2     2. 连接Debugger   这一章将会介绍如何连接Debugger与iMCU7100EVB以及iMCU7100EVB中的的DTAG。     这一章将会介绍如何连接Debugger与iMCU7100EVB以及iMCU7100EVB中的的DTAG。 用其它的DTAG线连接Debugger和iMCU7100EVB。红色的DTAG线必须连接到iMCU7100 DTAG socket 1号线,用USB线连接Debugger和PC机。完成后,将电源线插入iMCU7100EVB中,如图2.1按下EVB复位按钮,以及Debugger的复位按钮。最后确认LED5(启动LED)正常闪烁。 如果Debugger成功识别到W7100A/W7100单片机,LED5(启动LED)将会亮起,否则表示没有识别到W7100A/W7100单片机。如果没有正确识别,需要确认连接线是否连接正常或者重新复位iMCU7100EVB和Debugger。正常情况下,使用W7100A/W7100 Debugger之前LED5应该是打开的。     3. 安装W7100A / W7100Debugger   这一章将会介绍W7100A/W7100 Debugger的安装过程。首先,运行W7100A/W7100 Debugger程序安装文件。   iMCU7100EVB Debugger安装程序启动之后,点击Next按钮进行安装。     4. KEIL工程   W7100A / W7100 Debugger支持的工程如下: l Keil uVision2工程 l Keil uVision3工程 l 只有hex文件 (受限的符号函数) ※W7100A / W7100 Debugger不支持包括KEIL uVision4以及之上版本的工程。但是如图 4.1,用户可以简单地将uVision4转换成uVision3工程继续使用W7100A/W7100Debugger程序。 ※W7100A / W7100A锁定功能警告   W7100A/W7100具有存储器锁定功能。如果设置锁定,用户便不能使用W7100A/W7100 Debugger程序,因为此时不能从W7100A/W7100存储器读取任何信息,所以用户必须利用WIZISP程序解除锁定才能正确使用W7100A/W7100 Debugger程序。如图4.2所示,清除复选框,并且点击“Lock”按钮。在解除锁定之后,整个存储器都会被擦除,用户需要再次写入固件。 更多关于WizISP程序的详细信息,请参考WizISP程序用户手册,可以到WIZnet官方网站进行下载。     W7100A / W7100 Debugger程序无法识别KEIL工程的多目录结构,因此所有的工程文件和源文件必须放置在同一个目录文件下。在KEIL工程中激活‘make hex file’选项和 ‘make symbol’选项。如果它们没有被激活,W7100A/W7100 Debugger就不能找到hex文件进行烧录。即使找到hex文件,也会出现错误信息。   首先,打开KEIL工程。 点击‘Project’ = ‘Options for ‘Target name’菜单。     从‘Output’栏下选定‘Create HEX File’选项,如图4.2。     选择‘Listing’栏并且选定‘C Compiler Listing’ 区的‘Symbols’选项。     同时选定‘Assembler Listing’区域中的‘Symbols’选项。‘AssemblerListing’选项任意。点击‘OK’按钮结束,开始编译KEIL工程。   在编译之后确认工程目录下是否生成HEX文件。     如果KEIL工程中包含像xxx.SRC文件这样的汇编代码,必须要选定‘Generate Assemble SRC File’和‘Assembler SRC File’选项。 首先,打开使用汇编代码的‘xxx.c’文件选项。   然后,选定‘Generate AssemblerSRC File’和‘Assemble SRC File’选项。       好了,今天就先介绍这么多,明天会继续 ^@^ 有疑难点,可以咨询~ 谢谢关注!     本篇博文官方地址: http://blog.iwiznet.cn/?p=1253 ☞ 想了解更多,请登录我们的网站: http://www.iwiznet.cn/
  • 热度 20
    2012-5-15 18:51
    3021 次阅读|
    1 个评论
      My next real-time job was among the most fun, mainly because I got to recommend all the parts of our development system and tools. It was for yet another satellite tracking antenna, only this one was in an airplane, and therefore bopping around instead of bolted to the ground. We chose the Motorola 68332 chip. We used the Intermetrics C compiler, which included a very nice source-level debugger. For once, I didn't need floating-point software, but I still needed—guess what—functions for square root, sine, cosine, and arctangent. We also gave the customer an added feature. Instead of a readout showing hex numbers in green, uppercase characters, we gave him a Windows-based interface, complete with multicolored graphs, simulated compass needles, spin-dials, and point-and-click inputs. Nice. I'm particularly proud of the operating system I wrote for this job. First, it used all the real-time features of the 68332—watchdog timer, counter-timer, etc., to the fullest. More importantly, it was rather unique in that the interrupt handler was itself reentrant. That is, the system could tolerate one or more new interrupts coming in, while it was still processing the last one. The only requirement was that the average time required to service the interrupt had to be less than the interrupt time. We delivered this system on time and on budget, and it met its performance specs. We also did several other jobs for this company, all successful. As a "reward" the customer, thinking to save some money, cut me out of the next contract, and hired my ex-partner. My only satisfaction out of the deal came from learning that, because he didn't understand the OS, his job went two years over schedule, was way over cost, and under performance. The company is no longer in business. Payback is sweet, but I'd much more have preferred that both our companies had prospered. The medical business I have one more job to tell you about. A medical electronics firm wanted to replace their existing patient monitor, which used something like eight Z80's, with a new one using a single Intel 80286. Our job was to port the code from Z80 assembler to C. Now, as you might guess, medical electronics is special because if it fails, it has the potential to kill people. The FDA has very strict rules for certifying a given system as safe. To create the new patient monitor, we had to assure the FDA that it would perform exactly the same functions, using the same algorithms, as the old one. That's not easy when you're changing both the CPU(s) and the programming language. To make sure that happened, I first had to understand, in precise detail, the Z80 code in the old one. And that was the rub, because while the original programmer was superb, he wasn't big on comments. As in, there were none. So before I could write the first line of C, I had to psychoanalyze the Z80 code, commenting and studying it until I knew it as well as I know my own memories. To get that job done, I used every programming trick I'd ever learned, and then invented some more. It was a hard job, but also exciting and instructive. I extended the concept of the dataflow diagram, to include real-time interrupts, synchronous, asynchronous, and background tasks. My design evolved into a set of nested, hierarchical state machines. It was very slick, if I do say so myself. In any medical application (and most other real-time applications), it's important to quickly respond to, and recover from, errors. In my design, each state machine returned an enumerated state identifying, some of which were typically error conditions. Looking back, I see that the design amounted to sort of a do-it-yourself exception mechanism. It worked just fine, and the software turned out to be both robust and error-free. See Jack write I've always enjoyed writing. My first creation, as I recall, was a comic book when I was around 10. During my aerospace days, I wrote many technical reports, white papers, and some journal articles. The biggie was my Ph.D. dissertation, which ran to 140 pages. Later I was writing software requirements specs, test plans, etc., for NASA and DOD customers. When I got involved with microcomputers, I wrote a few articles for magazines like Byte, Kilobaud, and ProFiles, the house organ for the Kaypro computer. In 1988, I started writing a tutorial on compiler construction. It's still on the web here at www.freetechbooks.com/let-s-build-a-compiler-t56.html. JD Hildebrand, then editor of Computer Language magazine, saw the tutorial and asked me to write an article on the topic. I did, and presented a paper at the next Computer Language Conference. That article and paper started my long relationship with Computer Language and its sister publication, Embedded Systems Programming. Computer Language also maintained a forum (CLMFOR) on CompuServe, and I spent many hours chatting about computers, and almost any other topic, with its denizens. In 1992, I was laid off from my day job. It was most probably the shortest of unemployment periods on record. That night, I got on CLMFOR and said, "Guess what? I've been laid off. Anyone want me to write an article or two?" JD responded immediately, with "I can take an article every two months." Tyler Sperry, then editor of Embedded Systems Programming, said, "I'll take one a month." And that was that. I didn't stay "unemployed" forever. I worked at other companies, and ran my own company for a time. But my writing for Embedded Systems Programming started then, and has never stopped. And, as Paul Harvey used to say, "Now you know the rest of the story."  
相关资源
  • 所需E币: 1
    时间: 2021-4-10 21:34
    大小: 1.29MB
    上传者: ZHUANG
    基于IEEE1149.1的DSP内嵌Debugger模块设计研究
  • 所需E币: 3
    时间: 2019-12-24 20:39
    大小: 278.42KB
    上传者: 16245458_qq.com
    【应用手册】AN543:DebuggingNiosIISoftwareUsingtheLauterbachDebuggerThisapplicationnotepresentsmethodsofdebuggingaNios®IIapplicationwiththeLauterbachTRACE32LogicDevelopmentSystem.TheTRACE32system,includingLauterbachPowerTracehardwareandtheTRACE32PowerViewintegrateddevelopmentenvironment(IDE),providescompletevisibilityintotheoperationofaNiosIIsystem.IncombinationwiththeNiosIIEDS,SOPCBuilder,andtheQuartus®IIsoftware,theTRACE32systemenablesyoutoanalyzeNiosIIsystemfailuresoranomalousdesignbehavior.TheLauterbachTRACE32systemgivesyouadegreeofcontrolunmatchedbyotherNiosIIdebuggingenvironments.ThisapplicationnoteincludestutorialstepsfordebugginganexampledesignontheAltera®Cyclone®III3C120developmentboard,andgeneralguidelinesfordebuggingacustomdesign.ThisapplicationnoteassumesthatyouarerunningtheLauterbachTRACE32PowerViewIDEonaWindowsplatform.However,thetechniquespresentedareindependentoftheplatform.AN543:DebuggingNiosIISoftwareUsingtheLauterbachDebuggerApril2009AN-543-1.0IntroductionThisapplicationnotepresentsmethodsofdebuggingaNiosIIapplicationwiththeLauterbachTRACE32LogicDevelopmentSystem.TheTRACE32system,includingLauterbachPowerTracehardwareandtheTRACE32PowerViewintegrateddevelopmentenvironment(IDE),providescompletevisibilityintotheoperationofaNiosIIsystem.Incombinationwith……