欢迎使用AVR Studio

AVR Studio是在Windows 9x/Me/NT/2000/XP 操作系统下编写和调试AVR应用程序的嵌入式开发环境(IDE）。AVR Studio为功能强大的AVR 8-位 RISC 指令集单片机提供了工程管理工具，源文件编辑器，芯片模拟器和在在线仿真调试（In-circuit emulator）接口。

此外，AVR Studio还支持STK500开发板，这个开发板可以对所有的AVR器件编程，并且AVR Studio 还支持新JTAG在片（on-chip emulator）仿真调试器。

AVR Studio 4 拥有一个全新的模块结构，此结构允许第三方软件投资商共同合作开发，而且GUI 插件和其它模块也可以写或挂到该系统上，如果您想了解更多信息请点击 联系我们 。

©所有版权归 ATMEL公司所有。AVR和AVR Studio是ATMEL 公司的商标。Windows 95, Windows 98, Windows NT, Windows 2000和Windows ME是微软公司商标。


Release Note

发布说明

欢迎使用 AVR Studio 4.11 服务包 2 (03/2005)

在此更新中有什么新功能...

支持的器件

ATtiny24 (JTAGICE mkII, STK500, STK505, AVRISP, 模拟器, AVRASM2)

ATmega645 (ICE50, JTAGICE mkII, STK500, STK502, AVRISP, 模拟器, AVRASM2)

ATmega6450 (JTAGICE mkII, STK500, STK504, AVRISP, 模拟器, AVRASM2)

ATmega649 (JTAGICE mkII, STK500, STK502, AVRISP, 模拟器, AVRASM2)

ATmega6490 (JTAGICE mkII, STK500, STK504, AVRISP, 模拟器, AVRASM2)

ATtiny28 (模拟器 和AVRASM2)

ATmega644 (ICE50 和AVRASM2)

特性

带OSCCAL校验功能的JTAGICE mkII ，详细内容请参考AVR053的应用笔记 。(Beta 特性)

修复说明

- 在编程工具中增加了断开模式，也就是说现在您可以不连接任何工具就能打开STK500对话框。

- 增加了STK500 对ATtiny11的编程支持。

- 修复了STK500/AVRISP对tiny2313 振荡器校验值的读取，过去是读取8MHz的代替4MHz的，用4MHz的代替8MHz的。

- 在使用UBROF目标文件时，支持bitfields 。

- STK500 现在可以识别相似的HEX文件。

- stk500.exe 现在支持 -a 和 -g 命令。

- stk500.exe 现在可以自动搜索COM口。

- stk500.exe 现在可以支持没有振荡器的STK500，命令stk500 -!0 可以用来停止时钟。

- 调整了使用 USB-COM 转换器连接 AVRPROG 的启动延时时间。

- 在STK500 对话框中，当用户选择ATmega329 时会选到ATmega3290 。对于其它的器件也会发生同样问题，如：(ATmega16 -> ATmega162)，这类问题已经修复。

- 现在不需要完整的路径名或详细的工程的地址，就可以在avrasm2的工程中包含文件。

- Formfeed (ASCII 0x0C) 现在可以作为字符被汇编编译器识别。

- 早先的 jtagicemkii.exe 在读取Flash 和EEPROM 存储器时会丢失最后的字节，现已修复。

- 在调试开始前如果改变 JTAGICE mkII 选项，Studio不再挂起。

- 现在当 mega128 在级联中不作为第一个器件时，可以用JTAGICE mkII 对 mega128 进行编程。

- 修复了ICE50的更新功能，这样可以减少更新失败的机会。

- 修复了elf/dwarf剖析器，当装载的elf 目标文件没有.eeprom部分，应用程序不再跑飞。

---

欢迎使用 AVR Studio 4.11 (01/2005)

在此版本中的新增功能...

调试平台的更新

新固件和器件更新，更多信息请看 JTAGICE mk II 的帮助文件。

新固件和器件更新， 更多信息请看 ICE 50 的帮助文件。

编程支持的更新

我们已经发布了STK500 固件的新版本 (V2) ，并且发布了AVR Studio 的相应版本。同时，更新了STK500 的协议和驱动。更多信息请参考 STK500 和 AVRISP 。

独立的编程平台连接对话框，可以更好的控制与哪个平台或端口连接，并且减少了大部分平台的连接时间。STK500, AVRISP, JTAG ICE 和JTAGICE mkII 的编程对话框现在统一由 "Program AVR" 菜单项目控制。

现在的编程器对话框使用器件说明文件来决定不同类型的编程平台可以支持哪种器件。

现在可以独立控制ISP的工作频率，而不再依赖于STK500板上的振荡器。

新仿真器支持的器件

ATtiny45

ATmega2560

ATmega2561

AT90PWM2

AT90PWM3

新的仿真器帮助增加了器件的疑难问题解答内容。

新工具和特性

AVR 汇编编译器2 (AVRASM2) 现在已经是AVR Studio 的默认编译器，但是在AVR Studio (汇编编译器选项) 中仍然可以选择旧的编译器。注意现在已经 “不支持” 旧的编译器，并且旧的编译器不能支持新的AVR器件，更多信息请看 汇编编译器选项 帮助 。

编译器的选项对话框增加了附加特性：可以改变默认设置，可以增加前缀（Pre）和后缀（ post）结构的命令，并且操作的结果会被保存到工程文件中。

我们已经发布了ELF/DWARF剖析器的1.0版本，它可以支持AVR Studio调试由AVR-GCC生成的目标文件，更多信息请看 目标文件格式和支持 。

用户界面没有做太多的更新，但是为了使系统更加可靠和稳定还是做了一些小的修复。下面是部分修复内容。

修复说明

用户界面
* 工程向导和选择调试平台/器件对话框已经更新，所以现在总是显示当前设置
* 当打开字体对话框时会显示当前的字体设置
* 断点列表已经修复，以避免重复输入
* 修复了保存编辑器设置时出现的问题
* 修复了在存储器窗口中滚动条和“变成红色”的问题

IAR UBROF
* 现在数组指针按正确顺序显示。
* 现在工程中使用的IO寄存器以它们固有的名字在窗口中显示

JTAGICE:
* 改变了ATmega64 器件描述符，以便调试时在Studio中可以访问ADCSRB寄存器
* 有关JTAGICE的修复情况的更多信息请看 JTAGICE MKII 帮助文件

修复了从Beta-3开始的ELF/DWARF剖析器
* 修复了查看short型变量时存在的问题
* 修复了查看函数时没有类型信息的问题
* 改正了常量数组类型名
* 对目标文件中存储内容的分析做了修复和校正
* 修复了断点问题和其它不同变量的路径问题
* 无符号字符型变量值now可以正常显示，而不是在> 127时显示负值
* 常量指针现在显示为常量指针，而不是指向常量目标的指针
* 通过重新写调试信息入口地址，可以减少了PC的内存使用存储空间
* 修复了使用USB接口向ice50 和ice40上载elf/dwarf目标文件时出现的问题

MISC
* 修复了在汇编工程的第65535 行放置断点时引起的不稳定问题

模拟器
* ATtiny26：对Timer/Counter1 的多种修复
* ATtiny15：对Timer/Counter1 的多种修复
* 修复了大多数器件的Timer/Counter0 ，使得模拟器的时钟计数脉冲与相应器件同步，并且支持Timer/Counter0 全部功能。
* 修复了当输出比较不允许时时钟清零 PORT 端口位

*对于新器件：AT90CAN128, ATmega165,169, 325, 329, 3250, 3290, 48/88/168, 649, ATtiny13 和ATtiny2313，写它的某引脚（PIN）将改变相应的端口寄存器（PORT）。
* 增加了支持IVSEL 标志位功能
* ATmega8515：修复了Timer/Counter0 的预分频功能
* 不能执行不支持的指令，如：ATtiny13不能执行MUL 指令
* 能正确的对中断进行周期计数
* ATtiny13：不能设置ACSR 寄存器的第7位(AC)
* ATmega8：修改了最大速度并增加了缺少的中断矢量

ICE200
* 现在时钟设置值可以保存并可以完全恢复
* 修复了运行模式中的复位选项

更多信息请参考其它资料。

其它（Miscellaneous）

*安装程序可以安装所有最新的XML剖析器文件(MSXML 4.0 SP2)

*USB WinDriver由ver 6.22更新到ver6.23。这将修复特定OS/HW系统的稳定性问题。

请参看:
支持的工具和器件
疑难解答
发布历史

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Debug platform and device support

支持的工具和器件

说明

AVR Studio 4 支持所有新的 Atmel 公司生产的AVR调试平台和器件。下面的表格列举了AVR Studio 4支持的工具和器件：

 | 模拟器 | ICE40 | ICE50 | JTAGICE mkII | JTAGICE | ICE200 | STK500/ISP | 汇编编译器
tinyAVR |  |  |  |  |  |  |  |
ATtiny11 | a |  |  |  |  |  | a | a
ATtiny12 | a |  |  |  |  | a | a | a
ATtiny13 | a | a | a | a |  |  | a | a
ATtiny15 | a |  |  |  |  |  | a | a
ATtiny22 | a |  |  |  |  |  | a | a
ATtiny24 | a |  |  | a |  |  | aSTK505 | a
ATtiny26 | a | a | a |  |  |  | a | a
ATtiny28 | a |  |  |  |  |  | a | a
ATtiny45 | a |  |  | a |  |  | a | a
ATtiny2313 | a |  | a | a |  |  | a | a
classicAVR |  |  |  |  |  |  |  |
AT90S1200 | a |  |  |  |  |  | a | a
AT90S2313 | a |  |  |  |  | a | a | a
AT90S2323 | a |  |  |  |  |  | a | a
AT90S2343 | a |  |  |  |  |  | a | a
AT90S4433 | a |  |  |  |  | a | a | a
AT90S8515 | a |  | au |  |  | a | a | a
AT90S8535 | a |  | au |  |  | a | a | a
AT90C8534 |  |  |  |  |  |  | a | a
megaAVR |  |  |  |  |  |  |  |
ATmega8 | a | a | a |  |  |  | a | a
ATmega8515 | a |  | a |  |  |  | a | a
ATmega8535 | a |  | a |  |  |  | a | a
ATmega16 | a |  | a | a | a |  | a | a
ATmega32 | a |  | a | a | a |  | a | a
ATmega48 | a |  | a | a |  |  | a | a
ATmega88 | a |  | a | a |  |  | a | a
ATmega168 | a |  | a | a |  |  | a | a
ATmega323 | a |  |  |  | a |  | a | a
ATmega161 | a |  | au |  |  |  | a | a
ATmega162 | a |  | a | a | a |  | a | a
ATmega163 | a |  |  |  |  |  | a | a
ATmega64 | a |  | a | a | a |  | a | a
ATmega103 | a |  | au |  | a |  | aSTK501 | a
ATmega128 | a |  | a | a | a |  | aSTK501 | a
ATmega165 | a |  | a | a |  |  | aSTK502 | a
ATmega169 | a |  | a | a | a |  | aSTK502 | a
ATmega325 | a |  | a | a |  |  | aSTK502 | a
ATmega3250 | a |  |  | a |  |  | aSTK504 | a
ATmega329 | a |  | a | a |  |  | aSTK502 | a
ATmega3290 | a |  |  | a |  |  | aSTK504 | a
ATmega645 | a |  | a | a |  |  | aSTK502 | a
ATmega6450 | a |  |  | a |  |  | aSTK504 | a
ATmega6490 | a |  |  | a |  |  | aSTK504 |
ATmega649 | a |  | a | a |  |  | aSTK502 | a
ATmega2560 | a |  |  | a |  |  | aSTK503 | a
ATmega2561 | a |  | a | a |  |  | aSTK501 | a
ATmega406 |  |  |  | a |  |  |  | a
其它 |  |  |  |  |  |  |  |
AT86RF401 | a |  |  |  |  |  | a | a
AT90PWM2 | a |  |  | a |  |  | aSTK520 | a
AT90PWM3 | a |  |  | a |  |  | aSTK520 | a
AT90CAN128 | a |  | a | a | a(Limited) |  | a STK501,ATADAPCAN1 | a

u 兼容模式下支持

发送反馈到Atmel公司，欢迎所有的对AVR Studio和其它工具的要求！


Knownissues

疑难解答

下面是AVR Studio 4的最新的疑难解答。(最近更新时间 01/2005)

普遍问题
安装
GUI-用户接口
JTAGICE/JTAGICE mkII
ICE50
STK500
仿真器
使用IAR编译器
AVR-GCC和DWARF2调试平台
查看窗口

问题

原因解释/解决办法

普遍问题

某些用户不能选择任何器件进行调试，不能开始并且/或者调试任务，或者在使用ICE40/50，模拟器或 JTAGICE mkII 时只能选择ATmega128。

上述问题可能是因为一些动态连接库（DLL）文件已经损坏，并且/或者版本错误。我们已经确定了以下两种解决办法：

1) 确保你已经安装了由服务包提供的最新的版本6的IE浏览器 。

