搜索
bottom↓
回复: 12

征求英翻中__1年半前的帖子,希望电子系的同学能把它拿下来。给华东师大争点气

[复制链接]

出0入0汤圆

发表于 2006-1-19 19:15:25 | 显示全部楼层 |阅读模式
上传最新的AVR Studio 中文HELP。点击此处下载armok0198467.rar





其中有一段文字没有翻译,请大家帮助翻一下(hotpower在吗,请帮忙)。



它是AVR Studio - 调试 - 断点 - 数据断点 一页中的部分内容。

------------------------------------------------------------------------------------------

特别注意事项(Special considerations)

Local variables must always be qualified with the function name. This is also the case if the user wants to add a variable from the function that the program has stopped in.

False hits on data breakpoints on local variables can be caused by reuse of registers. Depending of the level of optimalization, the compiler might try to reuse a register for several variables. Currently, only the IAR compiler in combination with the ICE50 will be able to mask out false hits caused by this. With other compilers, and other platforms such as the simulator or JTAGICE mkII, false hits may be a problem in some cases. In most cases the user can reveal the reason for false hits by examining the code in the disassembly window (or examining a dump of the object file if possible). The 'Custom Scope' settings in the data breakpoint property page can be used to specify a smaller scope for a data breakpoint if it is shared between variables within a function.



The expression parser used for the data breakpoint includes file static functions and variables in the global scope. In cases where several static functions or variables have the same name and are not explicitly qualified with the file name (using the form {<file> [,<function>]} <variable>}, the expression parser will select the first symbol it finds when it scans the symbol table.



The current implementation of the expression evaluator cannot differentiate between overloaded C++ functions. Currently, functions cannot be qualified with their argument list, which is necessary for selecting a specific function overload. The program breakpoint will be bound to an arbitrary instance of the overloaded function.



The data breakpoint implementation in the simulator and the ICE50 can in some cases fail to detect access to a location referenced by a pointer when msb access type is selected. The problem exists when the pointer is stored in X or Z, and ST/LD X/Y with increment is used to de-reference the pointer.



To make sure the debugger breaks, let access type 'Any' be selected.



翻的好的(以我采用为准),奖励50元左右的的电子元件。器件在阿莫的邮购部中选择并提供邮购,费用我出。



请发表在本帖下。

出0入0汤圆

发表于 2006-1-31 16:52:37 | 显示全部楼层
局部变量通常必须和函数名一起声明,如果使用者想要在程序访问的函数中增加一个变量也必须如此。

  重复使用寄存器会导致在数据断点对局部变量的采样数出错。由于优先级的不同,编译器可能会重复使用一个寄存器存储多个变量。目前,只有IAR(指令地址寄存器)编译器结合ICE50(输入校验设备)能对由以上原因造成的采样数错误不报错。其它的编译器和其它的平台如模拟器或JTAGICE mkII,有些情况下会对采样数错误报错。通常,使用者可以检查分解的窗口中的代码来找出采样数错误的原因(如果可能也可以检查所有目标文件)。如果断点在一个函数中被多个变量共享,就可以使用“自定义范围”的设定方式,将数据断点指定在一个更小的范围里。

  语法剖析器可以对数据断点的文件静态函数和全局变量进行检测。万一多个静态函数或变量使用了同一个名字或没有和文件一起声明(没有用如下格式{<file> [,<function>]} <variable>}),语法剖析器就会搜索符号表格,并选择使用搜索到的第一个符号。

  当前执行的表达式求值程序不能区分递归调用的c++函数。一般来说,函数不能和声明列表一起声明,这对递归调用一个特定函数是十分必要的。程序断点只能在递归调用函数的任意场合使用。

  当最高有效位的存取类型被选定时,模拟器和ICE50上执行的数据断点有时会检测不到指针指向的有效地址。问题出现在指针里存储了x或z的时候,和ST/LD X/Y及增量一起用于废除指针的时候。  

  确保调试器暂停,并选取any为访问形式。







翻的不好,我抛砖引玉了

出0入0汤圆

发表于 2006-12-7 09:32:37 | 显示全部楼层
大概看了一下,有几个错误不得不说一下,可能还有,我等等抽时间仔细看一下:



1. Expression parser

