打印

请问高手,我在调试lpc2134时的问题

[复制链接]
1999|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无冕之王|  楼主 | 2010-1-27 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在调试lpc2134过程中,程序老是跳到“指令终止”、“数据终止”、“未定义指令”,我用的是周立功的工程模板。
经过断电或复位后,有的时候程序又能运行正常了,但大部分时间都出这个现象,我调这个板子一周了,程序没编多少,大部分时间都浪费在这个上面了

那位高人知道这是怎么回事啊??

相关帖子

沙发
华荣汇FAE1| | 2010-1-29 17:12 | 只看该作者
复位电路不可靠

使用特权

评论回复
板凳
华荣汇FAE1| | 2010-1-29 17:12 | 只看该作者
这个问题可以请教周工呀

使用特权

评论回复
地板
gxgclg| | 2010-1-29 21:50 | 只看该作者
换个硬件试试

使用特权

评论回复
5
司徒老鹰| | 2010-2-9 00:46 | 只看该作者
只能的问题:堆栈溢出、输出越界、“野指针”等。

使用特权

评论回复
6
zwll| | 2010-2-9 23:27 | 只看该作者
只能的问题:堆栈溢出、输出越界、“野指针”等。
司徒老鹰 发表于 2010-2-9 00:46
野指针啥意思?

使用特权

评论回复
7
司徒老鹰| | 2010-2-9 23:29 | 只看该作者
这个都不知道啊

使用特权

评论回复
8
司徒老鹰| | 2010-2-9 23:30 | 只看该作者
本帖最后由 司徒老鹰 于 2010-2-10 23:45 编辑

给你个准确的答案吧。
“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种:
  一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。
  二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。例:
  char *p = (char *) malloc(100);
  strcpy(p, “hello”);
  free(p); // p 所指的内存被释放,但是p所指的地址仍然不变
  if(p != NULL) // 没有起到防错作用
  strcpy(p, “world”); // 出错
  

使用特权

评论回复
9
司徒老鹰| | 2010-2-10 23:45 | 只看该作者
另外一个要注意的问题:不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。

使用特权

评论回复
10
zwll| | 2010-2-12 22:29 | 只看该作者
这个都不知道啊
司徒老鹰 发表于 2010-2-9 23:29
呵呵,知道了,谢谢

使用特权

评论回复
11
zwll| | 2010-3-10 17:51 | 只看该作者
不知楼主解决了没有

使用特权

评论回复
12
hsbjb| | 2010-3-11 22:10 | 只看该作者
应该还是没解决

使用特权

评论回复
13
zwll| | 2010-3-12 20:42 | 只看该作者
5楼的情况都不是?

使用特权

评论回复
14
dfsa| | 2010-3-12 20:53 | 只看该作者
复位电路肯定要考虑电容的值

使用特权

评论回复
15
sinadz| | 2010-3-13 21:14 | 只看该作者
如果简单的程序都出现这样的问题,肯定是硬件上的最小系统没设计好

使用特权

评论回复
16
gxgclg| | 2010-3-14 20:05 | 只看该作者
最小系统最容易出问题的就是复位电路了

使用特权

评论回复
17
pkat| | 2010-3-15 21:02 | 只看该作者
我觉得芯片只要电源和地接的没问题,应该就可以工作了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:喜欢远行

160

主题

3331

帖子

0

粉丝