2) 安装Microsoft XML Parser (MSXML) 3.0 Service Pack4或后续版本(SP4)，AVR Studio 4使用 XML 更多一些。这个服务包可以由下面的站点下载：

The Microsoft? XML Parser (MSXML) 3.0 SP4 http://www.microsoft.com/downloads/details.aspx?FamilyID=c0f86022-2d4c-4162-8fb8-66bfc12f32b0&DisplayLang=en

注意:现在AVR Studio 4.11版本包含最新版本的XML parser (MSXML 4.0 SP2) 。这里同样也要避免上述的问题。如果不避免的话，解决办法是仍要重新装载最新的MSXML包。

移动工程文件时要注意：
文件的路径将作为绝对路径保存到工程文件中。所以当你打开一个复制的工程文件时，它仍将仍记录过去的位置。所以避免这种问题的最好的方法是在一个新的位置创建一个新的工程。

有时在你装载AVR Studio 4工程时可能会遇到问题。这时你要先关掉AVR Studio并删除工程(APS)，然后启动AVR Studio并建立一个新的工程。

通常在用户确认后，原始的EEPROM或SRAM中数据将自动上载到调试平台的EEPROM存储器中。如果此过程出现错误，你也可以在装载工程后，通过选择'Up/Download memories'手动完成。

如果某函数的最后一个语句是循环的一部分，并且没有明确的返回语句，那么跳出指令不会起作用。解决这个问题的一种方法是在函数的末尾添一个 "return;" 语句。目前在Imagecraft C Compiler中出现过这个问题，在其它的编译器中也可能会出现。

'Find in files' 功能不能搜索文件的最后一行，为解决这个问题，要确保文件的最后一行是空的。

安装

我们建议你安装AVR Studio的最新版本。

如果你已经修改了AVR Studio 4安装文件，当你安装了一个更新的版本时，将不会覆盖/更新原来文件。所以在安装前你要确保安装的是最新版本的AVR Studio。

确保你安装的是MS的IE5或更新版，由于我们在AVR Studio 4 中广泛使用XML文件，所以我们要用它的库函数，如果不安装它的话会出现不可预料的情况。

GUI - 用户界面

中东版本的Windows 95/98/Me (Arabic和Hebrew) 的编译器存在一些问题，主要是因为系统库函数出现了错误，在这些Windows版本中编译器不能正常工作。解决方法：安装Windows 2000, XP或NT。

如果您更换了一个器件后重装目标文件，将出现下面的信息：
目标文件的内容超过了器件的最大程序存储容量，错误装载目标文件(文件名)。
这时AVR Studio可能会出现这种问题：不能改变平台/器件并且不能开始调试模式。这时您可以关掉AVR Studio然后重新启动应用程序。

当你打开一个HEX 文件，把它同时作为调试文件并和文本文件将出现错误。解决办法：
1) 调试文件：使用工程向导来选择打开；
2) 文本文件：使用菜单File->Open File 在“Open As”的下拉框中选择“Text”。

在跟踪窗口中的垂直滚动条的大小和位置不是总是正确的。这是由于显示跟踪的记录/源代码的行数直到显示时才会知道，所以为了保持更新速度，要取回记录并对其解码。

在访问菜单时，当ALT键与其它键一起使用，你必须保持ALT键按下不放。

当你装载了一个工程后要正确指定所有源文件的位置，不然你以前设置的断点/跟踪点即使在用户界面中可以看到也可能不能工作。解决办法是重新装载工程。这类问题将会在你移动工程或文件后发生。

如果你把工程移动到另外一个地方，工作区中的文件链将复制当前打开的文件名 (AVR Studio 可以记忆打开的文件)。如果这种情况发生了很多次，你必须删除此工程文件(APS)。

I/O 存储器窗口将标记从0x00到0x3f 的地址，虽然"真实"地址是0x20到0x5f。所有其它窗口都显示"真实" 地址，这是为了使用户能更便利地使用I/O窗口，因为有些I/O指令如in和out的基地址是0x00。

在浮动的存储器视窗中看不到工具提示信息。解决办法：让它再进入拼接状态。

在调试过程中所有更改过的存储器位置都会变成红色，当使用滚动条时，这些红色将会消失。

如果工具栏, 按键或窗口重叠在一起，你可以选择选项"Reset desktop on restart"来使它们复位，然后重新启动AVR Studio。

当输出或工作区窗口在浮动状态时，如果你把它关闭，就不能再把它打开。选择选项"Reset desktop on restart"可以把它重新激活，详见：选项,general

当不在焦点上时，在器件选择框中的文本颜色将变混乱，而当前已选的器件将反转成白色并且将显示 "unselectable"。

新工程 + 工程向导。如果你已经开始一个调试任务，并且此时又打开了一个新工程，这个工程将被关闭，并且不能取消操作。

在工程和文件名中使用非英文的文字可能会出现问题。解决办法：当创建新工程或新文本文件时避免使用非英文的文字。

用户化选项。 如果你选择 "reset all" ，工具条下面的GUI 插件将消失。你必须重新启动AVR Studio才能让它们重新出现。

当OS是WinNT或Win95时，编译器和存储器视窗中不能自动支持鼠标滚轮，为了使用此功能请下载并安装驱动。

在寄存器窗口中不能使用鼠标滚轮。

JTAGICE/JTAGICE mkII

在JTAGICE调试任务中，某些I/O寄存器不能方便的使用。更多信息请看JTAGICE在线帮助。

注意在JTAGICE调试任务中，指令周期个数计数器（Cycle Counter）总是0。这是因为JTAGICE中不能使用指令周期个数计数器（Cycle Counter）。在GUI中频率和码表（stopwatch）也不能使用。

当使用ATmega128的'ATmega103 '兼容模式时，注意在存储器窗口中，显示的是ATmega128的SRAM 存储器的边界，而不是ATmega103的边界。同样，注意在I/O 寄存器中显示的是ATmega128的I/O 寄存器，而不是ATmega103的。

有关疑难解答和更多信息，请看JTAGICE的在线帮助。

ICE50

ICE50的目标选项对话框窗口有时是出现在AVR Studio主窗口后面。当这种情况发生时，AVR Studio的主窗口似乎是被锁住，直到ICE50目标选项对话框窗口关闭。

如果AVR Studio为ICE50安装更新程序时连接失败，这时一定要关闭AVR Studio。

当在EDIT模式（调试后断开）时复位ICE ，所有ICE中打开的文件将丢失，并且再次连接时会出现各种错误信息。这时你必须要关闭工程，然后再打开重装你原来的文件。

确保用串口更新你的ICE50。

如果你使用Xircom PortGear(USB到串口)，并且没有连接ICE50，可能会出现不稳定情况。所以要确保ICE50已经连接并上电。

有关疑难解答和更多信息，请看JICE50的在线帮助

STK500

如果在连接时你发现了问题，确保检查你是否已经停止了其它使用COM 口的调试任务，例如：在连接一个调试任务的同时不能在同一个端口连接STK500开发板。

有关疑难解答和更多信息，请看STK500的在线帮助

IAR 编译器

Generate debug info选项要求目标模块中包含AVR Studio 需要的附加信息。默认设置的最佳级别是"None"。

注意只有optimization levels "None"和"Low"时，生成代码能够被 AVR Studio 可以完全调试。

通常地AVR Studio支持UBROF 8调试格式及更早版本。IAR EW 3.10 默认生成UBROF 9格式。有关如何使用IAR EW 3.10生成UBROF 8.的说明请看 目标文件格式和支持 部分。

如果你已经选择了"Source files embedded in object file", AVR Studio将生成临时的叫做"embedded"的文件夹,并且它会把所有的源文件放在这个文件夹里面。源文件将会有带有前缀 _embXX的名字。要确保你的调试文件的路径是正确的。

AVR-GCC 编译器和DWARF2 调试平台

注意AVR-GCC编译器必须要正确配置，以支持DWARF2的输出。假定编译器支持DWARF2的输出，其格式是由-gdwarf-2操作产生的。

1. 限制flash最大为64K
当程序存储区地址大小超过64K时，由AVR-GCC输出的程序存储区地址和源代码位置间的映射关系将断开。

2. eeprom 变量
AVR-GCC生成的DWARF调试信息缺少地址信息.因此AVR Studio将把所有变量都放在SRAM中.如果把变量放在其它地方，在窗口中会显示错误的地址.

3. 跳出
AVR Studio中的"step out" 机制在某些情况下会出现错误操作，这是因为把AVR-GCC产生的代码和一些调试平台实现跳出机制结合在一起的原因。

4. 多维数组
在AVR Studio中多维数组都是以同一标准显示在查看窗口中

5. 还不能完全支持对C++的调试.

6. 在查看窗口中不能显示枚举变量．

仿真器

现在还不能实现TWI, USI和模拟接口的仿真．但所有的指令都支持中断和其它外围设备。

AVR Studio不支持隐藏寄存器，所以当工作在fast-和phase correct的PWM模式时，OCR寄存器不能被更新直到TCNT到达TOP值。