至少应该翻译成 “语法分析器”,反正我学编译原理的时候没有听说过 “剖析器”

2.The current implementation of the expression evaluator cannot differentiate between overloaded C++ functions.



当前对表达式甄别的实现不能区分 C++ 中重载的函数。



3 To make sure the debugger breaks, let access type 'Any' be selected.

选择 Access Type 为 ‘Any’, 以确保调试器能够暂停。

出0入0汤圆

发表于 2006-12-7 09:48:56 | 显示全部楼层
4. Depending of the level of optimalization, the compiler might try to reuse a register for several variables

编译器可能会为了[维护/存储]几个变量而重用一个寄存器存储,这取决于优化级别。

出0入0汤圆

发表于 2007-1-9 16:02:46 | 显示全部楼层
4. Depending of the level of optimalization, the compiler might try to reuse a register for several variables





根据编译过程中采用的优化等级,编译器可能会重复使用同一寄存器来存储多个变量。

出0入0汤圆

 楼主| 发表于 2007-8-15 00:47:15 | 显示全部楼层
一年半过去了,奖品还是发不出去的。



现在奖品增加为AVR-51全套开发板,包括下载线、电源、液晶屏等。



到是希望有华东师大电子系的学生来试一下,暑假里参加全国大学生电子设计竞赛培训呢,先把这个翻译做做,集体讨论也行呀。



有人应答吗?

出0入0汤圆

发表于 2007-8-16 13:55:24 | 显示全部楼层
局部变量必须与它所在的函数一起声明,即使在程序已经访问的函数中增加一个变量也应如此。



寄存器的重复使用可能使设置于局部变量的数据断点产生错误。由于编译器的优化级别不同,可能使一个寄存器被几个变量使用。目前,只有在IAR编译器和ICE50结合使用时,对由上述原因引起的错误不会报错,除此之外的其他编译器和平台,如仿真器和JTAGICE mkII,一般都会报错。通常,用户可以通过检查反汇编窗口的代码(有条件的话,也可以查看目标文件的转存数据)来找出出错的原因。如果函数内部有多个变量共享一个数据断点,可以通过在“指定绑定描述域”(Custom Scope)中设置数据断点的有效区域来为该断点制定一个更小的范围。



用于数据断点的表达式剖析器将对全局范围内的(文件级)函数和变量进行分析。一旦出现几个函数或变量使用了同一个名字或没有明确指出具体文件(没有使用{<文件名>,[<函数名>]},<变量名>),表达式剖析器将选择它在扫描符号表时找到的第一个符号。

当前对表达式求值程序的执行不能区分C++中的重载函数 。一般来说,函数不能与它的声明列表一起声明,这对选择一个特定函数的重载是必要的,程序断点将在重载函数中任意选择一句语句进行绑定。



当操作触发类型选择为“最高位有效”(MSB)时,在仿真器或ICE50上执行的数据断点有时会使指针不能被引用,问题出在指针存储与寄存器X或寄存器Z,用ST/LD  X/Y指令增加寄存器中的值来废弃指针。



选择操作触发类型选择为“任意字节有效”(Any)来确保调试器能够暂停。

出0入0汤圆

发表于 2007-9-19 14:00:46 | 显示全部楼层
电子系的来试下。查了些资料再根据自己的经验,又问问了问国外的同学,尝试翻译下:
Local variables must always be qualified with the function name. This is also the case if the user wants to add a variable from the function that the program has stopped in.
在声明一个函数的同时,必须对这个函数所使用到的局部变量同时进行声明。同样,当程序处于中断状态下,若要在中断的函数中添加变量,也必须对其进行声明。
False hits on data breakpoints on local variables can be caused by reuse of registers. Depending of the level of optimalization, the compiler might try to reuse a register for several variables.
根据对程序编译优化级别的不同,编译器在编译时有可能会用一个寄存器存储多个变量的值,即多个变量使用一个寄存器,这将会导致在调试过程中无法正确获取局部变量在数据断点处的值。
Currently, only the IAR compiler in combination with the ICE50 will be able to mask out false hits caused by this.With other compilers, and other platforms such as the simulator or JTAGICE mkII, false hits may be a problem in some cases.
目前,只有将IAR编译器和ICE50同时使用进行调试,才能避免上述问题的出现。其他一些编译器和平台比如仿真器、JTAGICE MKII,多少会出现一些问题。
In most cases the user can reveal the reason for false hits by examining the code in the disassembly window (or examining a dump of the object file if possible).
多数情况下,可以在反汇编窗口中检查汇编语句(或检查目标文件)来查出数值获取不正确的原因。
The 'Custom Scope' settings in the data breakpoint property page can be used to specify a smaller scope for a data breakpoint if it is shared between variables within a function.  
另外在“数据断点”的属性设置中,可以通过设置“自定义范围”来缩小数据断点的区域。这样就可以在一个更小的范围内来判断同一函数中是否存在共享数据断点的变量。

