义隆循环左移c语言,义隆c编译器中文说明

WicePlus C 编译器用户指南介绍了如何在EM78系列微控制器上使用该编译器。在升级到新版本时,用户需要注意卸载旧版本并删除特定文件。新版本要求明确指定rpage, iopage和bank,且编译效率提升。指南还涵盖了C语言基础、WicePlus界面、编译和调试流程,以及中断处理和寄存器操作等硬件相关编程知识。
摘要由CSDN通过智能技术生成

WicePlus C Compiler forfor EM78 Series Microcontrollers EM78 Series Microcontrollers USER’S GUIDE ELAN MICROELECTRONICS CORP. Feb 2007 Doc. Version 2.0 Trademark Acknowledgments IBM is a registered trademark and PS/2 is a trademark of IBM. Windows is a trademark of Microsoft Corporation. ELAN and ELAN logo are trademarks of ELAN Microelectronics Corporation. Copyright 2007 by ELAN Microelectronics Corporation All Rights Reserved Printed in Taiwan The contents of this User’s Guide (publication) are subject to change without further notice. ELAN Microelectronics assumes no responsibility concerning the accuracy, adequacy, or completeness of this publication. ELAN Microelectronics makes no commitment to update, or to keep current the information and material contained in this publication. Such information and material may change to conform to each confirmed order. In no event shall ELAN Microelectronics be made responsible for any claims attributed to errors, omissions, or other inaccuracies in the information or material contained in this publication. ELAN Microelectronics shall not be liable for direct, indirect, special incidental, or consequential damages arising from the use of such information or material. The software (WicePlus) described in this publication is furnished under a license or nondisclosure agreement, and may be used or copied only in accordance with the terms of such agreement. ELAN Microelectronics products are not intended for use in life support appliances, devices, or systems. Use of ELAN Microelectronics product in such applications is not supported and is prohibited. NO PART OF THIS PUBLICATION MAY BE REPRODUCED OR TRANSMITTED IN ANY FORM OR BY ANY MEANS WITHOUT THE EXPRESSED WRITTEN PERMISSION OF ELAN MICROELECTRONICS. ELAN MICROELECTRONICS CORPORATION Headquarters: No. 12, Innovation Road 1 Hsinchu Science Park Hsinchu, Taiwan 30077 Tel: +886 3 563-9977 Fax: +886 3 563-9966 .tw Hong Kong: Elan (HK) Microelectronics Corporation, Ltd. Rm. 1005B, 10/F Empire Centre 68 Mody Road, Tsimshatsui Kowloon , HONG KONG Tel: +852 2723-3376 Fax: +852 2723-7780 elanhk@.hk USA: Elan Information Technology Group 1821 Saratoga Ave., Suite 250 Saratoga, CA 95070 USA Tel: +1 408 366-8223 Fax: +1 408 366-8220 Shenzhen: Elan Microelectronics Shenzhen, Ltd. SSMEC Bldg., 3F, Gaoxin S. Ave. Shenzhen Hi-Tech Industrial Park Shenzhen, Guandong, CHINA Tel: +86 755 2601-0565 Fax: +86 755 2601-0500 Shanghai: Elan Microelectronics Shanghai Corporation, Ltd. 23/Bldg. #115 Lane 572, Bibo Road Zhangjiang Hi-Tech Park Shanghai, CHINA Tel: +86 021 5080-3866 Fax: +86 021 5080-4600 EM55000Series IDS Reference Manual 3 Nov-00’ 进版说明 用户如何在WicePlus2的平台上使用C编译器?首先, 新旧版本的C编译器差别不大, 操作基本雷同, 就是说在这两种版本中用户都可以建立一个新的工程,但要注意这两个版本的不同之处: 1. 卸载WicePlus1.XXX。在安装WicePlus2之前,用户必须先完全卸载以前版本的WicePlus,也就 是说在卸载的过程中,用户必须选择remove的选项。卸载以后,用户必须安装WicePlus2.,因为 新版C编译器和WicePlus2相关联。 2. 在用户建立的工程里删除system.inc 和 sysdef.inc这两个文件。假如用户在D:\develop\的路径下建 立了旧版本的工程prg1.c,这样在同一个文件夹里就会有两个C编译器的系统文件system.inc 和 sysdef.inc,用户必须先删除D:\develop\下面的这两个文件。 3. 明确分配rpage , iopage, bank。在旧版本里,rpage 0, iopage 0 和 bank 0可以被省略,如果用户在 这些寄存器定义变量时不用特别申明。但在新版本中,用户不能再省略rpage 0, iopage 0 和 bank 0,这些““0 ”状态的变量也必须明确申明。对于只有一个rpage , iopage 或 bank的微控制器,在 定义变量时也必须明确申明是哪一个page 或 bank。 4. 新版本的C编译器编译效率较高,用户可以参考本文件的第57页的转换表。 5. 编译器将不定地占用通用寄存器,它将提醒用户在中断服务程序里哪些通用寄存器 需要保存和备份,请参考5.10.3章节。 我们希望能提供给用户一个理想的开发工具,如果您在使用 C编译器的过程中有任何的问题,请随 时联系我们,您可以发邮件到下面的地址: myjian@.tw john.cheng@.tw Contents WicePlus C Compiler User’s Guide 目录目录 • • 1 目录 1 介绍 1 1.1 概述............................................................................................................................1 1.2 系统需求....................................................................................................................1 1.2.1 主机.................................................................................................................1 1.3 软件安装....................................................................................................................1 1.4 ANSI 兼容性.............................................................................................................1 2 WicePlus 界面 2 2.1 概述............................................................................................................................2 2.2 WicePlus 子窗口.......................................................................................................3 2.2.1 工程窗口.........................................................................................................3 2.2.2 编辑窗口.........................................................................................................3 2.2.3 特殊寄存器窗口.............................................................................................4 2.2.4 通用寄存器窗口.............................................................................................4 2.2.5 监视窗口.........................................................................................................5 2.2.6 数据 RAM 窗口..............................................................................................5 2.2.7 LCD RAM 窗口..............................................................................................5 2.2.8 输出窗口.........................................................................................................6 2.3 WicePlus 菜单栏及其命令 .......................................................................................6 2.3.1 文件菜单.........................................................................................................7 2.3.2 编辑菜单.........................................................................................................7 2.3.3 查看菜单.........................................................................................................8 2.3.4 工程菜单.........................................................................................................8 2.3.5 调试菜单.........................................................................................................9 2.3.6 工具菜单.........................................................................................................9 2.3.7 选项菜单.......................................................................................................10 2.3.8 IDE 菜单.......................................................................................................10 2.3.9 窗口菜单.......................................................................................................10 2.3.10 帮助菜单.......................................................................................................11 2.4 工具栏......................................................................................................................11 2.4.1 工具栏图标和功能.......................................................................................12 2.5 文档栏......................................................................................................................13 2.6 状态栏......................................................................................................................14 3 开始 15 Contents 2 • • 目录目录 WicePlus C Compiler User’s Guide 3.1 硬件启动..................................................................................................................15 3.2 启动 WicePlus 程序................................................................................................15 3.2.1 连接对话框...................................................................................................15 3.2.2 Code Option 对话框.....................................................................................15 3.3 创建一个新的工程.................................................................................................15 3.4 将源文档加到工程内或从工程内删除源文档.....................................................16 3.4.1 给工程创建和增加一个新源文档...............................................................16 3.4.2 往新的工程内添加已有的源文档...............................................................18 3.4.3 从工程内删除源文档...................................................................................19 3.5 从文件夹或工程内编辑源文档.............................................................................20 3.5.1 从文件夹内打开源文档...............................................................................20 3.5.2 从工程文件内打开源文档...........................................................................20 3.6 编译工程.................................................................................................................21 3.7 下载编译好的程序到 ICE......................................................................................22 3.8 调试工程.................................................................................................................22 3.8.1 断点设置.......................................................................................................23 4 C 基础理论 24 4.1 注释..........................................................................................................................24 4.2 保留字......................................................................................................................25 4.3 预处理命令..............................................................................................................26 4.3.1 #include.........................................................................................................26 4.3.2 #define...........................................................................................................26 4.3.3 #if, #else, #elif, #endif ..................................................................................27 4.3.4 #ifdef, #ifndef ...............................................................................................27 4.4 常量..........................................................................................................................28 4.4.1 数字常量.......................................................................................................28 4.4.2 字符常量.......................................................................................................28 4.4.3 字符串常量...................................................................................................29 4.5 数据类型..................................................................................................................29 4.6 枚举类型..................................................................................................................30 4.7 结构和联合类型......................................................................................................31 4.8 数组..........................................................................................................................32 4.9 指针..........................................................................................................................32 4.10 操作运算................................................................................................................33 4.10.1 支持操作运算的类型................................................................................33 4.10.2 运算符的优先级........................................................................................34 4.11 If-else 语句.............................................................................................................35 4.12 Switch 语句............................................................................................................35 Contents WicePlus C Compiler User’s Guide 目录目录 • • 3 4.13 While 语句.............................................................................................................36 4.14 Do-while 语句........................................................................................................36 4.15 For 语句.................................................................................................................37 4.16 Break 和 Continue语句.........................................................................................37 4.17 Goto 语句...............................................................................................................38 4.18 函数........................................................................................................................38 4.18.1 库函数........................................................................................................38 4.18.2 定义函数....................................................................................................39 5 硬件相关编程 40 5.1 寄存器页 (rpage).....................................................................................................40 5.2 I/O 控制寄存器页 (iopage).....................................................................................41 5.3 Ram 区.....................................................................................................................42 5.4 位数据类型..............................................................................................................43 5.5 数据/LCD RAM 间接寻址 .....................................................................................45 5.6 在 ROM 内定位 C 函数..........................................................................................46 5.7 放数据到 ROM .......................................................................................................47 5.8 嵌入汇编..................................................................................................................48 5.8.1 保留字...........................................................................................................48 5.8.2 嵌入汇编语句里 C 变量的使用..................................................................48 5.9 使用宏指令..............................................................................................................49 5.10 中断程序................................................................................................................50 5.10.1 中断保护程序............................................................................................50 5.10.2 中断服务程序............................................................................................50 5.10.3 保留的通用寄存器的操作........................................................................51 Contents 4 • • 目录目录 WicePlus C Compiler User’s Guide 附录 A 转换表 55 A-1 C 和汇编代码间的转换对应表..............................................................................57 B 常见问题 (FAQ) 65 用户手册版本历史用户手册版本历史 版本 版本描述 日期 1.0 用户手册最初版本。 2005/07/27 1.1 在 4.5 章节数据类型里增加了长型数据类型的使用方法到注释里。 2005/08/31 1.2 增加了整型数据和无符号整型数据类型。 2006/07/27 2.0 用户必需明确申明寄存器所在的 rpage、iopage 及 bank。 2006/02/12 2.1 1. 在中断保护程式里增加了“PAGE @0X0”语句。 2. 在 5.10 章节的范例与注释里详细描述了中断备份与恢复的用法。 3. EM78569, EM78367 与 EM78369 等 IC 增加了嵌入汇编的乘法指令 “MUL”。 4. 优化了 c=(a+b) << 1; unsigned int a, b, c. 5. 在 4.3 章节增加了关于#include “xxx.c”使用的注释。 6. 在第 26 页举例说明了多源文档编程的应用。 7. 编译器将不定地占用通用寄存器,WicePlus 将告诉用户在中断服务 程式里哪些寄存器(0 x10~0 x1F)需要保存和备份,请参考 5.10.3 章节。 2006/03/ Chapter 2 WicePlus C Compiler User’s Guide Introduction • • 1 第一章 介绍 1.1 概述概述 EM78系列的C编译器是允许用户使用C语言来实现他们应用的一个辅助 代码转换器。 用户的源代码可以通过此编译器编译成汇编代码而生成机器 代码。 注意注意 ■ 请注意WICEPLUS只能安装在预先设好的目录底下(C:\ EMC\ WicePlus) ,该限制是为了 避免用户分配一个在编译时会产生比较严重错误的包含空格字符的安装路径。 ■ 在文件路径( .cpj , *.c or *.h )内不能包含空格字符,如果有空格字符,在编译时将出现问 题。 1.2 系统要求系统要求 1.2.1 主机要求主机要求 安装EM78系列C编译器的计算机需满足如下要求: ? IBM PC (Pentium 100 或以上)或相兼容机器 ? Win2000, WinME, NT, or WinXP ? 至少 10M 以上的硬盘空间 ? 至少 16M 的 RAM,推荐 30M 或更高 ? 强烈推荐有鼠标和 USB接口 1.3 软件安装软件安装 编译器包含在WICEPLUS,EM78系列的开发环境内。当安装WICEPLUS时, 编译器也将被安装进去了。 Chapter 2 • • WicePlus Interface WicePlus C Compiler User’s Guide 2 1.4 ANSI 兼容性兼容性 遵从ANSI标准受限于独立的C,以适应EM78系列微控制器独特的设计特 征。 Chapter 2 • • WicePlus Interface WicePlus C Compiler User’s Guide 4 第二章 WicePlus 界面 2.1 概述概述 WICEPLUS是一个集成开发系统的工具,此系统是用来编辑用户应用程序 和产生义隆EM78系列8位控制器的仿真文件。 工程窗口 编辑窗口 特殊寄存器窗口 LCD RAM 窗口 监视窗口 Fig. 2-1 WicePlus 主窗口布局 数据 RAM 窗口 输出窗口 菜单栏 工具栏 状态栏 通用寄存器窗口 文档栏 Chapter 3 WicePlus C Compiler User’s Guide WicePlus Interface • • 3 2.2 WicePlus 子窗口子窗口 子窗口可通过点击视图菜单内相关的窗口命令来显示或隐藏.(见4.3.3.3 部分)。 2.2.1 工程窗口工程窗口 Fig. 2-2 工程窗口 工程窗口包含源文档、头文件、LIST文件 和MAP文件。 Where: 源文档 (*.c) – 加载到当前工程文件内 需要编译的源文件; 头文件头文件 (*.h)– 源程序所需的参数文 件; List 文件文件 (*.lst) – 列表文件。 工程窗口的标题栏显示了当前微控制器和工程文件名。 2.2.2 编辑窗口编辑窗口 Fig. 2-3 编辑窗口 编辑窗口是一个创建、 查看 和调试源程序的多窗口编 辑工具。 编辑窗口的主要特点是: ? 不限制文件大小 ? 同一时间可以打开和显 示多个文件 ? 插入模式以编辑 ? 撤销/重做 微控制器名 工程文件名(*.cpj) Chapter 3 • • WicePlus Interface WicePlus C Compiler User’s Guide 4 支持剪切板(用按键可将文本剪切、拷贝、移动和粘贴到剪切板) ? 拖放文本操作(选定的文本能够在任何开发环境窗口内拖放) 2.2.3 特殊寄存器窗口特殊寄存器窗口 特殊寄存器窗口显示寄存器的最新 内容和相对应型号的 MCU的 I/O 控制寄存器。 Fig. 2-4 特殊寄存器窗口 2.2.4 通用寄存器(通用寄存器(RAM区)窗口区)窗口 Fig. 2-5 通用寄存器(Ram区)窗口 通用寄存器窗口显示最新的通用RAM内的数据。 当寄存器的值改 变时, 对应的数字 将变为红色 Chapter 3 WicePlus C Compiler User’s Guide WicePlus Interface • • 5 2.2.5 监视窗口监视窗口 Fig. 2-6 监视窗口 用户可以往监视窗口内增加在C里面申明过的变量。监视窗口会显示定义 的C变量的信息,比如名称、内容、寄存器所在的Bank及地址。 往监视窗口增加变量的步骤: 1. 反白变量(例如aa); 2. 点击鼠标右键,即弹出对话框; 3. 选择“Add to Watch”项。 2.2.6 “数据“数据RAM”窗口”窗口 Fig. 2-7 数据RAM窗口 数据RAM窗口仅仅对当前使用的微控制器可以使用,数据RAM窗口显示 数据RAM的内容。 Chapter 3 • • WicePlus Interface WicePlus C Compiler User’s Guide 6 2.2.7 “LCD RAM” 窗口窗口 Fig. 2-8 LCD RAM 窗口 当前使用的微控制器如果支持LCD RAM,那么LCD RAM窗口将会显示 LCD RAM的内容。“Cx”表示LCD的“COMx”信号,而“Sx”则表示 “SEGMENTx”。 双击被选择的部分(方格),可以修改LCD RAM的内容,内容的颜色会 从无色(0)变成粉红色(1)。任何相关的信息都将显示在输出窗口。 2.2.8 “输出输出”窗口窗口 Fig. 2-9 输出窗口 输出窗口会显示当前正在编译的工程结果(包含错误)的信息,例如汇编信 息、连接信息、跟踪和调试等的过程。这个窗口包含了四个子窗口,即: 编译、 ROM //在在headfile.h文档里文档里 … main () //在在testcode.c文档里文档里 { uaa=0 x21; … } extern unsigned int uaa; //在在kkdr.c文档里文档里 void () { uaa=0 x38; …. Uaa=0 x43; } void () { uaa=0 x29; } 4.3.2 #define #define identifier #define identifier token_list #define identifier (parameter_list) token_list Chapter 4 26 • • C Fundamental Elements WicePlus C Compiler User’s Guide #define identifier( ) token_list #define指令用于定义字符常数代替源代码,这使得源程序更具可读性。 注意注意 多行宏定义在行之间应该用“\”包含起来, 因此当在宏内使用汇编代码,可以只用一行。 范例:范例: #define MAXVAUE 10 #define sqr2(x, y) x * x + y * y Chapter 4 WicePlus C Compiler User’s Guide C Fundamental Elements • • 27 4.3.3 #if, #else, #elif, #endif #if constant_expression #else #elif constant_expression #endif #if指令用来作为条件判断,它将被#endif终止。#else可以用来提供多种选 择,如果需要,程序可以用#elif作为多种编辑的选择,但是必须是有效的 表达式。 例如:例如: #define RAM 30 #if (RAM < 10) #define MAXVALUE 0 #elif (RAM > 右移 expr1 >> expr2 << 左移 expr1 << expr2 ^ 位异或 expr1^expr2 Chapter 4 34 • • C Fundamental Elements WicePlus C Compiler User’s Guide 等式、关系和逻辑运算等式、关系和逻辑运算 符号符号 功能功能 表达式表达式 示例示例 < 小于 expr < expr x < y <= 小于等于 expr <= expr x 大于 expr > expr x > y >= 大于等于 expr >= expr x >= y == 等式 expr == expr x == y != 不等 expr != expr x != y flag=0; } else timeout=0; 4.12 Switch 语句语句 Switch (表达式表达式) { case 常数表达式常数表达式1:语句语句1 case 常数表达式常数表达式2:语句语句2 default: 语句语句3 } 当表达式与常数表达式的值一致时,执行常数表达式后面的语句。 注意注意 表达式将被设为INT类型,因此在SWITCH结构内只能有256种情形。 范例:范例: switch (I) { case 0: function0(); break; case 1: function1(); break; case 2: function2(); break; default: funerror(); } Chapter 4 36 • • C Fundamental Elements WicePlus C Compiler User’s Guide 4.13 While 语句语句 while (表达式表达式) 语句语句 “While”语句将会先检测表达式,如果表达式为真值,将会执行后面的语 句。 范例:范例: while (value != 0) { value--; count++; } 4.14 Do-while 语句语句 do { 语句语句 } while (表达式表达式); “Do-while”将会先执行语句然后检查表达式,如果表达式为真值,那么继 续执行语句,直到表达式的值为FALSE。 范例:范例: do { value --; count++; } while (value != 0); Chapter 4 WicePlus C Compiler User’s Guide C Fundamental Elements • • 37 4.15 For 语句语句 for (表达式表达式1; 表达式表达式2; 表达式表达式3) 语句语句; “For”语句相当于下面的语句: 表达式1; while (表达式2) { 语句; 表达式3; } 先执行表达式1,正常情况下表达式1为初值,“While”语句以相同的方式 执行。 范例:范例: for (i = 0; i < 10; i++) { value = value + i; } 4.16 Break and Continue 语句语句 break; continue; “break”适用于switch及循环语句,遇“break”会跳出,而“continue”语句则 会跳过循环的剩余部分并且直接跳到下次循环,“continue”适用于循环语 句,但不能在swicth语句内使用。 范例:范例: break exampl see switch. for (i = 0; i

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值