智能手机中基于C语言嵌入式开发的应用

时间:2022-08-03 05:45:15

智能手机中基于C语言嵌入式开发的应用

摘 要编程语言和人类语言类似,目的都要实现沟通,一是人与机器,一是人与人。本文主要介绍C语言的编程应用和嵌入式软件开发的基本概念和组成,以及大概包含的相关内容,如何开发的基本流程等等,目的是为了抛砖引玉,交流C语言的编程内容和如何入手嵌入式软件开发。

【关键词】智能手机 C语言 嵌入式开发

C语言是面向过程的程序设计语言,能够与Linux和MiniGUI进行良好的结合,从而做到模拟实现面向对象程序的编程;嵌入式系统可以增强软件运行的稳定性、提高软件指令执行效率并优化用户使用界面,当前的大部分嵌入式系统都是基于Linux操作系统进行延伸。因此在智能手机的应用开发中C语言与嵌入式有着良好的关联性,在其开发过程中可以集两者的优点创建更加简洁高效的编程和应用。

1 嵌入式开发的核心竞争力

根据其操作系统,其中有OS的,按照是否开源,是否是通用的、常见的、还是私有的划分为:开源的、常见的、通用的嵌入式操作系统;和不等价的私有的嵌入式操作系统。原因是嵌入式开发从硬到软,很难说有一种具体的技术或者技术方向是嵌入式开发的核心。嵌入式开发的核心竞争力是“整合”。整合的前提是有充分的知识面和技术前瞻性。

首先,嵌入式开发的技术之多决定了需要有过滤的能力,而过滤的前提是有足够的知识面。一个基层的工程师投入在一个既定的项目中,其实solution可能会有很多,最关键的是找到哪些技术的最佳组合,然后让这个项目”又好又快“地完成。在嵌入式开发管理过程中,制定一个关键项目时,既要站在工业界的前沿,又要把控好关键的技术群,实际上就是一种“整合”的能力。所以,虽然做不了“全栈”,但不排斥尽可能多地了解。

2 C语言、C++和C#

按时间顺序说一说这三门语言的基本吧,这样比较一下就能知道他们的区别了。

2.1 C语言

C语言可以看成是“高级的汇编”语言。C语言的源代码基本上可以非常容易地对应到汇编代码,而且可以不需要什么运行时环境的支持。C的特点,简单容易编译,灵活贴近底层。所以一直到现在,一些需要直接和硬件打交道的软件都还是用C语言写的,比如(但不限于)Linux Kernel和一些嵌入式领域。

2.2 C++语言

C++早期是基于C的,C++的目标是提高编程人员的生产率,哪怕代价是增加编译器的复杂度。面向对象只是C++的一部分,现代的C++的目标是支持多种编程范型,同时并不会离硬件太远。所以C++是非常适合写一些基础架构级软件的,比如编译器,GUI库等等。

2.3 C#以及.net框架

managed code的崛起,与之对应的就是C/C++这种native code的衰落。C#就是微软想要复制Java的成功。C#的特点就是:抽象层次高且基本只有一种(面向对象的),运行时支持丰富(垃圾回收等),类库丰富。

3 智能手机中基于C语言的嵌入式开发

C语言主要解决的问题是,不同机器平台上的汇编语言指令,功能相似但写法不一样。所以,C语言的发明者的想法是,只要把这些不同的汇编语言的共同点提取出来,用一种相同的表达方式来描述这些共同点,那么程序只需要写一遍,就可以在不同的机器上去编译了。于是C语言大部分的工作是在汇编语言的层面上做抽象。如果要选最能体现上述思路的C语言作品,首选 CURL 和 openssl 。这也是 C语言最适合的应用场合。

嵌入式系统没有特别明确的定义,一般都是指区别于一般PC的民用操作系统,用在专用的设备内部运行的。所以像智能手机、平板电脑这些,可以算,也可以不算。实际上,在软件开发行业,嵌入式系统开发,通常是指嵌入式实时操作系统开发。实时操作系统也就是RTOS。当然,现在的安卓或iOS开发也算嵌入式,但肯定还不是RTOS。一般来说原始汇编语言就是二进制指令格式的转写,与处理器的指令集一一对应,更换处理器就需要重写。并且因为一些技术上的问题,处理器的指令集与人解决问题的思路完全不一致,例如一个加法指令根据不同类型有没有符号位在哪里取数据存哪里去有一堆的变种,所以原始汇编语言不是一个真正具有生产力的语言。人们在汇编语言的基础上,发明了很多高层语言,C语言就是其中最为成功的一个。C语言解决了汇编语言所有的问题,例如处理器的指令集不同。不论何种处理器何种指令集,在C语言里面需要将a和b两个数相加只需要写成a+b就可以了。也无需考虑类型、存储位置带来的指令的变化。简单说就是C语言大大的抽象了汇编语言,通过C语言的编译器将C语言代码翻译成处理器指令集所支持的代码形式,这一过程被称之为编译。

若开发手机平台apk,尤其是互联网应用,全部调用系统API就不算是嵌入式开发。但是必须有人从事底层驱动,内核的移植,裁剪,这方面的方法遇到的问题,又是嵌入式开发的方法。另外手机现在还不能够用来有效率的用来做开发工具,应用基本靠交叉编译,这也是和一般嵌入式系统相同的特点。

4 结语

理论上C语言能开发出几乎所有软件。但是,数字信息设备发展了几十年,留下的大量的解决方案。C后产生的各种新语言和第三方库如此丰富,这已经是巨大的财富。在今后智能手机的应用开发中基于C语言的嵌入式开发将大幅减少手机应用的编程工作所需时间,提高开发效率,也是推动智能手机应用开发的重要策略。

参考文献

[1]景香芝.基于C语言嵌入式开发在智能手机中的应用探析[J].制造业自动化,2012,34(04):145-146,150.

[2]刘烨.智能手机中基于C语言嵌入式开发的应用探析[J].湖南农机,2014(02):84-84,98.

[3]罗莎.基于C语言嵌人式开发技术在智能手机中的应用[J].计算机光盘软件与应用,2011(22):170-171.

[4]倪建新.基于C语言的游戏开发教学平台的设计与实现[J].电脑知识与技术,2012(35):8401-8403.

[5]芳.基于嵌入式Linux的智能手机应用系统研究[D].长沙理工大学,2006.

[6]李从宇,王宝光.嵌入式DSP系统C语言硬件编程技术[J].测控技术,2007,26(04):68-70.

作者简介

赵林(1978-)男,河北省保定市人。硕士研究生。高级工程师。研究方向为计算机技术。

作者单位

广西电力职业技术学院 广西壮族自治区南宁市 530001

上一篇:通信网络优化及其安全 下一篇:高校图书馆社会化服务探析