编辑: sunny爹 | 2014-12-31 |
40 日期 : 2018-10-09 Rev.1.40
2 2018-10-09 用户须知 所有文档均会过时,本文档也不例外.Holtek 的工具和文档将不断演变以满足客户的需求, 因此实际使用中有些对话框和工具说明可能与本文档所述之内容有所不同.请访问我们的 网站 (http://www.holtek.com.tw/zh/mcu_tools_users_guide) 获取最新文档. Rev.1.40
3 2018-10-09 目录 前言
7
第一章 C 语言基础知识.8 1.1 数据类型、运算符与表达式
8 1.1.1 C 的数据类型.8 1.1.2 常量与变量.9 1.1.3 C 语言运算简介.12 1.2 函数
14 1.2.1 函数的声明与定义.14 1.2.2 参数列表与返回值.15 1.2.3 函数的调用.16 1.2.4 main 函数.18 1.2.5 标准函数库.18 1.3 数组与指针
18 1.3.1 数组的定义、初始化与使用.18 1.3.2 多维数组.19 1.3.3 字符串及其结束标志.19 1.3.4 指针的概念.19 1.3.5 指针的类型.19 1.3.6 指针的操作.19 1.3.7 数组名与指针的区别.21 1.4 结构体、联合体与枚举
21 1.4.1 结构体、联合体与枚举的使用.21 1.4.2 结构体与联合体的区别.22 1.5 预处理,宏定义与内联函数的区别
22 1.6 流程控制
25 1.6.1 三种执行流程.25 1.6.2 判断语句 if、switch 的使用.25 1.6.3 循环与循环的嵌套.25 1.6.4 break 与continue
26 1.6.5 正确使用 goto.26 1.7 作用域
27
第二章 C compiler V3 扩展及其限制
28 2.1 在HT-IDE3000 中设置 C compiler V3.28 2.1.1 使用环境.28 2.1.2 新建项目时,选定 C compiler V3 编译程序.28 2.1.3 开启项目后,如何选用 C compiler V3 编译程序.29 2.1.4 项目编译选项设定.30 2.1.5 连接选项.32 2.2 C compiler V3 扩展语法及功能.34 2.2.1 中断服务程序.34 2.2.2 绝对地址变量 (absolute variable)35 2.2.3 MCU 头文档介绍.35 2.2.4 变量初始化.37 Rev.1.40
4 2018-10-09 2.2.5 内嵌汇编语言.39 2.2.6 指定函数的地址.40 2.2.7 指定 const 的地址
41 2.2.8 变量分配.41 2.2.9 __attribute__ 关键词
42 2.2.10 硬件除法器.43 2.2.11 bit 数据类型.45 2.3 C compiler V3 的限制.45 2.3.1 函数指针.45 2.3.2 递归函数.45 2.3.3 MP(Memory Pointer) 宽度只有 7bit 的MCU.45 2.4 编译程序管理的资源
46
第三章 C compiler V3 的优化功能.47 3.1 优化内容介绍
47 3.2 代数转换 (Algebraic Transformations)47 3.3 复制传递 (copy propagation/value propagation)47 3.4 删除执行不到的代码 (Unreachable code Elimination)48 3.5 删除死代码 (Dead-code Elimination)48 3.6 常量折迭 (Constant Folding)48 3.7 常量传播 (constant propagation)48 3.8 内联程序 (Inline Procedure)49 3.9 强度削减 (Strength Reduction)49 3.10 尾递归调用 (Tail Recursive Call)50 3.11 子表达式删除 (subexpression elimination)51 3.12 尾部合并 (Tail merging)51 3.13 ROM BP 优化
51 3.14 Dead section 删除
52
第四章 Holtek C V1,V2,V3 及ANSI C 的差异对比.53 4.1 数据类型
53 4.2 数组
53 4.3 标识符保留字
54 4.4 运算符
55 4.5 前置处理指令
55 4.6 预处理指令 #pragma
56 4.7 const 变量.56 4.8 预定义的头档
57 4.9 main 函数
57 4.10 中断函数
58 4.11 内建函数
58 4.12 其它的功能
59
第五章 命令行模式
60 5.1 设置环境变量
60 5.2 使用命令模式编译源文件的过程
60 5.3 命令行参数
60 Rev.1.40
5 2018-10-09
第六章 多文件编程
62 6.1 头文件
62 6.2 共享的变量
62 6.3 调用其他源文件的函数
62 6.4 使用库
63
第七章 混合语言编程