ICD2仿真调试跟不进去,是什么原因?

2020-02-10 08:35发布

我用的单片机是PIC16F946,程序区有8K,我现在写了大概7K多一点,RAM差不多也用完了
问题是,我想跟进调试,却跟不进去,奇怪的是我PROGRAMMER模式,离开ICD2我的设备能运行
就是想调试进不去,要是我屏掉一部分的程序,它就跟的进去,想请大虾们找一下问题出在哪了?
补充:设备连线无误,软件配置正确。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
youmcu
2020-02-10 15:29
的RAM区还有30几个字节~ROM区用的剩了不到1K了~

用什么编译,用汇编的话,剩下0也可以啊!用C的话.....
再,用ICD2要占用芯片内部资源,

调试须保留的资源
当使用MPLAB ICD2进行开发时,必须要知道给器件调试用保留的资源。可通过帮助文件查看保留资源的详细说明。也可以在ICD2调试模式下,打开数据(File Registers)寄存器、程序(Program Memory)存储器的观察窗口查看,其中标注为RR的部分为保留单元不可用。一般在线调试时需使用如下的片内资源:
        复位入口处第一条指令不可用(一般可写为NOP指令)。
        一或两个堆栈单元被MPLAB ICD2调试器使用。
        几个通用数据寄存器被保留用于在线调试。
        程序存储器的高地址部分保留给调试器监控执行代码。
        PIC18FXXXX 系列的影子堆栈在调试时不可用。目标程序可使用影子堆栈,但不能调试快速中断返回或快速子程序调用返回,因为ICD在获得一个断点时会覆盖影子堆栈。
        当使用MPLAB ICD2调试dsPIC系列芯片时0x800-0x84F RAM空间无法使用。

一周热门 更多>