2694|7

603

帖子

1

TA的资源

纯净的硅(中级)

楼主
 

【EEworld原创教程讨论】IAR开发简介视频教程中的小错误解析(欢迎拍砖) [复制链接]

本帖最后由 sjtitr 于 2014-3-28 14:18 编辑

刚刚学习了我们的原创教程,老师略显紧张,介绍和演示都很不错。

不过也走马观花发现其中有些小问题,我也是瞎掺和,唠叨唠叨,避免后来者被误导。
欢迎踊跃讨论和墙裂拍砖,只要有利于大家学习,尽管让暴风骤雨来得更猛烈些啊~

^_^抱歉了各位,发完帖子才后悔,以下分析有修改,之前分析有错误。变更处用红色表示

1.老师讲解了调试时候的基本操作,其中的运行至断点,老师点击的按钮是“→X”,

纠正:这个按钮的作用不是“运行至断点处”,它的作用是——运行至光标所在行,如果途中遇到断点,就停在所遇到的断点处

分析:老师在演示的时候,实际上光标也放在断点处了,因为是Timer中断里,点几次也都正确停在了断点(也是光标所在行)处
所以并不能看出来该按钮的实际作用。

强调:断点的停止,是指在该行的执行前,也就是说PC指示箭头所指的行,是接下来即将要运行的代码行,而不是已经运行。

2.考试中的多选第一题
本大题为多选题,每小题20分,共3题,共计60分。1.在IAR在线调试的情况,有哪些方式运行,代码会暂停在设置的断点处?
A.单步执行
B.运行至断点
C.全速运行
D.
[正确答案]:A,B,C
[试题解析]:
[阅卷得分(20)]:0

原试卷貌似没有提供试题解析,但是我认为这道题的答案不正确。正确答案不定此处回收之前的判断,所以ABC是正确答案,我们来一一分析。

分析
A.单步执行,执行一行代码,并停在下一行。
需要注意的是,如果你的光标落在C代码区,那么它的一行就是C语言的一行;
如果你的光标落在汇编区,那么它的一行就是汇编的一行,也就是可能要多次执行,才能对应一行C语言代码。
(C语言的一行的位置,对应的汇编位置,就是这条C语言编译为汇编语句的第一条句子处)

特殊情形:对应于C语言一条句子,产生了5条汇编指令,这时候如果在除了第一条指令以外的其他4条指令处设置断点
例如在第2条指令处设断点,然后光标落回C语言区域,C语言区域往往是看不到断点的,然后单步执行,结果是停在断点处,
从C语言区域来看,程序没能成功运行到下一条句子,而是仍然停留在当前行。


B.运行至断点,光标落在某一有效代码行上时,程序从当前位置一直运行到这一行时才停止;
如果途中遇到断点,就停在所遇到的断点处。
同A一样,究竟停在具体什么位置,取决于你的光标落在哪个区域

C.全速运行,程序从当前位置一直运行到遇到断点才停止。

综上,也许最接近正确答案的选项可以选成BC吧,只有它俩与设置断点这件事有密切关系。此判断不正确

强调:我之前用过一款IDE,在调试的时候有“忽视断点全速运行”和“全速运行”两个按钮,很明显前者遇到断点也不会停下来。
无论何种运行,都可以利用“停止”(也就是Stop,视频教程中的小红手)来强行令CPU暂停在某行代码上,就像老师所说的,
这样的情况下,程序不一定会停在什么位置。




最新回复

是嘛,重在交流学习  详情 回复 发表于 2014-3-30 08:44
 
点赞 关注

回复
举报

1119

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
我是捧场大王~~~
 
 

回复

603

帖子

1

TA的资源

纯净的硅(中级)

板凳
 
自己一回顾也会觉得自己写的东西太应试教育啦。好像中学那会儿老师领着抠到底是用of还是用in一样。其实在学习技术这里这些对错真的不重要,重要的是通过学习和演练明白更多的原理,便于学习和认识更多东西
 
 
 

回复

6066

帖子

90

TA的资源

裸片初长成(初级)

4
 
来拍砖吧@wstt !
 
 
 

回复

951

帖子

1

TA的资源

纯净的硅(中级)

5
 
当时我也选的BC.....A吗不能说错呢,单步运行的确可以运行至断点呢(当然也有错的情况呢)....后来看到答案想了想,和你后面那段话的一样呢,无所谓了。。。(有时候不需要那么较真呢...当然我自己这样想的呢,不就是一个答案么)
 
个人签名人有的时候真是奇怪,选择了会后悔,放弃了会遗憾,完美只能是一种理想,不是一种存在。
 
 

回复

846

帖子

0

TA的资源

纯净的硅(中级)

6
 
楼主的“2.考试中的多选”这个我也错了,
当时考虑“1.在IAR在线调试的情况,有哪些方式运行,代码会暂停在设置的断点处?”主要说明断点的作用,那肯定B,C了,至于A,单步执行执行一步,停一下,那下一行没设断点呢?好像跟断点没什么关系嘛
所以扣分了。

点评

站在学习的角度,我认为像你那样理解是没有问题的,毕竟那恰恰是单步和非单步的区别。 一道题而已,对错又如何,何况据我分析,那特殊的情况本身就有一定的不实用性。 反正我也错啦。 重要的是会调试  详情 回复 发表于 2014-3-29 21:07
 
 
 

回复

603

帖子

1

TA的资源

纯净的硅(中级)

7
 
lkl0305 发表于 2014-3-29 17:59
楼主的“2.考试中的多选”这个我也错了,
当时考虑“1.在IAR在线调试的情况,有哪些方式运行,代码会暂停 ...

站在学习的角度,我认为像你那样理解是没有问题的,毕竟那恰恰是单步和非单步的区别。

一道题而已,对错又如何,何况据我分析,那特殊的情况本身就有一定的不实用性。

反正我也错啦

重要的是会调试,而不是会考试。
 
 
 

回复

846

帖子

0

TA的资源

纯净的硅(中级)

8
 
是嘛,重在交流学习
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表