打印

请指点迷津

[复制链接]
2538|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinling14|  楼主 | 2007-3-30 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的程序前面是系统初始化,都是一些赋值语句,但是在调试的时候,我把断点设在主程序的第二条指令都不能使程序执行停止,后来知道是程序飞了,从主程序的第二条指令开始就飞了,怎么会这样呢?赋值语句也会使程序飞吗?该怎么解决呢?望各位指点一下
沙发
yewuyi| | 2007-3-30 16:01 | 只看该作者

请详细描述问题

你是否连接的ICD2?
用的是C还是ASM?

出现此类问题一般都是一些低级错误造成的,请仔细检查。


如实在搞不定,请把相关的内容详细描述清楚。

使用特权

评论回复
板凳
jinling14|  楼主 | 2007-3-30 19:30 | 只看该作者

回2楼

我连的是ICD2,用的是C。整个程序可能是有问题,但是主程序前面的应该不会有错呀,程序前三条指令都是赋值给A,B,C三个端口的方向寄存器,我把断点设在第二条指令都不停止程序的运行。我在仿真器上的程序存储器上看到第一条指令就已经在没有程序的空间了

使用特权

评论回复
地板
yewuyi| | 2007-3-31 08:27 | 只看该作者

勾选上compile for MPLAB ICD

你可能是在MPALB中用ICD2仿真看的把?

使用特权

评论回复
5
jinling14|  楼主 | 2007-3-31 12:08 | 只看该作者

是呀,这有什么问题吗

使用特权

评论回复
6
jinling14|  楼主 | 2007-3-31 16:05 | 只看该作者

软件陷阱

软件陷阱具体怎么设呀?
我想应该可以用软件陷阱

使用特权

评论回复
7
yewuyi| | 2007-3-31 17:12 | 只看该作者

你的那一项到底选上没有?

倒塌……

使用特权

评论回复
8
xieyuanbin| | 2007-3-31 18:41 | 只看该作者

看来只好要求 把你的程序贴上来.

这样说来说去,很晕的.

使用特权

评论回复
9
jinling14|  楼主 | 2007-4-1 14:26 | 只看该作者

我是选上了compile for MPLAB ICD

我是选上了compile  for MPLAB ICD,这有什么问题吗?
ain(){
            
    TRISA=0B11111111;           
    TRISC=0B11111111;        
    PORTA=0xff;
    PORTC=0X00;

我把断点设在第二条指令,在仿真器的EPROM中看到断点却是在没有程序的空间里.我的程序空间是4K的,但是却看到断点在EFF之外,郁闷!

使用特权

评论回复
10
yewuyi| | 2007-4-2 08:44 | 只看该作者

MAIN?AIN?

芯片型号选择没有?

使用特权

评论回复
11
jinling14|  楼主 | 2007-4-2 12:56 | 只看该作者

是main

芯片是PIC16F913,占程序空间52.5%左右,但是如果删掉一些,只占51%左右一切就正常了,难道和EROM有关?是main,复制错了

使用特权

评论回复
12
兰天白云| | 2007-4-3 17:26 | 只看该作者

再贴一点

使用特权

评论回复
13
sagetom| | 2007-4-5 14:26 | 只看该作者

不详细

使用特权

评论回复
14
jinling14|  楼主 | 2007-4-5 20:30 | 只看该作者

问题解决了,但是还没找到根本原因

我把程序缩减到2K以下就OK了,我的程序在EPROM中只烧到0XEFF位置,但是我的主程序第一条指令地址就在0xF89,所以说主程序刚开始就在一个没有操作码的地方,那地方根本就没有指令.但是为什么会出现这样的情况,我就不明白了,请高手指教.

使用特权

评论回复
15
jiaqisun| | 2007-4-10 09:48 | 只看该作者

关注一下

使用特权

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

本版积分规则

16

主题

111

帖子

1

粉丝