2953|0

36

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

这些天kei调试的一些小收获 [复制链接]

1.        food.position.x=(4*(TL0%4)-1);这个表达式在TL0%4为0的情况下会使得food.position.x=-1,表达成十六进制会得到0xff(这里的food.position.x是 int型)。
而我的程序段里有这么两句“P2 = table[food.position.x];和 u8 table[] = {0x7f,0xbf,0xdf,0xef};”把hex文件焼写进去以后,我发现那个数码管dp点有时亮有时不亮,这个BUG困扰我好久,于是我追踪food.position.x,得到它竟然出现了意料之外的值0xff,很明显 table[food.position.x]越界了,keil能做到if(q=p)给出警告,但这个越界让keil毫无办法
2.        在keil里定义a b变量名时,在调试窗口里添加a或者b观察将观察不到想要的变量值,取而代之的是累加器a和累加器b的值。所以最好避免定义a b这种变量名。
3.        关于在command对话框中修改变量名一个小小的发现:当调试程序进入某个变量作用域时才可以用a=0xfa之类的命令改变变量的值,否则会报错。(这个帖子http://www.c51.cn/1727/16268.html里有关于在keil里修改变量值的具体做法)
4.        如若有宏定义:#define AB xx,你想在watch窗口查看这个AB的值你会发现无法查看的,为什么呢,你把光标移到AB上单击,根本没任何提示,而其他变量会有如D:0xff之类的提示,这就说明那个宏定义的量根本不占内存(宏定义是预编译的),在watch对话框中怎么可以查看一个没有内存的量呢(君若想查看,请试编一个编译器)。
5.         debug tool中的这个黄色箭头干什么呢?
当你的程序很大的时候,有时候你不晓得程序到底运行到哪里了,这时候你只要点击它,立刻可以找到pc指针所在处。

[ 本帖最后由 zzbeagle 于 2012-4-2 01:38 编辑 ]
查看本帖全部内容,请登录或者注册

debugtool.JPG (9.66 KB, 下载次数: 0)

debugtool.JPG
点赞 关注
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
报名最后一周!2025 英飞凌消费、计算与通讯创新大会-北京站
会议时间:3月18日(周二)09:30签到
参会奖励:电动螺丝刀套装、户外登山包、京东卡

查看 »

 
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
快速回复 返回顶部 返回列表