查看原文
其他

嵌入式开发中C语言编程的一些要点简述

关注「嵌入式大杂烩」,选择「星标公众号」一起进步!

在嵌入式Linux的C语言开发中,C语言的基本编程依然是最重要的内容。除此之外,与一般的C语言编程相比,嵌入式Linux的C语言编程有以下一些要点:

1、库函数与系统调用

在进行C语言编程的时候,使用库函数是不可避免的。关于使用库函数的最简单的例子就是printf()。

在Linux环境下的C语言编程中,库函数包括两个部分:一种是C语言的标准库函数,例如包含srting.h头文件的字符处理函数、包含stdio.h头文件的标准输入/输出函数、包含math.h头文件的数学函数等;另一种是UNIX和Linux特定的库函数,例如UNIX特定的文件操作函数、权限处理函数以及特定的系统调用等。

类似其它的UNIX系统,Linux的很多库函数是通过系统调用完成的。库函数依然通过包含标准C语言头文件的方式使用,在库函数实现中使用Linux的系统调用完成。在嵌入式Linux中,很多标准的C语言库函数需要考虑系统特定的情况。

例如printf()的功能是将内容打印到标准的输出。在通用的计算机中,标准的输出一般默认是显示器。但是在嵌入式的系统中,标准的输出是不确定的,可能是某种显示设备(比如显示器),也可能是串口等。这些与嵌入式Linux操作系统内核的配置有关。

2、C语言高级应用

目前,计算机技术高速发展,各种编程语言发展迅速。各种高级语言有着各自的优势:C++具有完全面向对象的特点以及非常全面的功能;Java具有与平台无关的特性;C#借助微软的强力支持,前景也非常广阔;各种脚本语言则有着无需编译、简单易懂等特点。

与上诉语言相比,C语言是一种面向过程的语言,介于高级语言与低级语言之间。确切地说,在通用计算机应用层的软件开发部分,C语言与各种高级语言相比没有优势。这是由于各种高级语言不但适合复杂应用逻辑的组织和实现,而且提供了更好的编程环境和应用程序接口。开发者使用高级语言可以快速、高效地开发出各种的应用程序。

C语言的优势在于它有着高效地运行效率,因此虽然在应用程序的开发领域C语言并不占优势,但是在嵌入式Linux的开发中,C语言却占据主导的地位。

事实上,C语言的一些高级技术,在嵌入式Linux的开发中得到很好的发挥和使用。这些技术让C语言这种面向过程、与硬件联系紧密的计算机语言可以完成更复杂的逻辑组织功能。这对于非常重视效率,而又具有特定程序逻辑的嵌入式系统是非常重要的。

3、嵌入式系统开发中C语言特殊语法

在嵌入式的C语言编程中,所使用的语言依然在C语言的范畴内,但是一些用法和传统的C语言编程有一定的差别。

这些特殊的语法包括:使用C语言对目标硬件寄存器的操作问题;不同体系的处理器的大写端问题;内存操作的对齐问题;程序中绝对内存地址的跳转等。

4、嵌入式系统开发中C语言编程的要点

在嵌入式系统中,由于资源非常有限,对程序运行效率的要求比较高。因此,一些在通用计算机系统中不用考虑的性能问题,在嵌入式系统中都需要考虑。在嵌入式开发中,性能是一个核心的问题,也是C语言编程的要点所在。

对于一种程序实现的评价,主要可以从两个方面考虑,一个方面是程序运行的效率,另一个是程序需要的存储器空间。对于前者,主要是指程序运行所需要的处理器空间,与占用系统处理器地时间有关;对于后者,包括程序存储所占用的空间和程序运行所占用的空间,与占用系统ROM和RAM大小有关。由于C语言自身的性质,也使其在嵌入式开发的性能优化以及调试方面具有独特的方法。

本文来源网络版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

猜你喜欢:

干货 | 嵌入式之状态机编程


实用 | 手头上无LCD却又急着开发UI?LCD模拟器了解一下~


如何实现自定义串口通信协议?


在公众号聊天界面回复1024,可获取嵌入式资源;回复 ,可查看文章汇总。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存