搜索
bottom↓
回复: 8

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

[复制链接]

出0入0汤圆

发表于 2009-5-8 10:43:06 | 显示全部楼层 |阅读模式
我用的单片机是PIC16F946,程序区有8K,我现在写了大概7K多一点,RAM差不多也用完了
问题是,我想跟进调试,却跟不进去,奇怪的是我PROGRAMMER模式,离开ICD2我的设备能运行
就是想调试进不去,要是我屏掉一部分的程序,它就跟的进去,想请大虾们找一下问题出在哪了?
补充:设备连线无误,软件配置正确。

出0入0汤圆

 楼主| 发表于 2009-5-8 11:20:34 | 显示全部楼层
这个问题是不是我的资源用的太光造成的阿?
我的RAM区还有30几个字节~ROM区用的剩了不到1K了~

出0入0汤圆

发表于 2009-5-9 22:55:40 | 显示全部楼层
的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空间无法使用。

出0入0汤圆

 楼主| 发表于 2009-5-10 00:44:13 | 显示全部楼层
问题已经找到了!是ICD2的问题。如下设置一下就行了。
  因ICD2是在线仿真,所以会占用部分芯片资源。但编译器的链接文件不够聪明,不知道哪些资源会被ICD2占用,有可能链接器分配的ROM和RAM空间恰巧是被ICD2占用的,会引起用户程序和ICD2的调试程序发生冲突
下面是针对PICC, PICC18, MCC18, C30几个PIC开发中常见C编译器, 基于MPLAB IDE 集成开发环境中给出的解决办法:
1. HITECH C + ICD2.
  PICC 和PICC18的设置一样,通过设置编译选项来实现。
  编译程序前,在MPLAB IDE中的PROJECT菜单下,按如下操作
PROJECT->BUILD OPTIONS->PROJECT->PICC Global
  在PICC Global选项卡中选择"compile for ICD",确定后就可以编译程序啦

2. MCC18 +ICD2
和PICC不一样,在MCC18下是选择合适的linker scripts文件来实现
对于每个PIC18Fxxxx型号,在C:\mcc18\lkr文件夹,都有两个链接脚本文件, 例如PIC18F452,分别是18f452.lkr和18f452i.lkr.
如果您要使用ICD2调试, 请选用带i的链接文件编译.
如果打开18f452i.lkr, 会看到代码区和数据区分别有:
“CODEPAGE NAME=debug START=0x7DC0    END=0x7FFF  PROTECTED”
“DATABANK  NAME=dbgspr  START=0x5F4  END=0x5FF  PROTECTED”
这部分空间都是会被ICD2占用的, 所以“PROTECTED”,不分配给用户程序。
3.C30+ICD2
C30是通过设置编译选项实现。
操作如下:MPLAB IDE->PROJECT-> BUILD OPTIONS->PROJECT->MPLAB LINK30, 选中
“Link for ICD2” 确定即可。
对于dsPIC和PIC24系列来说RAM区0800h-0822h是为ICD2保留的,如果编译时没有选择“link for ICD2”,全局变量很有可能分配到800h-822h间. 这也是为什么可以在watch窗口看到全局变量的地址,但在值那栏却显示“reserved  memory” 的原因之一。

出0入0汤圆

发表于 2009-5-10 07:27:28 | 显示全部楼层
mrak一下~

出0入0汤圆

发表于 2009-7-12 19:40:01 | 显示全部楼层
很多人知道原因,但不知道怎么解决,我也是其中之一,谢谢两位了。

出0入0汤圆

发表于 2009-7-13 08:36:00 | 显示全部楼层
ding

出0入0汤圆

发表于 2009-7-14 20:11:34 | 显示全部楼层
大哥,你能不能写的详细点,我用8.30版的,没找到你你说的compile for icd2

出0入0汤圆

发表于 2009-10-16 13:34:22 | 显示全部楼层
顶一下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 20:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表