在异步模式中计数器不支持异步状态寄存器(ASSR)，这是因为无法实现统一的外部时钟。

当器件在运行时如果遇到不支持的指令时，仿真器将报错．此项功能不能被禁止。为了不出现报错信息，程序中不能出现此类指令。

更多信息请看仿真器帮助。

查看窗口

在正确初始化后，char[]必须要扩展，但在某些情况下，在窗口中的扩展数组的下一个元素并不能正确更新。解决办法是把冲突的数组元素强制更新，然后再一次扩展数组。

在查看窗口中不能正确显示Bitfields，显示的bitfield类型不正确，所以显示的值也就不正确。

当从AVRStudio的窗口中查看IAR(UBROF)或Imagecraft (COFF)工程的枚举变量时，窗口中将显示枚举变量的单个数值，而不是一串数值．

对于COFF格式输出, 不能显示"long long" 和"long double" 型变量。

对于COFF格式输出, 当浏览库函数时不能看到全局变量。(黄色指针,程序计数器，指在库函数程序中)

查看窗口的功能对于输出符号的Ｃ编译器/汇编编译器是独立的。例如IAR输出UBROF(.d90) ，Imagecraft/Codevision 输出COFF(.cof )，但要保证你已经使能了校正选项，这样在你的编译器选项对话框中会输出正确的调试信息。

在新的4.06版本中，AVR编译器是支持查看功能的，确保已经生成.map 文件。(默认是打开的)。

不能自动查找C++ 中的类的成员变量．可以输入'this' 并对它进行扩展，然后再看成员变量。


Installation and update

安装与更新

AVR Studio安装完毕后，你可以从开始菜单里的“AVR Tools”中通过选择“AVR Studio 4”启动 AVR Studio。如果要进行在电路仿真，在打开任何工程前必须连接仿真器并给仿真器上电。

AVR Studio会经常进行更新，您可以通过网站 www.atmel.com下载最新版本的软件。从网站下载最新版软件后，请运行AVRSTUDIO.EXE释放安装文件，然后运行 setup.exe 并按照屏幕的提示信息进行安装。

系统要求
Windows 2000/XP (或 Windows NT 4.0 带有Internet Explorer 5.0或更新版)。
Windows /95/98/Me (带有Internet Explorer 5.0 或更新版)。
硬件要求：
~ Intel Pentium 200MHz处理器或相当配置
~ 1024x768显示器(最小800x600)
~ 64MB 内存
~ 50 MB 剩余硬盘空间

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Contact information and feedback

联系信息

请把您遇到的所有关于此版本的AVR Studio的问题告诉我们，我们同样也欢迎收到有助于改进AVR Studio的建议和要求。

邮件支持：avr@atmel.com

对于AVR Studio最新的更新，请访问： www.atmel.com

如果您对AVR Studio的扩展模块感兴趣，请联系我们，我们将提供技术文挡和使用范例。我们还没有准备好所有的文挡，但准备工作正在进行。我们收到了很多关于技术文挡的要求，但是现在我们还不能满足所有的要求。

关于AVR Studio 4的技术问题请发邮件到 avrbeta@atmel.com

漏洞报告

如果发现漏洞，请从版本对话框 (见下图) 中复制版本信息并发送到Atmel公司，并且要提供对问题的详细说明：

1) 说明如何出现问题。

2) 附上引起问题的测试程序。

3) 复制的版本信息要包含使用的调试平台和器件的信息。

图示：版本对话框可以这样打开：选择文件菜单中的 Help->About，然后选择"Version"，只有在在调试模式时才能看到调试平台和器件信息，按“copy”键把内容复制到剪切板。


Tutorial

IDE使用初步

简要说明

对于那些有多年单片机使用经验的人，可以跳过这一部分进行下面的内容，这部分主要适用于那些刚刚接触集成开发环境的单片机初学者．

AVR Studio 4 是一个大型的应用软件，它支持在几个工作阶段中使用，这些阶段是在你开发一个基于AVR 单片机的新产品时经常遇到的，它们是：

  1. 产品定义：基于你对你要完成的任务的了解和市场投入，你要对新产品进行定义。

  2. 正式说明：对已定义产品的正式说明。

  3. 由一个到几个人组成的工作组，要对已正式说明的产品进行分工。

  4. 工作组的正常工作流程：设计，开发，调试，验证，产品计划，产品，测试和包装。

AVR Studio 在设计，开发，调试和验证过程中对开发者进行支持．在接下来的部分中，简要介绍为什么和如何使用这个工具。

商用工具

AVR Studio 4包含很多窗口和子模块，其中每个部分都将对你的的工作有所帮助．下面介绍它的几个主要窗口。

工程管理

所有AVR Studio产生的代码都是作为编程工程完成的．而所有的工程都有一个工程文件，此文件包含有关工程，编译器启动，用户化视窗等等的信息．工程文件可以确保在你每次打开原工程时，它还保持原来内容和位置不变．并且它能正常启动。

编辑器

在这里你可以进行编程．AVR Studio 4使用Bsquare公司生产的Stingray 编译器．这是一个非常成熟的编译器，它包含所有你使用过的功能，包括彩色代码语句(用户可以改变并扩展)．当你进行调试程序时，在编译窗口左侧的空白处可以设置断点和跟踪点，这是十分方便的。

输出栏

这里几个窗口都集成到一个标签框中，你可以通过选择框上的标签打开你要的窗口:

  • The Build view. 此窗口显示编译器/汇编编译器的输出结果。

  • The Messages view. AVR Studio 4由许多用Microsoft DCOM技术压缩的软件对象构成，相当多的软件对象没有它们自己的用户界面。所以信息窗口是这些软件模块显示用户信息的公用窗口。信息使用彩色代码。大部分信息都是同等优先级的而且没有颜色。但少数信息是彩色的，如：警告信息是黄色，错误信息是红色，并且所有的信息都可以加上时间记号(在窗口上点击鼠标右键可以选择时间记号选项)。你甚至可以使用过滤功能来关闭或打开某些信息。

  • Find in files view. AVR Studio 4有一个高级的"find in files" 功能，搜索的结果显示在此窗口。

  • Breakpoints. 列举所有模块中的有效断点，在此视窗中可以使能，不使能或取消断点。

工作区栏

AVR Studio 4的工作区窗口由许多窗口组成，这些窗口可以帮助开发者调试系统程序。

工程窗口

工程窗口列举了在你工程中包含的文件。如果你已经打开一个目标文件并进行调试时，工程窗口中将显示当前装载的目标文件的名字和它所引用的源文件。

I/O 窗口

I/O 窗口分为:

  • 寄存器文件部分. 所有的AVR控制器都设置了32个通用寄存器，它们可以被编程器或编译器灵活应用。在每次仿真暂停时，此窗口中的值都会被内部寄存器的当前值更新。如果是在上次暂停后改变的值，寄存器将变成彩色。

  • 处理器内核寄存器部分. 作为寄存器窗口，处理器寄存器在程序执行暂停时同样将被更新。在这里你可以查看程序计数器，堆栈计数器等等。

  • 寄存器部分. 每个不同的AVR器件是由外围设备定义的。ATmega128与AT90S8515相比，有完全不同的外围设备，但是它们的内核和指令系统是完全一样的。所有的外围设备都是由8位或16位可读/写寄存器控制。I/O窗口可以显示所选器件名称和该器件所有寄存器各个位的状态。在仿真暂停时，可以读或写每个位和寄存器的值。此窗口可以完全控制正在进行调试的器件，但它与集成开发环境如Microsoft Visual Studio不同，Microsoft Visual Studio是PC机后台操作系统而不是单片机本身。此窗口本身是基于XMLis原本，并且Atmel公司对每个新的器件版本都制作了新的原本。器件更新可以通过Atmel公司的网站完成。

信息窗口

信息窗口分为：

  • 中断向量部分. 中断向量通常反映器件的外围设备的状态，因此每个AVR器件的中断向量是不同的。在此窗口中列举了所有的中断向量和与它们相应的中断向量地址，这对于你编写中断服务程序是非常有用的。(并且对于大部分单片机都是如此)

  • 引脚封装部分. 这里列举了器件的封装，并且有每个封装的引脚输出，在工具提示帮助中包含了大部分引脚的说明，这对你调试硬件和软件都是非常有用的，在此窗口中你总是可以看到需要的引脚信息。

  • 寄存器部分. 这是I/O窗口的补充。I/O窗口中显示了所有寄存器的外围功能，在此窗口中由高地址到低地址列举了所有的寄存器名称。

查看窗口

在用高级语言C/C++调试程序时需要查看变量，如果您使用AVR Studio 4工具，这将是一件非常简单的事情，你只要点击想要查看的变量，并把它拖拉到查看窗口中。如果你选择变量是一个结构体或数组，在这个变量前会出现符号[+]，表示它可以在此窗口中进行扩展。当程序暂停时，如果变量是在“作用域范围”内，它将自动更新。不同的编程语言会定义变量不同的作用范围，在“作用域范围”内意味着，当程序暂停运行时，该变量已经在内存中建立，此时变量的值就是程序停止运行时该变量所对应的存储器单元中的当前值。

存储器窗口

包括AVR的在内任何单片机，如果没有存储器是无法工作的。程序存储在程序存储器中，而变量是放在SRAM (主要)中，I/O寄存器映射到I/O存储器空间地址，EEPROM有另外的存储器地址。存储器窗口可以显示所有AVR器件中不同的存储器类型。并且与查看和I/O窗口一样，当程序运行暂停后显示内容会自动更新。

程序工程

AVR 汇编编译器

目前的AVR汇编编译器比较简单，但是几个月后将不是这样，因为AVR Studio 将被设计成作为其它汇编编译器和C/C++编译器的前端窗口，请关注网站上的更新消息，但是目前你只能借助AVR汇编编译器来编程。对于比较小的程序，AVR Studio是一个不错的选择，它通过“器件”向导支持所有不同的AVR器件，它将帮助你知道哪些指令器件是不支持的，并且AVR Studio执行程序是相当快的，因为它是直接生成运行代码，不需要连接的过程。

您开始使用AVR Studio时，请先打开AVR Studio，再在工程对话框中选择AVR汇编编译器，并选择工程路径和名称，最后点击完成。当创建了工程文件后，在编辑窗口中会出现一个*.asm 文件，现在你可以开始写第一条指令了。查看在线帮助，AVR编译器有它自己的数据手册，在那可以查到所有指令和伪指令的解释。另外，在编辑窗口中还有上下文帮助，只要写一条指令并把光标放在指令上，再按F1，你就会看到有关这条指令的帮助信息。

如果你想开发某个特定器件，记住你必须先包含此器件的 *.def/ *.inc 文件，每个器件都有它自己的 *.inc 文件，这个文件中定义了所有的内部寄存器，位和许多其它方便你编程的信息。另外，*.inc 文件还为编译器设置了器件的标识，使编译器知道你在开发哪个器件。

