凌阳教育的个人空间 https://blog.eetop.cn/204849 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

嵌入式C语言程序设计基础

已有 770 次阅读| 2016-2-23 16:16 |个人分类:linux技术

C语言是一种结构化的程序设计语言,它的优点是运行速度快、编译效率高、移植性好和可读性强。C语言具有简单的语法结构和强大的处理功能,并可方便地实现对系统硬件的直接操作。C语言支持模块化程序设计结构,支持自顶向下的结构化程序设计方法。因此,用C语言编写的应用软件,可大大提高软件的可读性,缩短开发周期,便于系统的改进和扩充,这为开发大规模、高性能和高可靠性的应用系统提供了基本保证。

嵌入式C语言程序设计时利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计语言。嵌入式C语言程序设计首先是C语言程序设计,必须符合C语言基本语法。嵌入式C语言程序设计,必须符合C语言基本语法。嵌入式C语言程序设计又是面向嵌入式的应用,因此就要利用C语言基本知识开发出面向嵌入式的应用程序。如何能够在嵌入式系统开发中熟练、正确地运用C语言开发出高质量的应用程序,是学习嵌入式程序设计的关键。

C语言的“预处理伪指令”在嵌入式程序设计中的应用

C语言源程序中常常加入一些“预处理指令”,可以改进程序设计的环境,提高编程效率。它虽然写在源程序中,但不产生程序代码,因此也称为预处理指令。它不是C语言本身的组成部分,因此不能直接进行编译,而必须在编译前预先对这些特殊的指令进行“预处理”。在预处理时用“预处理命令”定义的实际内容代替该命令,因此也称为“编译预处理器”或“编译预处理伪指令”。

C语言所有预处理伪指令都以#号开头,以区别于源文件中的语句行与说明行。与处理伪指令有以下3种:文件包含、宏定义和条件编译。

预处理指令有以下特点:

把文件包含的正文替换进来,如标准头文件和自定义头文件,其内容包括符号常量、符合变量原型、用户定义的变量类型原型和函数的原型说明等。

对宏定义进行宏扩展,减少了编程量,改进源程序的可读性,参数宏更减少了函数调用的开销。

条件编译改善了编程的灵活性,也改善了可移植性。

所有预处理器伪指令都以#号开头,以区别于源文件中的语句行和说明行。

下面分别对预处理伪指令进行详细介绍。

1.文件包含伪指令

文件包含伪指令可将头文件包含到程序中,头文件中定义的内容包括符号常量、符合变量原型、用户定义的变量类型原型和函数的原型说明等。编译器编译预处理时用文件包含的正文内容替换到实际程序中。

1)文件包含伪指令的格式

#include<头文件名.h>                       ;标准头文件

#include“头文件名.h                    ;自定义头文件

#include 宏标识符                    

2)包含文件伪指令的说明

习惯上头文件名后用.h作为扩展名,可带或不带路径。

头文件可分为标准头文件与自定义文件。

尖括号对内的头文件为标准头文件。标准头文件按DOS系统的环境变量include所指定的目录顺序搜索头文件。

双引号岁“”内的头文件名为用户自定义头文件。搜索时,首先在当前目录中搜索,其次按环境变量include指定的目录顺序搜索。

搜索到头文件后,就将该伪指令直接用头文件内容替换。

3种格式中的宏标识符预处理器首先对它进行宏扩展。宏扩展后得到的可能是括号内的头文件名或双引号对内的投文件名。其后,就可按前2中格式之一来处理。

3)包含文件伪指令举例

示例       标准头文件定义

#include         <string.h>

#include         <stdio.h>

string.hstdio.h是标准头文件,按环境变量include指定的目录顺序搜索string.hstdio.h

示例       用户自定义文件

本例以S3CEV40开发板整个系统各个模块的测试程序的主文件main.c为例,详细介绍如何利用用户自定义头文件进行系统资源管理。


  File:        main.c

   Desc       :      c main entry


/--include files--/

#include”44bilb.h”

#include”44b.h”

#include”rtc.h”

#include”../LCD_Test/bmp.h”

……

……

Main.c中的44b.h44bilb.h等头文件是S3CEV40开发板测试程序的主文件main.h中用户自定义头文件。这些头文件定义了44BOX芯片及其外围接口的硬件资源。嵌入式SoC芯片已成为高性能嵌入式系统的核心,因此嵌入式软件开发时涉及片内资源较多,为了更好地管理这些资源,利用用户头文件对系统进行定义,可大大提高编程效率,并增加程序的可读性,这是嵌入式软件开发的第一步。

44bilb.h”对程序开发中的函数进行了声明,并用宏定义对一些常用的表达式或常量进行了预定义。

44bilb.h”内容如下所示:


File          44BLIB.H

Desc         Samsung 44BOX CPU function declare and common define


凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 1

    获赞
  • 3

    评论
  • 3815

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 03:24 , Processed in 0.017727 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部