先翻这么多,总结一下我对这里阐述的产生false hits的原因的理解。由于编译器对内存的优化,有可能在一个函数中的2个变量a,b均使用寄存器AX储存。那么在调试过程中,如果我监视的是b变量,那么由于a,b共用一个寄存器,那么有可能显示的是a变量的值。这样就会使我们认为程序出现错误,而其实并没有出现错误。

确实学了点东西。下次再翻。

如有错误处希望指正!

出0入0汤圆

发表于 2007-9-19 15:22:27 | 显示全部楼层
Local variables must always be qualified with the function name. This is also the case if the user wants to add a variable from the function that the program has stopped in.
局部变量必须始终与函数名一起检验。如果用户要添加一个变量到一个程序已访问的函数时也是这种情况。


False hits on data breakpoints on local variables can be caused by reuse of registers.
寄存器的再使用可使设置数据断点的局部变量产生错误的结果。

出0入0汤圆

发表于 2008-11-3 16:32:14 | 显示全部楼层
马老师:看到网上不是说电子系的同学已经将30M的资料翻译好吗---不用再顶置了吧。

出0入0汤圆

发表于 2008-11-1 20:54:31 | 显示全部楼层
这篇文章表达的内容好象不太流畅,也有些地方不太理解。还没有用过这个软件。





··[]局部变量必须与函数名一起声明。即使在用户要添加一个变量到一个停止的程序的函数时也是这样。&nbsp;·[]采集在局部变量

上的数据断点可能会因重复使用寄存器发生错误。[]依赖于编译器的优化级别,编译器可能为若干变量共用一个寄存器。·[]在

大多数场合下,使用者通过分析反汇编代码窗口的代码可以找到采集到假数据的原因(或者,可能的话分析目标文件的映象)。[]在

数据断点属性页面的‘自定义范围’能用来对一个数据点断说明一个较小的范围如果它在一个函数内是几个变量共享的。



·[]语法分析器被用于分析数据断点包括文件中的静态函数和全局变量。

·[]在几个静态函数或变量使用了相同的名字并且没有与文件名一起明确声明的场合(使用格式{&lt;file>&nbsp;[,&lt;function>]}&nbsp;&lt;variable>}),语

法分析器就会选择使用在符号表搜索到的第一个符号。



··[·]当前实现的表达式求解器不能区别重载的c++函数。目前,函数还不能带---对选择一个特定函数重载是十分必要的---参数表一起声明。

程序断点能在重载函数内的任意位置。



·[]目前,只有IAR编译器和ICE50结合使用时能识别由此原因引起的采集到的假数据。其他编译器,以及其它的模拟器或者JTAGICE&nbsp;mkII仍

然可能存在这样的问题。



[]当msb存取权限类型被选择,模拟器和ICE50的数据断点执行在某些情况下发生无法检测到经由指针的对局部变量的引用。这个问题存在于当指针被

储存在X&nbsp;或Z,以及ST/LD&nbsp;X/Y以增量方式用于取址的指针的情形。

[]为保证调试器可以中断,置访问权限为‘any'.



本贴被 zswlb 编辑过,最后修改时间:2008-11-02,07:25:38.

出0入0汤圆

发表于 2008-10-10 01:15:38 | 显示全部楼层
OK,做为华东师范大学电子系马老师的学生,我尝试一下吧......这两周比较忙.我10月底之前翻出来吧

出0入0汤圆

发表于 2009-9-18 11:03:46 | 显示全部楼层
mark1
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 12:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表