器件的头文件放在你电脑的\Program Files\Atmel\AVRTools\AVRAssembler\Appnotes 目录中。例如，器件ATmega8的头文件名字是"m8def.inc"。因为可以在默认的路径里找到*.inc 文件，所以你不用为它专门设置路径。

按F7进行编译。编译的结果将显示在前面提到输出窗口的建立窗口中。

您只需要用很短的时间就可以启动工程。

调试外部代码工程

对于比较大的程序, 汇编语言不是最适合的，C/C++语言可能更好。有许多很好的适合AVR单片机的C编译器，包括IAR和Imagecraft编译器，这两个都是可以买到的，还有AVR GCC编译器，这可以从许多网站上下载，如：www.avrfreaks.com。

如果使用这些编译器，你将在这些软件自己的开发环境下编写程序，此时你在使用第三方的工具维护你的代码工程。在这种情况下，你只要简单设置编译器生成“调试”模式的代码，这就意味着，编译器将把相关高级代码的参照加入到汇编源程序中。因此你编译并连接后，会创建一个可以直接装载到AVR Studio 4的目标文件。

不同的编译器使用不同的目标文件格式，工业上支持许多格式。某些编译器的所有权属于生产厂商(如IAR的UBROF)，而另外一些是开放的(如AVR GCC编译器使用的ELF )。为了能理解你的编译器和连接器产生的代码，AVR Studio必须要使用一个目标文件剖析器。

目前AVR Studio 4可以支持并自动检测UBROF (IAR), Nordic (AVR 汇编编译器), COFF (Imagecraft, Codevision, ELAB , 等), 和Intel Hex目标文件，另外还将增加一个 ELF/DWARF目标文件剖析器。

为了AVR studio能够使用外部创建的目标文件，请使用文件下拉菜单中的打开目标文件选项。如果文件是由调试模式产生的，AVR Studio将进行一系列操作：打开文件，检测目标文件格式，查找源代码并在编译窗口中显示源代码。如果你有一个硬件仿真平台(或选择了内部仿真器)，你马上就可以开始：按F5启动调试模式。在代码窗口中你可以设置断点，也可以在查看窗口中放置变量，也可以通过I/O窗口对控制器进行操作。

所以，外部代码工程和 AVR Studio 4能够很方便的配合工作。

使用AVR工具

Atmel 公司设计了许多硬件工具，这些工具使你能更简单地开发产品。AVR Studio 4的当前版本支持以下工具：

  • ICE50. 这是一个新的高端在电路（In Circuit Emulator）仿真器。当你使用它时，你要把AVR控制器从你的目标板中取下，而替代该芯片的是连接在ICE上的探针或合适的适配器。 AVR Studio采用快速串行通信控制ICE50(将来也会使用USB)。当你在AVR Studio中选择了“运行”，AVR Studio就会把代码，以及相关的断点，跟踪点，处理器速度，程序名称的信息下载到ICE中，并命令ICE开始运行，直到遇到断点或是停止的条件发生。ICE 运行情况是与它仿真的芯片完全一致的。当遇到断点时，ICE50 会通知AVR Studio，然后AVR Studio也会询问所有有关芯片的信息，并将其显示在屏幕上，如：所有内部寄存器的值，堆栈指针，存储器内容等等。ICE50是基于FPGA的，并带有附加了可以仿真模拟AVR器件模拟功能的硬件电路。它还有跟踪功能，主要意思是说运行的每条指令包括语句都会存储在存储器中，并且当用户暂停时，所有指令都会以可读的形式显示在跟踪窗口中。在运行过程中这是个非常有效的查找错误的工具，在运行大型的高级语言编程时，这是一个不可缺少的工具，并且在目标硬件设计中这也是一个很好的工具。

  • JTAGICE. 这也是一个相当新的低价位的高性能在片（On Chip Debug）仿真器。大容量的ATmega器件(程序存储区 >= 16K字)都包含一个TJTAG/OCD高速通信端口。在这些器件中(目前有ATmega128, ATmega323, ATmega32, ATmega16)，JTAG硬件电路可以停止器件本身的运行，同时读出器件内部状态，以及存储器和寄存器的值。

  • STK500 / 501 是一个非常有用的开发评估板，它支持所有的AVR器件。板上提供了供测试使用的LED和按键开关，你可以编写你的倾动程序，并将其载入到实际的AVR中，真实的运行控制它们。STK500/501支持所有的编程下载模式。你还可以把它作为 ICE50 或JTAGICE 测试目标板。STK501是一个支持 TQFP 封装ATmega128的扩展板，并且配有 JTAGICE 的适配器接口。

  • AVRISP. 新的在线编程器。在你目标设计中，留出一个 ISP 端口，你就可以使用 AVR ISP 对器件进行编程/重新编程了，就是如此的简单。

AVR Studio 4, ICE50, JTAGICE, STK500/501 和AVRISP构成了一个完整对Atmel 公司的AVR器件编写程序，仿真，模拟，编程和测试的环境。

Send feedback to Atmel. All requests for AVR Studio and other tools are welcome!


Over视窗 Project Management

工程管理

说明

AVR studio是一个编写和调试AVR应用程序的集成开发环境(IDE)．作为一个代码生成环境，AVR studio 目前只支持内嵌的 AVR 汇编器．不过以后安装插件后也可能支持其它的工程．

AVR studio同样支持许多第三方编译器生成的目标格式的文件，你可以打开并调试这些文件，但你不能在 AVR Studio 环境中对代码进行编辑。所以你可以使用其他的编译器编译代码，然后再用AVR Studio进行调试(使用重载键)，这样你将会有一个强大的编程/调试环境．

AVR Studio作为IDE使用，可以给你带来2个主要的优势：

  1. 在同一个应用窗口中进行编译和调试，能更快发现错误．

  2. 断点可以保存和恢复，即使代码已经编译．

保存和打开工程

所有的工程都可以保存为指定的名字，并带有后缀名 APS。当用户想要重新打开某个工程, 你可以使用文件菜单中最近打开的文件列表，或工程菜单中的打开工程．

工程输出窗口

在建立,编译工程后，输出窗口将输出相应信息．如果发生任何错误，用户可以双击错误信息，在源程序窗口中将标记出错误的正确位置．

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Create new project

创建新汇编工程

说明

在菜单中选择 Project->new project , 会出现下面的对话框，启动对话框中也有这个选项。

工程类型，Atmel AVR 汇编编译器

在工程类型栏里可以看到所有的工程类型，选择“AVR Assembler”，其它的工程类型将会在AVR Studio以后的版本中应用，这些工程类型将作为主模块的一部分或者插入模块，你必须在“下一步”或“完成”之前选择好工程类型。

说明：也可以通过装载所支持的目标文件创建工程，这种工程必须通过 File->Open Files 来创建。

工程名称和初始文件名

输入工程名后，默认的将创建一个初始文件，文件名是：工程名 + ASM ，但也可以修改它。同时将创建一个与工程名一样的文件夹，但这不是默认选择。

下一步

如果已经设置好工程名和工程类型，按下了的一步是进入 选择平台和器件 进行仿真/模拟。你也可以立即结束，但在调试任务开始前必须选择调试平台和器件。

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！。


Assembly project

汇编选项

选择 Project->Assembler Options 打开选择窗口，只有打开的工程类型是汇编工时才可以使用这个菜单项目。

下图是打开汇编设置对话框的式样， 里面显示的内容是默认设置

各种设置的说明:

输出文件格式
下面的文件格式可选为附加的输出格式：
1. Intel Hex
2. Generic Hex
3. Motorola Hex (S-record)

创建Map文件
这个选项总是被选择，当创建(build)命令执行后，一个MAP文件将被创建并加到工程视窗中。

创建List文件
当创建命(build)命令执行后，后将创建一个LST文件，默认设置是关闭。

相对跳转环绕（Wrap relative jumps）
AVR的RJMP/RCALL指令的跳转范围是一个基于指令计数器PC的12位的相对偏移量，也就是+/-2k字。对于程序存储器容量等于或小于4K字（8K字节）的AVR器件，选择相对跳转环绕，将会使编译器在计算跳转偏移量时按程序存储器的大小产生环绕，这样就使的相对跳转指令能够在整个程序存储区范围内实现跳转寻址。

对于有大于4k字节的程序存储区的器件，选择相对跳转环绕选项会引起不可预知的结果，应将此功能关闭。
如果不关闭它的话，一旦出现了环绕现象，编译器将产生以下警告信息：

警告：rjmp/rcall的环绕功能对程序存储器>4K字的器件为非法 - 关闭环绕功能，使用jmp/call

warning: Wrap rjmp/rcall illegal for device > 4k words - Turn off wrap option and use jmp/call

在这里之所以给出警告而不作为错误处理，是为了与先前版本的编译器保持兼容。但是用户应该把它作为错误对待，此时应该使用2字指令JMP/CALL代替rjmp/rcall指令，因为JMP/CALL指令是绝对跳转指令，其绝对跳转地址长度为22位。

AVR 汇编编译器
选择编译器v2(默认) 或编译器v1。如果你在使用新编译器v2时遇到兼容问题, 可以使用旧编译器v1。当使用旧编译器v1时，附加参数（Additional parameters）和不支持指令（Unsupported Instructions）的两个选项无效。

不支持的指令
当编译器发现不支持的指令时，这个选项的默认值将给出错误提示，或者输出一个警告。注意：为了让此选项正常工作，你必须要包含正确的头文件。
此选项仅对于编译器v2有效。

附加包含路径
当使用编译器v2时，可以选择增加一个附加的包含（Include Path）路径。当使用编译器v1时，只有一个默认的包含路径，但该路径是可以改变的。

Assembler v2 默认的 Include 路径: \Atmel\AVR Tools\AvrAssembler2\Appnotes
Assembler v1 默认的 Include 路径: \Atmel\AVR Tools\AvrAssembler\Appnotes

附加参数
当您使用编译器v2时，可以为编译器设置附加参数 (选项)。使用标有(?)标记的按钮，可以直接连接到编译器帮助页面，在这个页面上描述了所有附加参数的作用。

按键说明

OK
关闭对话框，当前对话框中的设置将有效。当工程被关闭或人为保存时，对话框中的工程设置参数将保存到工程文件中 。

Cancel
关闭对话框，当前对话框中的设置不会生效。

默认设置（Set Default）
将当前的设置作为默认的设置，当再次创建一个新工程时，将使用该默认值。此功能将当前所有可见选项的设置（不包括高级选项）保存为默认值。

恢复默认设置（Restore default）
使用默认设置值代替当前的设置。注意对高级选项无效。

高级（Advanced）
打开一个带有设置 pre- 或 post- 编译命令的对话框，在这里可以添加可选的汇编命令行指令序列，这些命令将在汇编编译前 (pre) 或汇编编译后(post)将被依次执行。

Help
打开本帮助页面。

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Debug platform

调试平台选择

说明

