欢迎来到天天文库
浏览记录
ID:32319489
大小:65.03 KB
页数:4页
时间:2019-02-03
《p16ccc编译器简明用户指南》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、P16CCC编译器简明用户指南(su_mj000.yahoo.com)P16CC软件(包)支持Microchip公司研发的14位指令字长PIC单片机系列芯片,在MS-DOS环境下运行。用户可再Windows的窗口点击Start->AllProgram->Accessories->CommandPrompt进入MS-DOS环境。将软件包(p16cc.rar)解压后,存放在指定的硬盘根目录(例:C:P16CC)。一个完整软件应包括下属软件:p16cc.exe---C编译器(compiler)as16.exe---汇编器(assemb
2、ler)lk16.exe---连接器(linker)../include---库文件子目录../lib16---系统子程序库目录为了使用上的方便,可将该目录路径设置为全局环境。(方法略)第一部分:C语言编译器使用[一]C编译器P16CC运行命令及格式在MS-DOS环境下,P16CC的命令格式为:C:>p16ccfile1.cfile2.cfile3.c…此处的options如下:-N-生成的汇编语言文件中不嵌入源程序语句[缺省时:嵌入源程序语句]-i-不自动调整STATUS寄存器中的{IRP、RP1、RP0}[
3、缺省时:自动调整]-Did[=常数]-对符号id定义[常数],特别是1-DICD2-启用ICD2(在线调试)模式编译成功后,将生成file1.asm,file2.asm,file3.asm…文件。[二]P16CC的预处理标式(preprocessor)P16CC识别下述的预处理标式和语法结构:#include<文件名>#include(文件名)#defineidexpression#defineid(par1,par2,…)expression-注:开括号’(‘前不得有空隔符#ifexpression#else#endif#ifd
4、efid#ifndefid#pragmaidexpression#asm#endasm注:P16CC不支持以反斜杠’’说明的多行式#define[三]注释除了标准的C语言的注释格式(”……..”),P16CC允许使用C++的注释格式(//….)2[四]P16CC支持的数据P16CC支持的数据下述的数据类型:char-8位定点整数(带符号),-128~127int-16位定点整数(带符号),-32768~32767short-24位定点整数(带符号),-8388608~8388607long-32位定点整数(带符号),-2
5、147483648~2147483647unsignedchar-8位定点整数(无符号),0~255unsignedint-16位定点整数(无符号),0~65535unsignedshort-24位定点整数(无符号),0~16777215unsignedlong-32位定点整数(无符号),0~4294967295struct-用户自定义结构union-用户自定义联合typedef-用户自定义数据类型enum-常量序列此外,保留字sbit用于定义、说明各I/O控制寄存器中的控制位。P16CC支持静态变量(以static说明)[五]汇
6、编语言的嵌入P16CC支持两种方式汇编语言嵌入:(1)以#asm及#endasm说明起始和结束,一般用于连续多句汇编语言的嵌入。(2)以asm("...")说明,用于单句汇编语言的嵌入(必须用于函数内部)。3[六]中断服务函数的说明P16CC中断服务函数用保留字interrupt直接说明。如:interrupt(){…}中断保护规模用保留字#pragma设定:#pragmaint_saven以保护若干共享的内存数据单元。其中n值为0~6(缺省值为6)。该说明必须放在中断服务函数之前。[七]变量存储区域说明标识(storagespe
7、cifier)const-存放在ROM(flash)eeprom-存放在EEPROMbank0-存放在RAM的0x00~0x7F区间bank1-存放在RAM的0x80~0xFF区间bank2-存放在RAM的0x100~0x17F区间bank3-存放在RAM的0x180~0x1FF区间缺省值为bank0。函数的入口参数一律定位在bank0。[八]指针变量的长度和指针的作用区域按P16CC的定义,指针变量的长度视其作用区间而定。作用于RAM空间的指针变量只占一个字节;而作用于ROM空间的指针变量占用2个字节。指针作用域在指针变量定义时
8、说明。如下述例子:bank1charconst*p1;//指针变量p1存放在bank1,作用于ROM。bank2charbank3*p2;//指针变量p2存放在bank2,作用于bank3。4
此文档下载收益归作者所有