lefish007 发表于 2010-10-16 12:16:10

IAR中调试NEC单片机常见问题小结

IAR中调试NEC单片机常见问题小节常见问题,为碰到类似问题的朋友一个参考。
图一

图二
1.        以上选择项中没有0485这颗芯片(见图一),该如何解决?但是我用applilet2生成的代码,其自动设置为0485,(见图二)?
第一问题已经解决:该芯片在78K0 - 78F0中。
Applilet2生成代码时需要选择芯片型号,所以在IAR中打开就已经选好了芯片。

2.        以下两句话是什么意思,有没有实际意思?
__no_init long POT @ 100;
__sfr __no_init volatile unsigned char PPT @ 0xFF10;
不太清楚,大概是定义一个可以位操作的无符号字符型变量PPT,并存放在地址FF10H处。
#pragma constseg=0x100
__root const unsigned char ucOptionBytes={0x00,0xFE,
0xFF,0x85};
这段和C语言中的 const uchar ucOptionBytes={0x00,0xFE, 0xFF,0x85}; 效果相同,定义常量数组。存放的内容就是下面问题3的OPTBYTE(选项字节,0485手册第27章),是一种类似于可以设置的固件,可以保证在主程序跑飞时选项字节受到保护。

有什么特殊意思吗?我仔细看了相关数据手册,没有找到相关内容,0xFF10在SFR寄存器段,0x100在程序存储区。

3.我用Applilet2生成的代码,有以下语句
#pragma location = "OPTBYTE"
"OPTBYTE",我猜IAR的关键字,可是在IAR的相关手册上没有找到?请问我在哪里能够找到相关内容。
参见上面的 选项字节,0485手册第27章。
4.请问uPD78F0485这颗片子可以用MINICUBE2进行flash编程吗?我在uPD78F0485的DATASHEET中没有找到相关的介绍。只介绍了关于FP系列编程器可以进行FLASH编程。
如果可以,可否发一个典型连接电路参考?
我参考MINICUBE2手册中的连接方式,如下图。
可以连接没问题,你需要烧写还是调试?或者两个功能都需要?8根线即可实现调试和烧写。发给你的附件有0485的接口图,是我们北京支持人员 李天太(82351155分机6156,tiantai.li@cn.necel.com )设计的,有问题可以一起讨论。
但是存在如下几个疑问:
(a)uPD78F0485管脚定义中并没有找到OCD1A
(b)我忽略这个引脚,无法连接到DEVICE,显示超时。 






5.IAR中如何使用外部编辑器
进行如下设置



6.IAR中定义一个变量在saddr段RAM中,怎么进行位操作?
定义1byte名字为“code”变量。
      RSEG SADDR_Z:DATA:SORT:NOROOT(0)

code:
      DS 1
      REQUIRE __INIT_SADDR_Z

如何对code进行位操作?
//这么操作编译不通过
CLR1code.3


//以下操作合法
CLR1S:code.3
经查阅IAR 汇编帮助文件,解释如下:


7.IAR 下生成hex文件
方法1 :在以下对话框中输入:

x-Ointel-extended,(CODE)=.hex

方法2:
见如下图,修改两处:

A.        把override->输出格式改为*.Hex
B.        Output 改为intel-extended

问题小节:
MINICUBE2仿真9234时,可以单步运行,但是只是一全速跑,就不能再停下来,只能强制关闭调试软件!调试电路接口是完全按MINICUBE2说明上的电路接的。
注意:MINICUBE2说明书中的 “5.2.5 用户资源的保留”一节内容。
中断进行相对应的设置。
对于9234的仿真,要使用中断三,在软件上要将总中断允许打开,并且中断的触发沿进行设置,但是就不用写中断触发函数

在IAR实现内容如下:
#define USE_MINICUBEII
/*********************确保调试用程序空间*****************/
#ifdef USE_MINICUBEII
    //预留中断向量
    #pragma location =0x18
    __root const unsigned char intp3Vect0 = 0xff;      
    __root const unsigned char intp3Vect1 = 0xff;   
    //确保软件断点区域
    #pragma location =0x7e
    __root const unsigned char softInt0 = 0xff;      
    __root const unsigned char softInt2 = 0xff;   
    //调试用代码空间?????存在一些问题?????,最后程序小于8K-304就OK
    /*
    #pragma location =0x1ED0
    __root const unsigned char keepRom;
    */
#endif

sophie0403 发表于 2010-10-22 09:04:20

额~~~LZ贴的NEC工程师的电话和邮箱估计要爆掉了~~~还是删掉的好

flame0510 发表于 2011-4-4 23:19:34

mark

1290519146 发表于 2014-5-29 14:52:31

0485用IAR怎么调试呢?
页: [1]
查看完整版本: IAR中调试NEC单片机常见问题小结