你可以指定 AVR Studio 使用其内置的 AVR软件模拟器，或者使用一个AVR硬件电路仿真器(In-Circuit Emulator 或 In-Chip Emulator,需另外购买)作为调试平台。关于如何选择确定所使用的调试平台和器件请看器件选择。

与平台无关的独立调试环境
不管使用哪一个调试平台，都会出现一个同样的 AVR Studio 调试环境。当切换调试平台时，所有设置都将被保存，并被转换到新的平台中使用。某些平台有自己独特的功能，会出现新的功能项/窗口。

平台间的区别
尽管不同的调试平台都会出现相似的调试环境，但在这些平台间还是有一些小区别。例如：一个实时的硬件仿真器的调试运行会比软件模拟器明显的快。硬件仿真器需要系统连接到实际的硬件环境时才可以进行调试，而软件模拟器只需要使用预定义的激励（文件）。使用软件模拟器时，所有的寄存器都可以被查看，而对于硬件仿真器时是做不到的。在 AVR Studio 的用户向导中，描述了 AVR Studio 的通用特性，上述这些区别将会在调试平台各自的用户向导中给出完整的说明。

状态栏
在状态栏中总是会显示出当前进行调试所使用的平台，或是硬件电路仿真器，或是内置的AVR软件模拟器。在状态栏中会给出调试的实际器件名称和调试平台的名字。

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Device selection

器件选择

说明

通过选择 debug->Select debug platform and device 将进入选择调试平台和器件的窗口。所有可选择的在系统(on-system)调试平台和器件都会出现在列表中。当选定某个平台后，该平台所支持的器件将变成黑色，不被支持的器件变成灰色。选择结束后，按“finish”完成。

对于选择了类似 ICE50 和 JTAG ICE 等调试平台，你还需要说明通信连接的方式，在连接选项中，用户可以在罗列出的有效通信连接项中进行选择。默认的选择是“Auto”，即 AVR Studio 自动对当前有效的通信连接方式进行搜索，直到能够检测到已经连接的指定的调试平台。你也可以在 tools->options 菜单中，指定连接所使用的COM口号。

使用ICE50时的说明：

当 ICE50 对选定的器件仿真前，将 ICE50 配置成该器件的配置文件必须已经存放在 ICE50 的存储器中。在 ICE50 中可以最多存放4个不同器件的配置文件，因为由于很多新器件会不断推出，而 ICE50 需要能够支持更多器件。因此，不可能把所有的器件的配置同时存放在 ICE50 的存储器中的。在开始仿真调试前，AVR Studio 将会检测器件的配置文件是否已存放在 ICE50 中，如果没有，会出现一个对话框，要求用户在仿真前装载相应器件的配置文件。关于 ICE50 和器件配置文件的装载，是在 AVR Studio 的 Debug 菜单中 IEC50 options 对话框中完成的。

请参看

调试平台选择
支持的工具和器件

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Object files format and support

目标文件格式和支持

说明

在进行所有的调试任务中，你都要装载一个 AVR Studio 所支持的调试目标文件。通常，调试目标文件中都包含调试使用的符号信息，实际运行的目标文件中不包含这些信息，会比调试目标文件小。这些调试信息能够使 AVR Studio 在调试过程中实现一些扩展的功能，如：源文件的单步执行和源文件语句的显示。

下面是 AVR studio 所支持的目标文件格式的简要说明。

目标文件格式 | 文件名 | 说明
扩展Intel hex | .hex | 大部分开发平台都能产生此格式的文件，其目的是用于真实的运行测试。它不包含附加的调试信息，所以它不是理想的用于调试的文件格式。该文件中只有程序存储区数据和定位，因此源文件单步执行和源文件语句的显示查看功能无效。
UBROF | .d90 | 此格式所有权属于IAR。调试输出文件包含完整的调试信息并支持所有类型符号的查看。AVR Studio 支持UBROF中UBROF8或更低版的文件格式。UBROF8是IAR EW 2.29及更早版本的默认输出格式。在下面介绍了如何使IAR EW3.10及后续版本强制输出UBROF8格式的文件。
ELF/DWARF | .elf | ELF/DWARF调试信息是一个开放的标准，这个调试文件格式中包含完整的调试信息并支持所有类型符号的查看。AVR Studio 支持的版本格式是其中的DWARF2。使用AVR-GCC时，可以配置它输出DWARF2格式的调试文件。
AVR COFF | .cof | COFF调试信息是一个开放的标准，它是作为给生产支持 AVR Studio 工具的第三方厂商的标准格式。在AVR Studio 4.09中，AVR COFF格式的调试文件支持完整的调试信息，和支持所有类型的符号查看。
AVR 汇编格式 | .obj | 此格式是AVR编译器的输出文件格式，它包含汇编源文件的信息用于汇编源文件的单步调试，是Atmel公司内部的调试文件格式。.map类型的文件是该格式文件的辅助文件，用于在调试中自动分析和获取一些查看信息。

在调试前，你要确保已经设置好C编译器/汇编编译器，使其能够生成上述格式中的某一种调试文件用于仿真调试。

第三方厂商的编译器应该输出ELF/DWARF格式的调试目标文件。请点击这里联系我们以获得更多信息。

如何使IAR EW 3.10及后续版本产生UBROF8文件格式。

IAR EW 3.10及后续版本默认的输出格式为UBROF9。目前 AVR Studio 还不能识别这种格式。为了把输出文件调试格式强制转换成 AVR Studio 可以识别的 UBROF8，请在 IAR EW 中打开工程选项对话框，并选择XLINK标签，这时将显示下面的对话框。然后把'output format'设置成 'ubrof 8 (forced)'。注意此时默认文件扩展名将由'.d90' 变为'.dbg'。为了保持 '.d90'扩展名不变，请选中 'Override default' 复选框。

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Debug control

调试控制栏

说明

调试控制栏
调试控制栏可以控制程序的执行状态，所有的调试控制都可以由菜单，快捷键和调试工具栏实现。

注意！如果在目标文件中含有有效的源码级信息，所有的调试操作将一直继续执行，直到到达第一条用户源代码语句.如果没有遇到用户源代码语句，程序将继续执行。如果要停止程序的运行，必须在发出停止命令前转换到反汇编模式。

开始调试（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）
将含有黄色标记指定的语句所在的窗口作为当前有效窗口，窗口显示内容以该语句为焦点。

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Breakpoint Control

断点控制

说明

用户可以设置断点，断点的数量没有限制，断点可以在任务间保存。

当用户在程序的某处设置一个断点后，在源程序代码窗口的左面会有一个断点标记。将鼠标定位在设置断点的语句处，然后按鼠标右键，用户可以通过相应的选择项来设置/取消一个断点，也可以设置该断点的状态为有效或无效。

可以通过工具栏，或通过输出视窗中的断点列表对断点进行设置。

设置/取消断点 (F9)
设置/取消断点命令可以在光标所在处设置/取消一个断点（乒乓按钮）。注意，该按钮的功能只有当源程序代码窗口或反汇编代码窗口被激活时才有效。

使能/不使能断点
用户设置的一个断点可以处于使能或未使能（禁止）状态。一旦设置的断点处于未使能状态，断点标志转换为一个白色的圆环标志。用户可以方便的控制断点，使其处于使能或未使能的状态，而不会丢失断点设置的位置。

清除所有断点
此功能可以清除所有断点，包括没有被使能的断点。

在输出视窗的断点列表中设置断点起作用的条件和状态
在输出窗口中，点击 Breakpoints 栏会显示一个列表（上图），这个列表包含所有用户设置的断点。点击断点列表中每个断点左边的单选框，可以设置该断点处于使能或未使能状态。选择某一断点，按鼠标右键，可以对该断点起作用的条件和状态进行设置（下图）。

Iterations（重复次数）
这个选项用于设置断点的重复执行的间隔次数。它表示在程序在执行过程中，只有当经过该断点的次数超过设定重复数后，再一次经过断点时才停止运行。注意，如果使用了这个功能，仿真过程不能实时的运行，因为一旦经过断点，程序会有一个临时暂段的停顿，然后自动继续运行，一直到经过断点的次数超过设定的重复次数。AVR Studio的视窗信息在在临时暂段停顿时不会更新。

Watch point（更新观察点）
选择这个选项后，程序一旦经过断点时，将临时挂起并且更新所有视窗中的信息，当视窗信息更新后，程序自动开始继续运行。这个条件设置可以和上面的 Iterations (重复次数) 设定结合在一起使用。

Show Message（显示信息）
选择此框表示，当断点设置的条件满足时，在输出视窗中给出一个提示信息。一旦使用了上述2种断点条件设置后，选择该选项可在调试运行过程中及时提供断点的状态信息。

Reloading（断点重载）
注意，当重载一个已经修改过的工程文件时，断点设置的自动恢复和重载可能会出现问题。有关设置代码断点的选项请点击下面的链接。

See also

选项，代码断点设置

送 feedback 到Atmel公司，欢迎所有的对AVR Studioand其它工具的要求！


Trace

跟踪

说明

跟踪是一个调试工具，你可以使用它检查程序的运行情况。例如，你可以通过断点的设置并配合使用跟踪功能，决定和调试程序执行的流程。

只有ICE50平台才支持跟踪功能。相关内容的更多信息请参考 ICE50 的帮助文件。

请参看跟踪窗口.

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Options

选项

说明

选项对话框分为4个窗口，并且在此对话框左面空白处可以选择每个窗口。在这里介绍的所有的选项是与工程相独立的，并且会保存到注册表中。

通用设置 - 通用GUI和调试设置

断点 - 代码断点设置

工作区 - 工作区设置

编辑器 - 编辑器，字体和Tab键尺寸的设置

通用设置

隐藏启动向导（Hide Startup wizard）
这个选项可以使启动向导在启动时隐藏，默认设置是关闭（不隐藏）。

自动打开最近工程（Auto open last project）
当 AVR Studio 启动时，总是自动打开最后使用并保存的工程。默认设置是关闭（不自动打开）。

显示当前源代码（Show current source code）
当单步执行程序时，当前代码将变成高亮。默认设置是关闭（不为高亮度显示）.只能使用一个黄色标记指向当前代码行。如果你使用了这个选项，你有可能会看到异常的显示情况，如：在源代码中出现表格状。

启动时复位桌面（Reset desktop on restart）
选择这个选项后，当 AVR Studio 启动时，工具栏、菜单、快捷键和拼接窗口的位置将复位到默认设置，任何用户化的设置都将无效。在AVR Studio 重新打开后，这个选项将自动关闭。

自动运行时跳过（Step over when Auto stepping）
默认时，自动运行的方式采用单步 "trace into/single step" 方式自动连续执行。如果选择了此选项，自动运行方式采用跳过 "step over" 方式自动连续运行。

自动连接，或指定COM口（Auto connect, Number of COM ports to try）
当自动连接到调试平台时，你可以指定一个与调试平台连接的COM 端口号。默认是6号端口。

编辑窗口，文件栏（Editor window, file tabs）

编辑窗口标签能够被配置成只显示文件名 (默认)，或本工程内全部路径，或本工程文件路径以外的全部路径.

