搜索
bottom↓
回复: 3

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

[复制链接]

出0入0汤圆

发表于 2010-10-16 12:16:10 | 显示全部楼层 |阅读模式
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[4]={0x00,0xFE,
0xFF,0x85};
这段和C语言中的 const uchar ucOptionBytes[4]={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进行位操作?
//这么操作编译不通过
CLR1  code.3  


//以下操作合法
CLR1  S: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[304];
    */
#endif

出0入0汤圆

发表于 2010-10-22 09:04:20 | 显示全部楼层
额~~~LZ贴的NEC工程师的电话和邮箱估计要爆掉了~~~还是删掉的好

出0入0汤圆

发表于 2011-4-4 23:19:34 | 显示全部楼层
mark

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-29 14:59

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

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