IAR FOR NEC编译器的使用介绍
时间:10-02
整理:3721RD
点击:
出差在外,进行了一下整理,整理的不好,大家可别骂我,另外,IAR的编译器很多地方都差不多,选择用IAR FOR NEC说明问题,主要是国内用IAR FOR NEC的人特别少,包括NEC自己的工程师,也基本不会用,所以我就稍微整理一点拉。
的开发环境实在是太烂太烂,光装它那垃圾环境就得花费半小时以上,KAO,NEC中国还没有IAR FOR NEC的技术支持,真不知道NEC是怎么在中国推广的。我很少使用仿真器调试程序,所以有关MINICUBE2仿真方面的话题,就不要问我了。
MINICUBE2可以编程,有一个QBP的软件。另外,NEC还提供一个价格奇贵的专用编程器,那玩意没什么东西,但却需要卖2800元,NEC简直是打劫,那玩意300块半卖半送就拉倒了。
IAR FOR NEC的效率和PM+的效率完全不可同日而语,嘿嘿,我一般都不给别人讲,谁用谁知道。
IARF FOR NEC的入门很简单,DOWN软件后建个空项目编译就是了,呵呵,那样就爬进门了,IAR FOR NEC的问题主要有如下一些:
1、IAR FOR NEC环境下如何连接MINICUBE2仿真,如果是78F9222、9234这样的,一般不能直接仿真,需要在CHIP中保留出一块区域,并放一段代码进去,应该类似ROM-monitor这样的方式,这个很麻烦,还占用MCU部分ROM资源和IO资源,并且这几个型号也比较简单,所以一般不仿真,直接DOWNLOAD到CHIP中看就可以了
2、对于0537等型号,NEC提供一些带D后缀的型号供开发用,说白了,在这些型号里面,做进来类似的JTEG等调试硬件,但具体生产时,选择那些不带D后缀的型号,目的只有一个:省点晶圆面积,这做法真TMD的变态啊。
3、有关中断的写法,一般和如下类同:
#pragma vector=INTTM000_vect //定时中断
__interrupt void T0(void){
}
请仿照写就可以了,至于INTTM000_vect关键字,可查阅IAR安装目录下的连接文件中的定义。
4、可选字节和保护字节的写法如下:
#pragma location = "OPTBYTE" //0x0080~0x0081赋值
__root const uchar optbyte[2]={0x9D,0xff}; //可选字节和保护字节
有关OPTBYTE的定义可参考IAR目录下的相关文件即可,里面都有定义
5、头文件写法:
#include <io78f9222.h>
#include <intrinsics.h>
你用到哪个就包含哪个了,intrinsics.h中包含了一些本征函数,一般都需要包括,除非你不用本征函数,但不用本征函数的代码估计不多,而且也是不可想象的,所以直接拷贝包含进去就可以了,io78f9222.h这样的文件就不用多说了把。
6、其它的就是有关IAR的一些设置了,包括堆、栈的大小、范围、库函数、CALLT启用、LIST文件生成、编译的一些设置,HEX文件的生成等等了,这些查阅IAR的帮助可以得到解释,如果有不明白得地方可以跟贴提问,俺一定尽量知无不言。
的开发环境实在是太烂太烂,光装它那垃圾环境就得花费半小时以上,KAO,NEC中国还没有IAR FOR NEC的技术支持,真不知道NEC是怎么在中国推广的。我很少使用仿真器调试程序,所以有关MINICUBE2仿真方面的话题,就不要问我了。
MINICUBE2可以编程,有一个QBP的软件。另外,NEC还提供一个价格奇贵的专用编程器,那玩意没什么东西,但却需要卖2800元,NEC简直是打劫,那玩意300块半卖半送就拉倒了。
IAR FOR NEC的效率和PM+的效率完全不可同日而语,嘿嘿,我一般都不给别人讲,谁用谁知道。
IARF FOR NEC的入门很简单,DOWN软件后建个空项目编译就是了,呵呵,那样就爬进门了,IAR FOR NEC的问题主要有如下一些:
1、IAR FOR NEC环境下如何连接MINICUBE2仿真,如果是78F9222、9234这样的,一般不能直接仿真,需要在CHIP中保留出一块区域,并放一段代码进去,应该类似ROM-monitor这样的方式,这个很麻烦,还占用MCU部分ROM资源和IO资源,并且这几个型号也比较简单,所以一般不仿真,直接DOWNLOAD到CHIP中看就可以了
2、对于0537等型号,NEC提供一些带D后缀的型号供开发用,说白了,在这些型号里面,做进来类似的JTEG等调试硬件,但具体生产时,选择那些不带D后缀的型号,目的只有一个:省点晶圆面积,这做法真TMD的变态啊。
3、有关中断的写法,一般和如下类同:
#pragma vector=INTTM000_vect //定时中断
__interrupt void T0(void){
}
请仿照写就可以了,至于INTTM000_vect关键字,可查阅IAR安装目录下的连接文件中的定义。
4、可选字节和保护字节的写法如下:
#pragma location = "OPTBYTE" //0x0080~0x0081赋值
__root const uchar optbyte[2]={0x9D,0xff}; //可选字节和保护字节
有关OPTBYTE的定义可参考IAR目录下的相关文件即可,里面都有定义
5、头文件写法:
#include <io78f9222.h>
#include <intrinsics.h>
你用到哪个就包含哪个了,intrinsics.h中包含了一些本征函数,一般都需要包括,除非你不用本征函数,但不用本征函数的代码估计不多,而且也是不可想象的,所以直接拷贝包含进去就可以了,io78f9222.h这样的文件就不用多说了把。
6、其它的就是有关IAR的一些设置了,包括堆、栈的大小、范围、库函数、CALLT启用、LIST文件生成、编译的一些设置,HEX文件的生成等等了,这些查阅IAR的帮助可以得到解释,如果有不明白得地方可以跟贴提问,俺一定尽量知无不言。
急请教,怎么应用IAR设置应用扩展BANK,芯片型号0527!