断点

当装载了一个经过修改后目标文件，原先所保存的断点的设置将会无效。你可以设置 AVR Studio 按下面的方式处理断点:

取消所有断点（Remove all breakpoints）
如果目标文件改变，所有断点将取消.

在相同的行号处设置断点（Restore on same line number）
将原先为断点的行号处的语句（新语句可能与原断点语句不同，但行号相同）重新设置为断点。

在新位置设置断点（Try to locate new position）
在每次任务结束后，AVR Studio 都会保存所有断点的行号、地址和当前文本。设置这个选项后，AVR Studio 将在当前文本文件中，以原先的行号为基础，在前后指定的行数内（100行）进行文本比较，一旦文本匹配则设置为断点。同时你也可以设置要搜索的行数范围。

重装后不使能断点（Disable breakpoints after reload）
在重装工程后，这个选项会使所有断点处与无效（未使能）状态。

重装时显示警告（Show warning when reload）
当装载了一个经过修改后的目标文件（设置过断点）的目标文件时，这个选项将给出警告。

工作区

打开反汇编窗口（When toggling disassembly window）
打开反汇编窗口时，你可以选择该窗口在 AVR Studio中 正常显示（关闭原代码窗口）、或与原代码窗口同时 水平排列、垂直排列显示。

打开文件（When opening files）
在编辑窗口中打开文件时，你可以选择编辑窗口在 AVR Studio中 恢复最后一次的大小、最大化、系统默认大小，多个文件水平排列或垂直排列显示。

使用XP类型的工具栏和菜单（Use XP style toolbar and menus）
当选择这个选项,工具栏会变成:

不选时:

启动时桌面恢复位置和大小（Restore desktop position and size when restarting）
当设置了这个选项，启动AVR Studio 时，整个窗口的大小为上次关闭时的状态，如最小化或其它的不同的大小。默认时，启动 AVR Studio ，其整个窗口为最大化。

编辑器

字体大小（Font size）
默认字体大小.

Tab宽度（Tab width）
在编辑窗口中，默认Tab键的宽度。（既一个Tab键相当多少个空格位置的宽度）。

恢复默认状态（Restore default）
恢复系统默认的字体大小设置和Tab键的宽度。

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！


Workspace

工作区

功能 | 工具栏 | 菜单 | 快捷键
打开工具栏窗口 |  | View->workspace |
显示工程窗口 |  |  |
显示IO窗口 |  |  |
显示中断窗口 |  |  |

工作区窗口分为三个窗口：

  • 工程窗口
  • IO窗口
  • 中断窗口


Project window

工程窗口

功能 | 工具栏 | 菜单 | 快捷键
打开工作区窗口 (选择工程标签) |  | View [image] workspace | NA

工程窗口是工作区窗口的一部分，在这里可以管理文件和函数，它的功能由你创建的工程类型决定。

管理工程

如果你当前的工程是汇编工程，在工程窗口中你可以插入文件，创建新文件，打开包含头文件，和设置启始入口文件。你可以点击鼠标右键、菜单选择、或使用快捷键选择相应的命令。

启始入口文件是多文件工程中的主文件，每个工程中只有一个启始入口文件。

点击文件，可以看到有关所有文件的路径的提示信息

下面的菜单命令可以用来管理工程：

正确选择菜单, 命令 | 快捷键 | 说明
设置成启始入口文件 | SPACE | 把已选文件设置成启始入口文件
打开文件 | ENTER | 打开已选文件
移走文件 | DEL | 从工程中移走选定的文件
创建新文件 | Shift-INS | 创建新文件并添加到工程中
添加已有文件 | INS | 将已有文件添加到工程中

拼接（Docking）

这是一个拼接形式的窗口。你可以通过点击右键，在弹出的菜单命令中通过“Docking view”命令来打开或关闭窗口的拼接功能。


IO window

I/O 窗口

功能 | 工具栏 | 菜单 | 快捷键
打开工作区 (选择I/O标签) |  | View [image] workspace | NA

说明

I/O窗口在工作区中，它用于显示 I/O寄存器、处理器和寄存器的信息。

当 studio 打开一个已保存的工程时，状态树被重新装载，原来打开的分支还是打开的。

窗口中会显示 I/O 寄存器的名称，数值，位，和地址，共4部分的信息。

每个部分的宽度可以通过前后拉动顶部的分界线来改变，并且此设置将被工程保存。

可以在信息提示窗中获得有关I/O寄存器和位的具体说明。信息提示窗是浮动的，只要点击I/O的名称就会跳出有关它的信息。信息窗口可以由右侧菜单激活。

寄存器

在此窗口中，可以查看寄存器 R0-R15 和 R16-R31 的内容。在调试过程中，最后更新的寄存器的值将变成红色。双击寄存器的值可以对进行编辑，当然也可以使用另外一个窗口。

处理器

这个窗口中显示下面的信息：

  • 程序指针 (PC)
    程序运行指针。在源代码窗口中用黄色标记它所在的位置。

  • 指令周期个数计数器（Cycle counter）
    指令周期计数器记录从复位开始到当前执行的指令周期个数，某些调试平台可以通过复位此计数器复位整个程序。

  • 堆栈指针（Stack pointer）
    堆栈指针指向 堆栈顶部在 SRAM/Data 中的位置。它是16位的值，是由 I/O 寄存器 SPH 和 SPL 的值组成。

  • X寄存器（X Register）
    由 R26 和 R27组成的16位数据组成。

  • Y寄存器 (Y Register)
    由 R28和 R29组成的16位数据组成。

  • Z寄存器 (Z Register)
    由 R30和 R31组成的16位数据组成。

  • 频率（Frequency）
    调试平台的运行频率（单位：megahertz）。通常由用户选择。

  • 运行时间计时器（Stopwatch）
    运行时间计时器记录程序指令运行使用的时间，它与指令周期个数和运行频率有关。右键点击可以复位该计数器，并且可以毫秒或微秒单位间切换。

I/O寄存器

这里显示当前器件的I/O寄存器，可以以十六进制或十进制的形式，显示一个位或整个字节的值。在最近调试命令中更新的寄存器值将变成红色。双击寄存器，可以对其值进行编辑。

拼接窗口（Docking）

这是一个拼接形式的窗口。你可以通过点击右键，在弹出的菜单命令中通过“Docking view”命令来打开或关闭窗口的拼接功能。

右键菜单命令 | 快捷键 | 说明
Show as decimal |  | 在十六进制/十进制显示方式中转换
Set all to hexadecimal |  | 所有值设置成十六进制显示
Set all to decimal |  | 所有值设置成十进制显示
Show tool tip |  | 激活所有项的工具提示
Information view |  | 打开/关闭信息窗口
Show Bit number |  | 在比特栏中显示比特数
Bit as Circles |  | 切换比特位以方型或园型图标表示
Collapse |  | 关闭所有展开的分枝
Expand |  | 展开所有的分枝
Font |  | 为I/O-窗口选择字体
Default Font |  | 返回默认字体(可能要重新打开studio )
Hide non-expanded |  | 取消(隐藏)所有没有展开的项
Show all items |  | 恢复所有隐藏项

提示： 只要将鼠标指向当前寄存器，就可以在信息窗口中到有关 I/O 寄存器的详细信息。

提示： 展开要使用的 I/O 节点，并且使用命令 “Hide non-expanded”，隐藏其它所有未展开的节点，这样可以节省显示空间。


Files window

信息视窗

功能 | 工具栏 | 菜单 | 快捷键
打开工作区窗口 ( 选择Info标签) |  | View [image] workspace | NA

说明

信息视窗是工作区窗口的一部分，这个视窗中统计和显示了已选器件的所有中断向量，引脚配置，和端口地址。

通过点击鼠标右键，使用右键菜单中的打开消息窗口，你可以得到有关中断，引脚和端口地址的更多信息，只要将鼠标点到实际的文本就可以看到相应的消息。


Output window

输出窗口

功能 | 工具栏 | 菜单 | 快捷键
打开输出窗口 |  | View [image] Output |

说明

输出窗口有3个不同的部分：

建立（Build）
在编译或者建立工程过程中，在这个窗口中给出输出信息和警告信息。双击某个错误或警告信息，在源代码窗口中将使用一个蓝色标志，定位在出现该错误或警告在源代码的位置上。同样可以使用F4键，使错误标志定位指向下一个错误处。

信息（Messages）
错误，警告，信息和调试信息将出现在这个视窗，在鼠标右键菜单中，可以触发显示信息的过滤功能，默认为显示错误和警告。调试过滤（debug filter）功能一般不要使用，它只是用于支持特殊调试任务和特殊情形下使用。用户也可以打开/关闭时间标志的显示。

在文件中查找（Find in Files）
当使用在文件中查找字串 "find in files" 功能时，查找的结果在此窗口中显示。双击显示结果中的某一行，将会打开相关文件，并使用一个蓝色标记定位在匹配的字串处。

断点（Breakpoints）
此窗口包含所有用户设置的断点列表。在这个列表中，可以将断点设置成无效或移除，并且可以看到许多断点的性质。

这是一个拼接形式的窗口。你可以通过点击右键，在弹出的菜单命令中通过“Docking view”命令来打开或关闭窗口的拼接功能。

鼠标右键菜单命令 | 快捷键 | 说明
Clear |  | 清除视窗中所有信息
Copy |  | 复制视窗中所有信息到剪贴板
(Project [image] Next error) | F4 | 显示下一个错误/警告
Filter Error/Warning/Info/Debug |  | 打开/关闭各类信息显示的过滤功能
Time stamp |  | 打开/关闭时间标志
Docking view |  | 打开/关闭窗口的拼接功能

图，输出窗口


Editor window

编辑窗口

功能 | 工具栏 | 菜单 | 快捷键
创建一个空文本文件 |  | File->New File | CTRL+N
打开一个已有文本文件 |  | File->Open File | CTRL+O
保存当前文本文件 |  | File->Save (Save as, Save all) | CTRL+S
从文本文件中剪切 |  | Edit->Cut | CTRL+X
从文本文件中复制 |  | Edit->Copy | CTRL+C
粘贴到文本文件中 |  | Edit->Paste | CTRL+V
打印文本文件 |  | File->Print (Print preview,setup) | CTRL+P
打开书签 |  |  | CTRL+F2
下一个书签 |  |  | F2
上一个书签 |  |  |
清除书签 |  |  |
增加缩进 |  |  |
减少缩进 |  |  |
取消选项 |  | Edit->Undo | CTRL+Z
重新执行选项 |  | Edit->Redo |
选择编辑的字体和颜色 |  |  |

说明

编辑窗口是主窗口，它的功能与目前的两种模式相关：调试模式或编辑模式。

在编辑模式下，你可以编写和编辑任何一个工程的程序代码文件。了解不同命令的汇总情况，请查看下表中的快捷键 .

编辑器支持彩色语句代码。编程语言决定了相关的关键字，以及颜色，并与源文件的扩展名相对应。

