1)首先设置熔丝位,打开JTAG功能,如下图。使用USB ISP下载器写入熔丝。
2)硬件连接
(a)10芯线一端接核心板的JTAG口
(b)10芯线另一端接仿真器JTAG
(c)JTAG串口接串口线,串口线的另一头接电脑。
(d)打开电源开关,接着下面的操作
3)仿真调试
我们用 AVR Studio 仿真时,用到的是 .elf 文件。点击上图中的Open,随便打开一个.elf 文件。
或点击Cancel,从 File-Open File打开。如图:
选择main.elf后点击“打开”,出现:
点击“保存”,出现:
点击“是”或“否”都行,点击“是”重新建一个工程文件main-elf.aps,点击“否”,不替换原来的工程文件。点击“是”,软件弹出设置器件及仿真模式窗口:
此处是AVR JTAG硬件仿真。所以分别选择:调试模式为JTAG ICE、芯片型号为ATmega16、端口为Auto。点击“Finish”进入下一步。
说明:
如果出现如下界面,问题原因:PC机与AVR JTAG仿真器连接不成功。问题出在PC 与AVR仿真器之间,查看串口连接是否正确、AVR仿真器是否上电,COM口是否在0-4之间。如果没有上点,打开开发板电源,等到JTAG仿真器上的灯停止闪烁后,点击Retry,此时就能显示上图正确的界面了
说明:
如果出现如下界面,问题原因:AVR JTAG仿真器与目标芯片连接不成功。问题出在AVR JTAG仿真器与目标芯片之间,查看JTAG接口是否正确、AVR芯片是否打开JTAGEN熔丝位。
出现如上界面,需正确设置熔丝位。此时得用USB-ISP编程器连接好开发板和电脑,在光盘中的USB-Isp\下载软件\progisp下打开“下载软件” 进行熔丝位配置,确认学习板熔丝JTAG打开
在位配置方式下,如下图,0表示打开,1表示关闭,配置如下:
在向导方式下,如下图,打开使能JTAG接口(使能JTAG接口划勾为打开)
经过上面步骤,如果硬件连接没有问题,点击三下“Select”,会进入正式仿真界面,如下图:
中间是我们的程序,右边是我们的寄存器列表
AVR STUDIO 常用工具栏:
标准工具栏:
标准工具栏从左到右分别表示:
创建一个空文本文件
打开一个已有的文本文件
保存当前文本文件
保存工程
重装目标文件
从文本文件中剪切
从文本文件中复制
粘贴到文本文件中
打印文本文件
在文件中查找
调试工具栏:
调试工具栏从左到右分别表示:
运行调试器
停止调试器
复位调试器
退出调试器
显示下一个语句
单步运行 (F11)
跳过运行 (F10)
跳出运行 (Shift+F11)
运行到光标处 (Ctrl+F10)
单步自动运行(单步持续运行直到暂停)
设置/取消断点
清除所有断点
快速查看
调试窗口工具栏:
调试窗口工具栏从左到右分别表示:
打开/关闭查看窗口
打开/关闭寄存器窗口
打开/关闭存储器窗口
打开/关闭跟踪-窗口
打开/关闭反汇编窗口
调试工具栏详解:
调试控制栏可以控制程序的执行状态,所有的调试控制都可以由菜单,快捷键和调试工具栏实现。下面详细说明调试工具栏里面的每个按钮,这个是仿真过程中最常用最基础的部分。
开始调试(Start Debugging)
此命令将启动调试模式,并使所有的调试控制命令处于有效。通常在调试模式下不能编辑程序。此命令将连接调试平台,装载目标文件并执行复位操作。
停止调试(Stop Debugging)
此命令将停止调试过程,并断开与调试平台的连接,进入编辑模式.
复位(Reset)(SHIFT+F5)
此命令可以让目标程序复位。当程序正在运行时,执行此命令的话程序将停止运行。如果用户是在源级模式中,程序会在复位完成后,继续运行直到第一条用户的源代码语句处。复位命令执行后,所有窗口中的信息都将更新。
运行(Run)(F5)
调试菜单中的运行命令将启动(重启动)程序。程序将一直运行直到被用户停止或遇到一个断点。只有当程序处于停止运行状态时才能执行此命令。
暂停(Break)(CTRL-F5)
调试菜单中的暂停命令将停止程序运行。当程序停止时,所有窗口中的信息都将更新。只有当程序处在运行状态时才能执行此命令。
单步执行(Single step, Trace Into)(F11)
调试菜单中的跟踪命令将控制程序只执行一条指令。当 AVR Studio 是在源代码级模式时,可执行一条源代码语句。当在反汇编级模式时,可执行一条反汇编指令。当指令执行完成后,所有窗口中的信息都将更新。
跳过执行(Step Over)(F10)
调试菜单中的跳过执行命令只执行一条指令。如果此条指令包含一个函数调用/子程序调用,该函数/子程序也会同时执行。如果在跳过执行命令中遇到用户设置的断点,程序运行将被挂起。在跳过执行命令执行完毕后,所有窗口中的信息才会被更新。
跳出(Step Out)(SHIFT+F11)
调试菜单中的跳出命令会使程序一直运行,直到当前函数结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。
运行到光标处(Run To Cursor)(F7)
调试菜单中的运行到光标处命令,将使程序运行到源代码窗口中光标指示的语句处停止。此时如果遇到用户的断点,程序的运行将不会被挂起。如果程序运行永远达不到光标指示处的语句,程序将一直继续运行,直到被用户停止。当此命令结束后,所有窗口中的信息都将更新。由于此命令是与光标位置有关,所以只有当源代码窗口激活时才有效。
自动运行(Auto Step)
调试菜单中的的自动运行命令将重复执行跟踪指令。当 AVR Studio 处在源代码级模式时,每次执行一条源指令,处在反汇编级模式时,每次执行一条汇编指令,随后所有窗口中的信息都将更新,接者自动执行下一条语句或指令。使用自动运行命令时,程序的运行将一直持续的单步运行,直到遇到一个用户设置的断点或被用户停止。
设置下条开始运行的语句(Set next statement)
使用此条指令,你可以在程序任何位置的可执行语句处设置一个黄色标签:用鼠标指定一条可执行的语句后选择该命令。下一条调试命令将从带有标记的语句开始运行。
显示下条语句(Show next statement)
将含有黄色标记指定的语句所在的窗口作为当前有效窗口,窗口显示内容以该语句为焦点。