微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC 单片机 C 语言编程简介(3)

PIC 单片机 C 语言编程简介(3)

时间:11-22 来源:互联网 点击:

后进行连接;

-项目重建(Build All):项目中的所有原程序文件,不管是否有修改,都将被

重新编译一次,最后进行连接。

也可以通过 Project 菜单选择“Make”或“Build All”实现项目编译。不管采用何种方

式,在启动编译过程前一般都要设定一些编译选项。

11.8.1 选择单片机型号

在选择 PICC 作为语言工具并建立了项目后,同样通过菜单项 Configure&O1616;Select Device

在 MPLAB 环境中选择具体单片机型号。请回顾一下例 11-1 的代码,我们在原程序一开始

使用了“#include ”实现了相关单片机的一些预定义符号的直接引用,但没有具体指

明是哪一个型号。实际上,“pic.h”头文件只是一个简单的管理工具(条件判别),它会按照

MPLAB 所选择的特定型号的单片机,把真正对应的头文件包含进来。有兴趣者可以直接用

文本编辑工具打开 pic.h 文件查看其是如何根据不同的单片机型号包含对应的头文件。

这样对编程员而言,程序中只需加上一句“#include ”即可。

11.8.2 PICC 普通编译选项(General)设定

参考第三章 3.2.7 节的内容和图 3-20 的指示说明,启动编译选项设定对话框。在使用

PICC 语言工具时对话框的内容和用 MPAMS 汇编工具相比完全不同。图 11-3 为 PICC 编译

环境下普通选项设定的界面。

在此界面中用户唯一能改变的是编译器查找头文件时的指定路径(Include Path),实际

上如果编译器安装没有问题,在此界面中这些普通选项的设定无需任何改动,编译器会自动

到缺省认定的路径中(编译器安装后的相关路径)查找编译所需的各类文件。

%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/9.jpg" src="file:///F:/data/%C3%83%C2%8F%C3%83%C2%82%C3%83%C2%94%C3%83%C2%98/PIC%C3%82%C2%B5%C3%82%C2%A5%C3%83%C2%86%C3%82%C2%AC%C3%82%C2%BB%C3%83%C2%BAC%C3%83%C2%93%C3%83%C2%AF%C3%83%C2%91%C3%83%C2%94%C3%82%C2%B1%C3%83%C2%A0%3Cwbr%3E%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/9.jpg" /> %C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/10.jpg" src="file:///F:/data/%C3%83%C2%8F%C3%83%C2%82%C3%83%C2%94%C3%83%C2%98/PIC%C3%82%C2%B5%C3%82%C2%A5%C3%83%C2%86%C3%82%C2%AC%C3%82%C2%BB%C3%83%C2%BAC%C3%83%C2%93%C3%83%C2%AF%C3%83%C2%91%C3%83%C2%94%C3%82%C2%B1%C3%83%C2%A0%3Cwbr%3E%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/10.jpg" />

图 11-3 PICC 普通选项设定图 11-4 PICC 全局选项设定

11.8.3 PICC 全局选项设定(PICC Global)

全局选项将影响项目中所有 C 和汇编原程序的编译,详细的设定内容见图 11-4。其中

必须关注的有:

&O1540; Compile for MPLAB ICD:如果你准备用 ICD 调试 C 语言编译后的代码,那么此项

就必须打钩选中。这样编译后的结果就能保证 ICD 本身使用的芯片资源(一小部

分的程序和数据空间)不被应用程序所占用。

&O1540; Treat ‘char’ as signed:为了提高编译后的代码效率,PICC 缺省认定‘char’型变量也

是无符号数。如果在设计中需要使用带符号的‘char’型变量,此项就应该被选中。

&O1540; Floating point ‘double’ width:同样为了提高编译后的代码效率,PICC 缺省认定

‘double’型的双精度浮点数变量的实现长度为 24 位(等同于普通 float 型浮点数)。

在这里可以选择使其长度达 32 位。这样数值计算的精度将得到提高,但代码长度

将增加,计算速度也会降低,所以请在权衡利弊后作出你自己的决定。

11.8.4 C 编译器选项设定(PICC Compiler)

项目中所有的 C 原程序都将通过 C 编译器编译成机器码,这些选项决定了 C 编译器是

如何工作的。所有选项又分为两组:普通选项(General)和高级选项(Advanced),分别见

图 11-5A 和 11-5B。

C 编译器的普通选项最重要的就是针对代码优化的设定。如果没有特殊原因,应该设定

全局优化级别为 9 级(最高级别优化),同时使用汇编级优化,这样最终得到的代码效率最

高(长度和执行速度两方面)。按笔者的使用经验,仅从代码长度去比较,使用最高级别优

化后代码长度至少可以减少 20%(2K 字以上的程序)。而且 PICC 的优化器相当可靠,一般

%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/11.jpg" src="file:///F:/data/%C3%83%C2%8F%C3%83%C2%82%C3%83%C2%94%C3%83%C2%98/PIC%C3%82%C2%B5%C3%82%C2%A5%C3%83%C2%86%C3%82%C2%AC%C3%82%C2%BB%C3%83%C2%BAC%C3%83%C2%93%C3%83%C2%AF%C3%83%C2%91%C3%83%C2%94%C3%82%C2%B1%C3%83%C2%A0%3Cwbr%3E%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/11.jpg" />%C3%82%C2%B3%C3%83%C2%8C%C3%82%C2%BD%C3%83%C2%8C%C3%82%C2%B3%C3%83%C2%8C.files/11.jpg" s

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top