鼠标右键提供了许多用户可以方便使用的选项，如：打开书签、执行调试命令、设置和控制断点和跟踪点等。

编辑模式下

取消选项
重新执行
剪切
复制
粘贴
全选
插入断点
打开/关闭书签

如果工程是 AVR 汇编类型的工程

重建（重新编译）工程

当鼠标处在设置为断点的行上

取消断点
不使能断点

当鼠标处在以 .include 启始的行上

打开 include 所指定的文件

如果在调试模式下

运行到光标处
显示下一条语句
设置下一条语句

如果鼠标指在文本中的一个词

把词添加到查看窗中

说明 | 快捷键
移动光标 |
下移一行 | down arrow
向下滚动 | CTRL +arrow down
上移一行 | up arrow
向上滚动 | CTRL + up arrow
右移 | right arrow
左移 | left arrow
移动到行末 | end
下一页 | Page Down
上一页 | Page Up
到文件末 | CTRL + end
到文件头 | CTRL + home
跳格 | Tab
跳格返回 | SHIFT + Tab
书签 |
下一个书签 | F2
打开/关闭书签 | CTRL+F2
上一个书签 | SHIFT+F2
取消所有书签 | CTRL+SHIFT+F2
断点 |
设置/取消断点 | F9
下一个断点 | CTRL+F9
断点设置 |
查找 | alt+F9
查找 | CTRL+F
查找下一个 | F3
查找下一个字 | CTRL+F3
查找 上一个 | SHIFT+F3
查找上一个字 | CTRL+SHIFT+F3
激活下一个已打开的文件 | CTRL+F6
其它 |
查看空白地方 | CTRL+SHIFT+8
全选 | CTRL+A
复制 | CTRL+C
行剪切 | CTRL+L
行删除 | CTRL+SHIFT+L
行剪切和插入 | CTRL+L CTRL+V
选择小写字母 | CTRL+U
选择大写字母 | CTRL+SHIFT+U
编辑粘贴 | CTRL+V
回退删除 | Backspace
删除前面的整个字 | SHIFT+backspace
取消操作 | CTRL + Z
取消操作 | ALT + backspace
重新执行 | ALT + SHIFT + backspace
删除光标处字符 | Delete
删除后面的整个字 | CTRL + Delete
剪切 | SHIFT + Delete
取消选择 | ESC
扩展选择 | SHIFT + movement command
选择字 | SHIFT + w


Memory window

存储器窗口

功能 | 工具栏 | 菜单 | 快捷键
打开存储器窗口 |  | Views->Memory View | Alt-4
增加新的存储区窗口 |  | Views->Add Memory View | NA

说明

在存储器窗口中，用户可以查看并编辑所有类型的存储器。存储器类型包括 程序FLASH、SRAM、EEPROM、外部扩展SRAM 和 I/O 存储器。

存储器窗口中的，由最近的调试命令(如：单步调试)改变的储存器所在的位置都将变成红色。

存储器类型（Memory type）
在左上方的下拉列表中，可以选择存储器窗口的类型。

8/16 位查看（8/16 bit View）
按 "8/16" 键，将数据组合成16-位显示。

ASCII码窗口（ASCII View）
按 "abc" 键，打开窗口右侧的 ASCII 码显示。

地址栏（Address）
地址栏显示存储器窗口中第一个数据的地址。在地址栏处输入新数值，立刻就可以跳到该地址处。

列选择（Columns）
你可以选择在存储器窗口中显示的数据列数，从2列到32列。采用自动选择方式，显示的内容按适合窗口大小排列。

鼠标右键菜单（Right mouse click Menu）
如果在存储器窗口中点击右键，将显示此菜单，这里你可以控制存储器窗口的行为。

Locate address (只指I/O-memory) | 标记I/O窗口的已选地址(如果 I/O窗口打开)
Hexadecimal | 以十六进制显示数据
Decimal | 以十进制显示数据
1 Byte | 以 8-位字节显示数据
2 Byte | 以 16-位字显示数据
Byte address | 在字节地址/字地址之间转换
Font | 选择使用字体
Default Font | 设置默认字体
Docking View | 选择窗口是否使用拼接功能
Show Tooltip | 使能/不使能显示工具提示
Help on memoryview | 打开此帮助页面

编辑（Editing）
点击存储器窗口中的某位置，可以输入新数值。也可以改变右侧ASCII玛值。如果你双击该数值，会出现一个对话框，可以在这里输入十六进制，十进制，八进制或二进制的数。

浏览（Navigating）
您可以使用箭头，滚动条或 PageUp/PageDown、Home/End 键，使存储器窗口向上/向下移动。在地址栏中输入一指定地址，就会跳到该地址处，地址值通常指十六进制数。

拼接（Docking）
这是一个拼接窗口，你可以通过点击右键，在弹出的菜单命令中通过 "" 命令打开或关闭窗口的拼接功能。

提示：你可以同时打开三个存储器窗口，它们位于View Menu中。


Register window

寄存器窗口

功能 | 工具栏 | 菜单 | 快捷键
打开/关闭寄存器视窗 |  | View->Register | Alt-0

说明

在寄存器窗口中可以查看和修改所有的 R0-R31 寄存器，最后一次执行调试命令改变寄存器的值，变成红色(如：单步执行)。

编辑（Edit Value）

简单点击欲编辑的数值处，可以键入修改值。可以使用光标键进行浏览。

或者双击寄存器的值，会出现一个编辑框，用于输入新的数据。

编辑标记（Edit label）

双击任何寄存器/标记，你可以为寄存器定义自己习惯使用的名称。

十六进制/十进制显示转换（Hexadecimal/decimal switch）

通过点击右键菜单，寄存器的的值的显示可以在十六进制和十进制间转换。

拼接（Docking）

这是一个拼接形式的窗口。你可以通过点击右键，在弹出的菜单命令中通过“Docking view”命令来打开或关闭窗口的拼接功能。


Watch window

查看窗口

功能 | 工具栏 | 菜单 | 快捷键
打开/关闭 查看窗口 |  | View->watch | Alt-1
快速查看 |  |  |

说明

在查看窗口中，你可以在调试过程中查看和编辑所有的已定义的符号，其功能主要取决于你装载的目标文件的类型。在此窗口中有四个不同的表(窗口#1-#4)，它们都可用于显示和编辑不同的变量和设置。当工程关闭后，所有设置和内容将自动保存。当工程重装时会恢复最近状态。

同时查看许多项会减慢调试的速度，尤其是在使用串行通信的ICE时。由于只有可见的项才被更新，所以最好在调试选项中，仅选择查看当前所真正使用的变量。

在每个显示项中，将显示变量的名称、数值、类型和所在位置（内存或寄存器）。当查看结构体和数组时，可以通过点击“+”号来扩展查看。

编辑（Edit）
在空行处双击并输入变量名，或者也可以从源代码/编辑窗口中把变量拖拉进窗口中。要删除任何变量，可以选择右键中的“清除变量”或按 DEL 键。按INS 键可插入一个新的观察项。用空格键选择（名称或数值）要编辑的项。

在编辑数值时，带前缀 0x 或 0X 表示一个十六进制数，带O前缀的表示是八进制数。

快速查看（Quick watch）
在编辑窗口中，把你想查看的变量设置成高亮，并选择 快速查看 ，你可以把它添加到查看窗口中，观察其变量和它的内容。

拼接（Docking）
这是一个拼接形式的窗口。你可以通过点击右键，在弹出的菜单命令中通过“Docking view”命令来打开或关闭窗口的拼接功能。

标题栏控制（Header control）
双击标题栏可以自动调整它的大小。

请参看：

目标文件的格式和支持


Trace window

跟踪窗口

IC40/ICE50 现在支持跟踪功能， 跟踪命令在调试时有它自己的工具栏和菜单。

在源代码中选择跟踪类型和设置跟踪点可以使跟踪功能有效。对跟踪功能的支持情况，请查看每个平台的相关说明。

功能 | 工具栏 | 菜单 | 快捷键
打开跟踪窗口 |  | Debug->Trace->TraceView |
选择跟踪类型 |  | Debug->Trace->Type |
在源代码中设置/取消跟踪点 |  | Debug->Trace->Toggle TracePoint | F8
取消所有跟踪点 |  | Debug->Trace->Remove All Tracepoint |
复位跟踪缓冲区 |  | Debug->Trace->Reset Tracebuffer |
跟踪选项 |  | Debug->Trace->Options |
显示下一个语句 |  | RightClick in TraceView->Next Statement | Alt+F12 (See Note)
显示上一个语句 |  | RightClick in TraceView->Previous Statement | Ctrl+F12 (See Note)
保存跟踪缓冲区内容到文本文件 |  | RightClick in TraceView->Save To Textfile |
显示源代码 |  | RightClick in TraceView->Show Sourcecode |
只显示高级代码 |  | RightClick in TraceView->Hioghlevel Only |
打开/关闭代码的彩色显示方式 |  | RightClick in TraceView->Colorcoding |
打开/关闭工具提示 |  | RightClick in TraceView->Show Tooltip |
设置跟踪标识 |  | Debug->Trace->Set Current Id |
增加跟踪标识 |  | RightClick in Editor->Trace->Increase Trace Id | Alt+F8
定义要过滤的跟踪数据 |  | Debug->Trace->Filter |
减少跟踪标识 |  | RightClick in Editor->Trace->DecreaseTrace Id | Ctrl+F8

说明:
如果某些键的定义不能正常工作，请尝试通过选择 Tools->Customize，Keyboard tab and Reset All 来重新设置键的定义。

浏览（Navigating）
通过箭头，滚动条或 PageUp/PageDown, Home/End 键，可以浏览跟踪缓冲区中的内容。
拉动滚动条时跟踪窗口不会被刷新，直到你放开鼠标键。
跟踪缓冲区的大小和当前位置将显示在屏幕底部的信息栏内。

拼接（Docking）
这是一个拼接形式的窗口。你可以通过点击右键，在弹出的菜单命令中通过“Docking view”命令来打开或关闭窗口的拼接功能。

鼠标右键菜单（Right mouse click menu)

菜单项目 | 功能
Show Source | 打开/关闭源代码
Color Coding | 触发跟踪ids的彩色代码
Source Only | 只显示高级语句
Link to Source | 打开/关闭绿色箭头标记
Goto Source | 在源代码中显示当前跟踪语句（当前声名: 你右键的位置)
Next Statement | 在源代码中显示下一个跟踪记录
Previous Statement | 在源代码中显示先前的语句
Define Filter | 显示滤波器对话框
Filtering | 使能或不使能滤波器
Save to textfile | 保存跟踪缓冲区内容到文本文件
Save to binary file | 以二进制格式保存跟踪缓冲区内容
Show Tooltip | 打开/关闭工具提示打开/关闭
Docking View | 触发拼接状态窗口. 这个窗口只能人为移动
Reset Trace | 清空跟踪缓冲并复位跟踪窗口

过滤（Filtering）
当您定义了一个过滤器，在标题的左侧位置的跟踪窗口左上角将显示一个"F"。按这个"F"可以 打开/关闭过滤功能。通过过滤器对话框可以完全取消过滤器 。

标题（Header）
通过拖拉分配器改变纵栏的宽度，双击分配器可以自动调整宽度。
通过拖拉标签左/右，改变纵栏的顺序。
通过右键选择显示的纵栏和打开/关闭纵栏。

选项（Options）

跟踪缓冲区慢时停止（Break on Tracebuffer full）
当此功能允许时，程序将在平台的跟踪缓冲区装满时停止。

中断色彩（Interrupt coloring）
该按键用于选择中断的色彩。
使能/不使能 中断色彩显示。

Id色彩
前10个 Id 的颜色是可以预定义的，并且可以通过点击 Id-number 和选择颜色对话框来改变定义。
复位键：复位颜色到默认值。
使能/不使能跟踪缓冲区满时程序停止的功能。

使用彩色Id 说明（Note on use of id colors）
如果某个颜色的的红、绿和蓝的值都低于130(指RGB的值)，文本会被设置成白色以获得更好的视觉效果。


Disassembly window

反汇编窗口

功能 | 工具栏 | 菜单 | 快捷键
打开/关闭反汇编窗口 |  |  |

说明

反汇编窗口中将显示你程序的反汇编代码。在这个窗口中可以显示程序的运行和 AVR 指令。当使用高级语言时，源代码窗口将自动打开，并且反汇编窗口将关闭。当不使用高级语言(如：使用.hex文件)时，反汇编窗口在启动时就会打开。

在这个窗口中可以控制程序的执行。

反汇编窗口中截取的反汇编示例：

@000000B9: main
---- c:\user\test programs\core io test.c (alternate location) ------------------------------------
16: MCUCR = 0; //disable XRAM in order to use PORTA and PORTC as ordinary IO ports
+000000B9: 2700 CLR R16 Exclusive OR
+000000BA: BF05 OUT 0x35,R16 Out to I/O location
17: MCUCSR = 0x80;
+000000BB: E800 LDI R16,0x80 Load immediate
+000000BC: BF04 OUT 0x34,R16 Out to I/O location

由符号“+”开始的所有行都是反汇编代码。第一部分是实际程序地址，下一部分是2字节的指令，然后是指令的文本说明。

由符号”@“ 和地址开始的行，给出了高级语言的标识，在本例中c 中的主函数标识。

输出设置（Configuring output）
此窗口可以打开/关闭下面部分：程序代码，指令帮助，原文件，原文件头和标号。

从目标文件剖析器或调试平台读取存储器内容（Read memory from object file parser or debug platform）
可以通过右键菜单打开此窗口，来读取调试平台或目标文件剖析器的存储器内容，这通常比，例如使用 ICE，读取目标文件剖析器快。如果你要应用引导区加载编程并使用spm指令，请选择使用读取调试平台的数据更新显示。

注意：在运行模式时，若使用滚动条或resizing，反汇编窗口将暂时关闭。只有当此窗口设置成由目标调试平台的数据更新时才会发生这种情况。你可以使用此选项，从剖析器中获得显示数据。


Startup wizard

启动向导

说明

在你每次打开 AVR Studio 4 时都会出现启动向导对话框。在此对话框中你可以很快的打开最近使用过的工程，改变调试平台/器件的设置，或者创建一个新工程。只要双击要打开的工程，它就会自动打开并装载上次的设置。

下面将详细描述其它功能。

打开时显示此对话框（Show this dialog on open）

如果你不想在启动时显示这个对话框，就不要选择这个复选框。

创建新工程（Create new project）

如果你想创建一个新的工程请使用此功能，详细情况请看这里。

打开（Open）

如果你想装载已存在的工程或单个调试目标文件请按这个键。

下一步（Next Step）

当工程已经选择后，这个按键将突出，按“下一步”来 选择平台和器件，可以改变已选工程的调试平台或器件。

装载（Load）

装载已选工程。


Menus

菜单

文件（File）

New File | 打开一个空文本文件
Open File | 打开一个文本编辑器中的文件
Close | 关闭当前文本文件
Open Object File | 打开一个新目标文件进行调试，关闭当前已经打开的工程
Open Project | 打开已存在工程
New Project | 打开新工程建立向导
Save Project | 保存当前工程
Close Project | 关闭当前工程
Save | 保存当前文本文件
Save As... | 用选择的名字保存当前文本文件
Save All | 保存所有文件和工程
Print | 打印当前文本文件
Print Prewatch | 预览当前文本文件
Print Setup | 设置打印机
Recent Projects | 显示最近打开过的工程列表，选择打开其中一个
Exit | 退出AVRStudio，退出时保存工程

工程（Project）

Build | 建立（编译）工程。目前只能建立（编译）汇编工程
Build and run | 建立（编译）工程，如果没有错误，开始调试过程
Options | 打开AVR Studio选项对话框.
AvrAssembler Setup | 设置AVR汇编编译器

编辑（Edit）

Undo |
Cut |
Copy |
Paste |
Breakpoints | 打开断点对话框
Next Breakpoint | 跳到下一个断点
Next Error | 跳到下一个错误
Toggle Breakpoints | 删除断点

View

Toolbars | 开/关下级菜单的工具栏，打开用户化-对话框
Status Bar | 开/关状态栏(状态栏在屏幕的最下面）
Workspace | 开/关工作区
output | 开/关输出栏
Docking | 如果不选择此项， 新视窗不会相互拼接，而是漂浮在屏幕上
Watch |
Memory View |
I/O View |
Register |
Terminal | 在这个版本中不能使用终端窗口
Trace | 增加存储器观察窗口
Add I/O watch |
Add Terminalwatch |
Remove watchs |
Save Desktop | 选择保存的数目
Load Desktop | 选择装载的数目
Clear Desktops | 清除所有保存在桌面上的文件

工具（Tools）

Customize
AVRProg
ICE50 Upgrade
user tools

调试（Debug）

Go
Break
Reset
Exit Debugging
Step Into
Step Over
Step Out
Run to Cursor
Auto Step
Select Part/Target
Target Options

窗口（Window）

Split
Cascade
Tile Horizontally
Tile Vertically
Arrange Icons
Close All
Window

帮助（Help）

Help
Using AVR Studio
About AVR Studio


toolbandshorts

工具栏

总览

创建一个空文本文件
打开一个已有的文本文件
保存当前文本文件
保存工程
重装目标文件
从文本文件中剪切
从文本文件中复制
粘贴到文本文件中
打印文本文件
在文件中查找
取消刚才的编辑操作
重新执行编辑操作
在当前文件中查找
设置书签 (Ctrl+F2)
下一个书签(F2)
前一个书签
删除书签
增加缩进
减少缩进
选择编辑的字体和颜色
建立工程(F7)
运行调试器
停止调试器
复位调试器
退出调试器
显示下一个语句
单步运行 (F11)
跳过运行 (F10)
跳出运行 (Shift+F11)
运行到光标处 (Ctrl+F10)
单步自动运行(单步持续运行直到暂停)
设置/取消断点
清除所有断点
快速查看
打开/关闭查看窗口
打开/关闭寄存器窗口
打开/关闭存储器窗口
打开/关闭终端-窗口 (此版本不支持)
打开/关闭跟踪-窗口
打开/关闭反汇编窗口


Simulator 疑难解答

仿真器疑难解答

说明

  • 当RWWSRE和SPMEN都被写后,仿真器将不能作出正确的反应,这时必须要清空页缓冲区，但是仿真器页缓冲区的内容将一直保持，并且它的实际上“不存在”的内容将被写到应用程序中，

  • 在溢出触发方式下，当仿真器的计数器翻转到0x0000时，将立即产生OC1A中断。这种情况在ATmega8上已经得到验证，但是对于其它器件来说同样也会发生。

  • AT86RF401 仿真器只支持内核指令设置，但不支持外围设备。

  • 可以用仿真器直接写特殊的位，如：JTD 位。但是对于某些特定器件是不可以的。

  • 仿真器不能区分UCSRxC和UBBRxH 。也就是说如果写其中一个，另外一个也会同时被写，URSEL位同样也会改变。仿真器还不能支持隐藏存储器作为通用寄存器使用。

  • 16-位 计数器1和计数器3
    - 不支持消除噪声功能
    - 不支持边界扫描功能 (Count on edge (TX PINS))
    - 不支持锁定 OCR 寄存器。即使计数器是工作在PWM模式下也可以写 OCR 寄存器，这是因为仿真器不支持隐藏寄存器。

  • 在每种PWM模式中，当仿真器达到指定的最大值前，如果写入TCNTx的值大于最大值，则第一次循环将有效。


Simulator 新增功能

仿真器新增功能

说明

AVR Studio 4.10 新功能...

?ATmega128在快速PWM (WGM 14) 模式下，将计数到ICR+1然后停止。

?ATtiny13, ATtiny2313, ATmega48/88/168的计数器0：

-修复了预分频功能

-修复了溢出中断功能

?修复了m48,m88和m168中的内部中断设置中的漏洞。

?修复了ATtiny13的引脚变化中断。

AVR Studio 4.09 新功能...

-增加了对ATmega48/88/168的支持。

-增加了对ATmega329的支持。

-修复了ATmega128 的计数器1和计数器3：

  • 修正了预分频约数

  • 正确设置输出比较A,B和C中断和标志位 (所有预分频设置情况)

  • 写0不能清除OCF1/3C

  • 引脚B的第七位可由输出比较匹配中断C触发

  • 输入捕获标志位正常工作

  • FOC,通道A,B和C正确设置

  • CTC模式正常工作

  • 输入捕获标志位和中断正常工作

  • 输出比较A,B和C正常工作

  • 预分频正常复位

请参看
疑难解答


Port logging and stimuli

端口信号变化记录和激励

说明

记录端口信号变化

用户可以把输出端口的活动情况记录到一个文件或输出窗口。

用户必须选择要记录的端口。如果已经选择好端口，用户必须再选择放记录数据的文件(或屏幕)。在这种文件中存放的是端口寄存器的内容。记录文件的每一行的格式如下：

Cycle:Data

注意: 循环区是十进制格式数据区是十六进制格式，循环数值的最大值是9 位。如果在一个循环中端口寄存器的内容无变化，将没有输出。

记录信息在每次程序复位时被删除。在每次把程序装载到AVR Studio中时，必须手动把记录信息激活，在不同的工程任务转换时，不能保存设置。

外部激励

用户可以把文件中的数值作用到任何一个端口。

如果某个端口已经选择，用户必须知道激励文件放在哪里。激励文件中的数值是放在特定循环上特定端口上的引脚寄存器中。激励文件格式与端口记录文件格式相同，如：

000000000:00
000000009:AB
000000014:AC

注意只有设置为输入的引脚才有效。

激励文件的最后一行必须像这样：

999999999:FF

fig, stimuli and logging options

请参看：

仿真器选项
仿真器模块

请发送反馈到Atmel公司，欢迎您对AVR Studio及其它工具的提出宝贵的意见和建议！