首页 > 文章中心 > c语言开发

c语言开发

c语言开发

c语言开发范文第1篇

关键词: C语言;单片机;开发;应用

作为一种智能化工具,单片机的开发在传统上来说更倾向于使用汇编语言,而高级语言一直使用的甚少。但面对目前计算机领域技术发展的最新环境,汇编语言对于单片机开发来说已经不是最适合的编程语言了。从长远来看,将类似于C语言这样的高级计算机语言运用于单片机开发的技术虽然目前尚未成熟,但却是单片机开发技术更为完善和发展的大势所趋。

1 单片机的开发

近代计算机技术发展的突出特点是微电子技术的蓬勃兴起,作为微电子技术发展的代表,单片机逐渐被应用于生活的各个领域。它的出现使近代计算机技术向前迈进了一大步,更从系统分支上使计算机形成了两大系统分支:通用系统和嵌入系统。在现代电子系统中,单片机有其无可比拟的优越性:成本低、芯片体积小、性能好,因此,单片机的适用领域也非常广泛。在我们如今的生活中,单片机技术已成功被渗入到仪器仪表、家用电器、汽车机械等领域,是智能化工具的代表。

1.1 单片机开发的特征

目前单片机的开发主要具有以下特征:“扩展的串行方式、广泛的运用在片程序储存器技术、全盘CMOS化、8位机的主导地位、逐步使用C语言”[1]。上述特征概括性的展示了单片机技术目前的发展状况,其中,C语言的使用已经开始成为单片机技术开发的主要语言。

1.2 单片机开发的语言

应用于单片机开发的语言主要有两种:汇编语言与高级语言,其中高级语言以C语言为代表。汇编语言相较C语言来说具有较高的可控性,使用起来较为简便,因此在单片机开发中运用的较为广泛。随着目前处理器对C语言的运用逐渐增多,结合C语言相较于汇编语言来说具有更强的可移植性的特点,在对处理器内部结构的具体情况不甚清楚的状况下,处理C语言的编译器也可很快上手,因此,C语言比汇编语言更加适用于目前的单片机开发系统。

2 C语言应用于单片机开发

作为编译型语言,C语言兼具高级语言和汇编语言的特点和功能,因其自身强大的可移植性,C语言在单片机的开发应用中有很大的便捷性。C语言主导结构化的程序设计方式,自顶向下展开。使用C语言进行单片机开发,即使没有对单片机的硬件结构的详细了解,编译器也可以按照自顶向下的设计方式使变量储存单元得到合理有效的分配,如此设计出的单片机程序十分可靠易行。

2.1 特点

作为程序设计语言中的一种,C语言以其结构化的特征被广泛运用于程序开发。C语言具有以下特点:功能性强、结构性好、高度的可移植性(不同的机型都可运行,面向用户)。此外,相比于汇编语言,C语言这种编译型程序设计语言具有更强的可读性,这主要是得益于该种语言有功能强大的库函数、高效的编译能力和迅捷简便的运算。

使用C语言进行单片机开发程序的编写,程序开发者不用时时与硬件接触,能够将精力全部集中于思考程序的算法和功能,对于一些琐碎的细节问题可以大而化之不必过于在意,因此C语言比汇编语言更适应一般人的思维习惯,更能节省程序编写的时间。

除了上述两点之外,C语言在自身改进和扩充方面也是十分便捷的,这主要得益于它功能完善的程序结构,此种强大的程序结构很适合用来设计模块化程序。“自顶向下、逐步求精”是结构化程序设计的主要原则,C语言在应用于单片机系统开发时主要采用该种设计方法。这种方法的优势就在于可以使模块功能得到系统化的分工,每个模块有每个模块的任务。

2.2 C语言对单片机的优化

单片机开发目前被广泛应用于工业测控领域中的嵌入式系统,这是利用C语言对单片机系统资源的优化,这样的应用使得单片机开发所面对的工作环境和内容日趋复杂,最繁琐的便是软件的设计。由于工作任务艰巨,设计人员尤其需要考虑控制系统单片机的资源分配(软硬件方面),而单片机系统的资源量却不够充裕。这种不充裕主要体现为结构简单的CPU和片内结构以及缺少程序存储器等方面的资源。

基于以上原因,利用有限的资源做好C语言的程序设计成为单片机开发的关键环节。C语言作为高级计算机语言利弊并存,虽然优点很多,但是不能忽视的是,C语言由于生成代码长,造成占用存储空间大,基本在20%~50%左右,这就要求我们在具体操作的时候要知晓软硬件的任务所属,根据其不同的优势来分配任务,对系统任务也要做到预先分析。因此,当C语言运用于单片机开发时,对程序的优化是需要适当进行的。这不仅是C语言本身的特点所决定的,也是单片机开发的现状所决定的。

2.3 开发环境

以C语言编程的单片机应用开发软件有很多,其中KEILC51

以其完善的性能成为这其中的佼佼者。“这款软件既能编辑仿真,又能编译,它同时支持不同公司的以MCS51为架构的芯片,也支持汇编和C语言的程序设计”[2]。这款软件功能强大,尤其是在程序的调试和仿真软件方面具有卓越的功能,方便学习使用和投入工作。在这种单一却不失灵活的开发环境中,C语言被集成于统一的开发环境,“这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器”[3]。这种单一却不失灵活的开发环境有如下特点:

该软件的工程由三部分组成:源文件、开发工具选项、编程说明。该软件的特点就是一对多(一个工程对应产生一个或N个目标程序),从而构成多个组。

该软件可以满足用户浏览源文件的需求,且方便快速,可以寻找文件,全局搜索文件,在集成开发的环境下也可保证用户功能得以启动。“另外KEILC51可以在编辑器内编辑、调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序”[4]。

2.4 C语言在单片机开发中运用的步骤

C语言在单片机开发中运用的步骤主要有:编写编译源程序和连接转换目标代码。除了这两方面的主要内容之外,当程序设计结束之后,还应该将“源程序转换成在单片机上能运行的HEX件,使单片机能执行编写好的程序”[5]。具体的C语言在单片机开发中的步骤如下所述:

1)安装软件。作为商业软件,我们在KEIL的网站上可以下载到软件的安装包,这个过程很简单,只要跟随软件提示安装即可。首先对安装包进行解压,然后打开SETUP.EXE文件,点击安装,按照提示输入序列号并在询问是否接受版权信息时点击接受按钮,最后按要求完成安装。

2)进行C源文件的创建工作。第一步建立新项目,在新项目中添加以前就有的程序文件或者建立新文件。第二步建立一个新的程序文件,找到新文件的文字编辑窗口,在其中编写程序,即可生成C源文件。

3)编译并调试。编译调试是C语言运用于单片机开发的中间阶段。这一阶段首先要求软件操作者调整到调试模式,然后使用仿真器在源程序的一级进行程序调试,调试的时候要注意对已建立的源文件纠错,同时编译源程序,在使用C51编译器的基础上生成目标文件或浮动的目标码模块。最后,将编译好的模块连接,生成文件。

4)最后进行生成HEX文件的工作。作为整个步骤的最后一步。生成文件对C语言的运用有着非常重要的作用,也使单片机开发在性能、功效上有了现实的意义。进行这一步首先要把目标文件生成HEX文件,该文件的主要功能是烧写芯片。该文件以Intel公司所提出的数据宽度为字节,“文件转换后所生成的HEX文件可以通过编程器写入单片机的程序存储器,也可以用仿真器进行调试”[6]。

3 总结

C语言在单片机开发中的运用目前比较广泛,它使单片机应用于生产生活的时候更为有效,同时极高的开发效率将单片机的使用推广到了生产生活的各个方面。面对目前计算机领域技术发展的最新环境,汇编语言对于单片机开发来说已经不是最适合的程序编写技术了。综上所述,C语言应用于单片机的开发对单片机在未来运用于更广阔的空间具有很大的促进作用。

参考文献:

[1]居水荣,单片机开发系统综述[J].半导体情报,2011(01).

[2]张亚力、贾英布,基于C语言在单片机技术的应用[J].农业网络信息,2011(05).

[3]董蕴宝、潘旭君,浅谈C语言在单片机中的程序设计[J].科学与技术信息,2009(11).

[4]牛余朋,谈谈C语言在单片机开发中的应用[J].电子制作,2009(01)

[5]赵亮、候国锐,单片机C语言编程与实例[M].北京:人民邮电出版社,2009.

[6]范寿康、王宁,单片微型计算机的应用开发技术[M].北京:人民邮电出版社,2009.

作者简介:

c语言开发范文第2篇

关键词:DSP;嵌入式系统;C语言开发

中图分类号:TP311文献标识码:A文章编号:1009-2374 (2010)12-0037-02

随着信息处理技术的飞速发展,DSP在电子信息、通信、软件无线电、自动控制、仪器仪表、信息家电等高科技领域获得了越来越广泛的应用。

以往开发DSP嵌入式产品时首先会想到用控制器的汇编语言编写软件,主要原因有:(1)控制器问世时,只配有相应的汇编语言开发工具,没有相应的高级语言开发工具可供使用;(2)汇编语言生成的程序对应的二进制代码少,执行速度较快;(3)存储器寻址空间和价格的限制。随着技术的发展,上述问题已基本解决。而且用C语言开发DSP嵌入式系统,具有开发周期段、可移植性好、调试和维护方便等优点。目前在许多应用领域,大家已经逐渐开始用C语言开发嵌入式产品。

现在,世界上的DSP芯片有300多种,生产DSP的公司有80多家,主要厂家有TI公司、AD公司、Lucent公司和Motorola公司。TI公司作为DSP生产厂商的代表,品种最多,大约占60%的市场份额。TI公司还推出了与其生产的DSP配套的软件集成开发环境Code Composer,用户可在该环境下用汇编语言和C语言进行软件开发。TMS320VC33作为TI公司第二代芯片的高速低功耗改进型浮点型TMS320VC33,在工业控制领域得到了广泛应用。目前,很少见到DSP系统下的C语言开发资料,本文以TMS320VC33为例,在TI公司提供的软件集成开发环境Code Composer下(版本4.10.36),向大家介绍如何用C语言开发DSP嵌入式系统。

一、TMS320VC33芯片的C语言开发过程

整个过程主要分为以下4个步骤:编辑C语言源程序;编译和链接;在线仿真;固化程序。

在Code Composer下,新建一个工程CSRJ.MAK;新建一个C源代码文件CSRJ.C(其内容为C语言源程序)和一个头文件VC33.H(程序设计中用到的TMS320VC33寄存器的定义),将这两个文件添加进CSRJ.MAK工程。

(二)编译和链接

1.TI公司的COFF文件格式。Code Composer的汇编器和编译器建立的目标文件格式为公共目标文件格式COFF(Common Object File Format)。这种格式易于进行模块化编程,增强程序的可读性和可移植性,为代码段和存储器的管理提供了更有力和灵活的方法,也为高级语言和汇编语言程序的编写提供了极大的便利。

在COFF目标文件格式中,最关键的概念便是段(SECTION)。段是COFF目标文件格式中的最小单位,在存储器中占据连续空间的代码或数据块。一个目标文件中的每一个段都是分开的和各不相同的。所有的段分为两大类:已初始化段和未初始化段。已初始化段包含程序代码或数据,未初始化段为未初始化的数据保留存储空间。C编译器对C程序编译后产生已初始化段(如:.text段、.cinit段)和未初始化段 (如:.bss段)。

2.链接器对段的处理。链接器对段的处理任务有两个:一是将COFF目标文件中的块用来建立程序块和数据块,并将这些块组合成可以被DSP芯片执行的COFF输出模块;二是为各输出块指定存储地址。

链接器有两条命令支持上述任务:MEMORY和SECTIONS。MEMORY命令定义目标系统的存储器各部分命名并指定起始地址和长度;SECTIONS命令用于指定如何组织输入段以及在存储器何处存放输出段。若不用这两个命令,则链接器采用缺省分配算法。推荐使用这两个命令,一般在链接器命令文件 (扩展名为.CMD)中确定。

下面分析一个TMS320VC33芯片的典型CMD文件(文件名为CSRJ.CMD)。

csrj.obj/* 源程序编译后对应的目标文件 */

-l Rts30.lib/* 链接Rts30.lib库*/

-stack 0x800/* 设定系统堆栈2K大小 */

MEMORY /* MEMORY命令规定系统的存储器配置*/

{

STACKRAM: origin = 0x00807000, length = 0x00001000 /* 内部RAM*/

RAM: origin = 0x00800000, length = 0x00007000 /* 内部RAM*/

VECTORS: origin = 0x00809fc1, length = 0x63/* 中断向量表区间*/

}

SECTIONS/* SECTIONS命令规定程序中段的具体分配分配方法*/

{

.text: { } > RAM/* 系统程序存放位置 */

.cinit: { } > RAM/* C初始化表存放位置 */

.bss: { } > RAM /* 未初始化数据存放位置 */

.stack: { } > STACKRAM /* 堆栈存放位置 */

vectors: { } > VECTORS /* 中断向量表存放位置*/

}

程序若要使用中断,可按如下方法在csrj.c中进行定义。

asm(" .sect \"vectors\" "); /* 中断向量表定义*/

asm(" br _c_int01 ");

asm(" br _c_int02 ");

asm(" br _c_int03 ");

asm(" br _c_int04 ");

asm(" br _c_int05 ");

asm(" br _c_int06 ");

asm(" br _c_int07 ");

asm(" br _c_int08 ");

asm(" br _c_int09 ");

asm(" br _c_int10 ");

interrupt void c_intX() /* 中断处理函数,其中X为01~10之一*/

{

中断处理程序语句

}

3.编译选项等设置。(1)添加前述命令文件CSRJ.CMD和库文件RTS30.LIB到CSRJ工程中;(2)选择“Project”下的“Option”选项,在“Compiler”菜单下设置“Target Processor”为“C33”;在“Assembler”菜单下设置“Target Processor”为“C3X”(其它选项根据需要设置);(3)单击界面“Rebuild All”按钮,即可编译链接,生成CSRJ.OUT文件。

(三)在线仿真

将仿真器与目标板连接,打开“Option”菜单下的“Program Load…”选项菜单,选择所有选项后单击界面“Rebuild All”按钮,可编译链接生成CSRJ.OUT文件并将该文件载入;点击界面按钮“Run”,即可仿真运行。

(四)固化程序

TMS320VC33芯片一般外挂FLASH或EPROM来存储固化程序,因此程序固化前要根据外挂的FLASH或EPROM的具体要求,将CSRJ.OUT文件转换成相应格式后写入FLASH或EPROM。

二、DSP系统下的C语言编程应注意的问题

(一)内存依赖关系

为了最大化代码性能,编译器尽可能将指令并行处理。但是要做到这一点,就要确定指令间的关系。如果一条指令需在另一条指令执行后才能执行,那么这两条指令就存在依赖关系。当编译器不能识别指令间是否独立时,就要告诉编译器他们之间的关系,可以通过关键字“restrict”声明变量或优化命令选项来通知编译器。

Code Composer提供了四个优化命令选项:Level 0寄存器级别、Level 1局部级别、Level 2函数级别、Level 3文件级别。从表面看,直接使用Level 3最简捷,可以一步到位。然而在实际中,选择时应根据系统实际情况而定。一般较大的系统软件不宜采用Level 3级优化,因为这样一般容易造成系统死循环。在实际工作中,一般根据系统实时性要求,对于关键处的函数选用Level 2级,对于次要的可以选用Level 1级、Level 0级或不选,这样不会造成系统程序不执行或程序混乱的现象。

(二)变量的声明

函数调用时,尽可能使用全局变量,这样可以减少对变量的堆栈处理,同时也节省了寄存器的使用。

另外,在 Code Composer环境下全局变量的声明和初始化要占用约双倍的存储区域。因此,为了节省资源,对于数据量较大的查表常数数据,要采用特殊方法定义,使其只占用自身大小的存储资源。对表1所示数据的全局定义进行举例。

表1

1.22 3.55 4.67 9.53 8.11

6.97 9.45 7.54 8.16 1.08

若用常规方法如下定义:

biao_xyx[2][5]={1.22,3.55,4.67,9.53,8.11,6.97,9.45,7.54,8.16,1.08};

编译后查看.map文件,发现该数据在.cinit段占用12个字,在.bss段占用了10个字。

若用如下特殊方法定义

asm(" .global _biao_xyx ");

asm(" .sect \".data_chabiao\" ");

asm("_biao_xyx : .float 1.22, 3.55, 4.67, 9.53, 8.11 ");

asm(" .float 6.97, 9.45, 7.54, 8.16, 1.08 ");

extern float biao_xyx[2][3];

编译后查看map文件,发现该数据在只在.data_chabiao段占用了10个字。

(三)多调用TI提供的固有函数和功能函数

TI基于C语言开发提供了很多实际有效的固有函数。如果采用一般C语言自己编的函数,可能会需要更多语句,耗时可能增加。

(四)合理编写循环体

在数据处理过程中,循环体用得较多,处理量较大,坏的编程风格会浪费不必要的时间。一般应注意:在循环体内不要包含调用;循环体不要有过多指令;对于多重循环,如果内层循环体较短,可以考虑打破该循环体,与外部循环结合;将与循环变量无关的判断语句移到循环体外。

(五)注意浮点格式转换

为使硬件获得更高的效率,TMS320VC33芯片采用了不同与IEEE标准的浮点格式。在开发DSP系统通信软件模块时,若采用浮点格式进行数据传输,一定要注意外部系统使用的哪种格式,必要时要进行相应的格式转换。

三、结语

本文以TMS320VC33芯片的开发为例,介绍了用C语言开发DSP嵌入式系统的过程和注意事项,希望能对读者有所帮助。

参考文献

[1]杜普选,马庆龙.实时DSP技术及浮点处理器的应用[M].北京:清华大学出版社,2007.

[2]汪安名,程笠,徐宝根.DSP嵌入式系统开发典型案例[M].北京:人民邮电出版社,2007.

[3]TMS320C3x/C4x Assembly Language Tools User’s Guide[S].Texas Instruments,1997.

c语言开发范文第3篇

关键词 C++语言 跨平台 软件开发 设计实现

中图分类号:TP31 文献标识码:A

20世纪70年代,Bell实验室首先开发了C语言系列,经过十年的演化变迁,80年代C++语言便应运而生。C++语言是C语言的改良进化版本,除了沿用C语言直接运行在机器上,不需要虚拟机作为中介的高效率特点之外,根据软件开发的需求还融入了虚函数、模板、操作符重载等特,因此C++语言得到了特别广泛地应用。C++语言几乎所有的平台下进行使用,然而在不同平台之间的应用时却难以兼容,随着多元化软件系统开发的需求日益增加,如何在软件开发中设计并实现C++语言跨平台的方案将会是今后工作的重点。

跨平台是软件开发中的常用概念,指的是在一个操作平台Windows设计开发的应用程序在另一个操作平台Linux下同样能够使用运行,二者完全兼容。随着当前软件工程的迅猛发展,跨平台的软件开发能够给应用程序本身带来巨大的市场潜力,与此同时,如果应用软件针对不同的CPU提供并测试各自的编译版本,再到各自平台上而产生不同的软件版本,这样的工作量是特别庞大的,因此,跨平台的开发致力于是应用程序几乎不做修改就能运用到不同的平台上。

1跨平台软件开发的影响因素

在C++语言跨平台软件开发过程中,除了各个平台间差异性和兼容性之外,C++语言自身的特性以及编译环境对其都有影响,无形之中加大了跨平台软件开发的难度。

(1)不同平台之间的差异性

软件开发中的编程语言并不能直接地作用于计算机硬件设备,它们需要调用系统的API接口来实现对计算机的控制操作,然而目前许多操作平台的API接口都有自己的标准,并且相互之间差异性较大,例如Windows系统和Unix系统之间的API接口的实现方式和实现原理都不一样,这就在很大程度上阻碍了同一款软件应用于不同平台。在实际开发过程中,操作平台的差异性会贯穿始终,从设计、代码编写到最终测试都会涉及。

(2)编译器的定义不同

编译器的主要功能是根据特定的语言定义将源代码转变成为可执行控制的指令,它显然和C++语言的跨平台应用有着十分巨大的关联,由于语言定义的不同,同一种源代码在不同的编译器中最终得到的控制指令也不尽相同,这也就造成了跨平台软件开发难以开展实现。例如目前Windows平台上的Visual Studio C++编译器和Linux平台上的GCC编译器适用于C++程序代码的编译,然而由于C++的许多语言特性的实现细节都留给了编译器开发商,每个开发商对编译器的定义不同,从而致使C++源代码不能跨平台编译。

(3)编译系统的不同

编译系统可以简单到一个执行编译器和连接器的命令脚本,也可以复杂到整个命令程序的生成。跨平台的软件开发必须要使用一个统一标准的编译系统,这样才能达到对程序代码执行的一致性。例如Windows系统下的Visual Studio和Apple的Interface Builder编译系统完全束缚了跨平台编译系统的开发,这两者之间的编译定义、指令执行都有着十分巨大的差别,往往同一个源代码在各编译系统中得到的编译结果也完全不同,这也就导致跨平台软件开发无从谈起。

2 C++语言跨平台软件开发的设计实现

C++语言跨平台软件开发的实现还存在着一些因素的阻碍,因此,采取何种方法措施清除这些影响因素是实现跨平台软件开发的关键。

(1)避免语言的扩展特性

许多语言为了满足软件开发的需求,往往会增添新的扩展特性,然而新的特性由于缺乏长期的实践性和规范性,经常出现没有被确切测试和精确定义的意外情况,其中常常包含着许多的异常漏洞和非标准内容,另外跨平台开发对于程序的异常十分敏感,稍有瑕疵就难以排除障碍,因此,在实际的软件开发过程中应当使用C++的标准特性而避免使用其扩展特性。

(2)建立跨平台代码库

在跨平台软件开发过程中,通常会遇到某些特性定义一个平台上有而另一个平台上没有的问题,例如Windows平台有树形控件和递归互斥体,DOS下没有线程,Linux下的线程是依据进程来实现,因此这就需要建立跨平台代码库来解决这一问题,通过建立一套完善的跨平台代码库来实现某些特性统一化。

(3)采用脚本文件进行管理

一般来说,软件开发过程中将会编写大量的代码,特别是涉及到跨平台领域时,这一问题就显现地格外严重,因此为了是代码编写更加简单明了,通常使用脚本文件进行管理。利用脚本文件在程序编译之前将相关文件从中剥离出来,并分配到合适的位置上,然后再应用程序的运行过程中,再从配置文件中读取所需要的配置选项,另外在软件开发过程中要尽量隔离平台依赖程度较高的文件格式,而是采用脚本文件来进行可控管理。

总而言之,随着广大用户对软件便利性和实用的渴求,跨平台软件开发设计将会成为软件工程中的一门重要分支,同时也将是今后软件工程发展的方向趋势。

参考文献

c语言开发范文第4篇

关键词:嵌入式软件开发;C语言;课程改革

0.引言

C语言程序设计作为程序设计语言的入门基础课程,是各高校理工科专业中计算机程序设计类课程的普遍选择。作为一门理工科通识课程,其目的在于使学生通过对C语言中各种语言成分的学习,初步认识计算机程序设计及进行程序设计的过程,掌握基本的程序设计思想与方法。作为通识类课程,目前各院校通常将该门课程的教学安排在一年级,每周3-4学时(含实验),讲授内容主要包含C语言的数据类型与表达式、程序结构、函数、指针、链表、文件等。在教学实践中,我们发现,由于学时限制或学生接受程度等原因,常常需要对部分教学内容(如多级指针、文件操作、位操作等)进行削减,无形中降低了课程内容的深度与广度。作为通识类课程,这样的削减影响不太大。而对于信息类专业(计算机、电子、自动化等)而言,仅掌握通识教育中所讲授的部分是远远不够的。

嵌入式系统开发是信息类专业的一个主要发展方向。进入21世纪以来,融合先进的计算机技术、半导体技术、电子技术及各行业领域具体应用的嵌入式系统,已在工业控制、交通管理、信息家电、智能家居、环境监测、电子商务、机器人等领域得到了广泛应用。

一般说来,嵌入式系统是指以应用为中心,以计算机技术为基础,软硬件可剪裁,适用于心用领域,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。由于在成本、功耗、体积等方面的限制,对嵌入式系统中的软件开发提出了更高的要求。嵌入式软件开发是在特定的硬件平台上进行,需要使用具有较强硬件操作能力的编程语言。由于C语言是具备了这一特质的高级语言,成为嵌入式系统开发的最佳选择。

调查显示,在信息类专业中,电子类本科专业教学计划与嵌入式系统教学要求相脱节,电子类本科学生的软件基础也较弱。在这样的背景下,对C语言程序设计课程进行相应改革,以适应嵌入式系统开发人才培养的需要是十分必要的。

1.嵌入式软件开发对C语言的需求

在适用于嵌入式系统开发的3类主要语言中,C语言占有超过70%的份额。开发嵌入式软件,除掌握C语言的基础知识和基本技能外,主要还存在以下几方面的要求:

1)指针。

指针作为C语言的主要特点,其使用十分灵活,因而也很难完全掌握。它可用于指向不同类型的普通变量、数组、字符串,甚至函数。在嵌入式软件开发中对各类不同指针(数组指针、指针数组、指向结构体的指针、多级指针)的使用十分普遍。因此,指针相关内容的教学必须足够深入。

2)位操作。

C语言有别于其他高级语言的一个特点是可直接对硬件进行操作。指针和位操作是这一特点得以实现的工具。通过6种位操作符,可直接对内存、寄存器或I/O端口的字节进行测试、置换或移位处理。熟练掌握位操作符的使用,是进行嵌入式软件开发必不可少的重要基础。在一些国内高校普遍选用的经典C语言教材(如文献[4])中,由于定位于普适教育,并未包含位操作部分的内容。

3)文件读写。

嵌入式系统中“一切皆文件”,系统的运行以文件读/写方式进行操作。理解文件系统的构成、掌握基本的文件操作方法也是进行嵌入式软件开发必须掌握的技能。

4)宏定义。

在嵌入式软件中使用宏定义,不仅可防止代码出错,提高可移植性、可读性,而且是产生内嵌代码的唯一方法,可用于替代函数调用,从而达到嵌入式系统性能要求。

以上4个方面的内容,在通识型的C语言课程中,由于课时和学生程度等原因,都不能进行针对性的特别训练。学生在进入嵌入式系统开发阶段后,显然会成为程序设计知识方面的短板。

2.课程改革思路

基于上一节的认识,我们对C语言程序设计课程的教学提出了下面的调整思路。

2.1课程设置

作为通识课程的C语言程序设计通常安排在一年级或二年级上学期完成。信息类专业的学生在大学三年级开始进入嵌入式系统开发相关课程时,不可避免地对已学过的C语言的知识会有一定程度的遗忘。

针对嵌入式系统开发的要求,考虑将C语言程序设计课程划分为2个阶段。第1阶段为c语言程序设计基础,每周3学时,可在大学一年级下学期或二年级上学期开设;第2阶段为嵌入式系统C语言程序设计,每周2学时,作为嵌入式系统开发方向的选修课,可在大学三年级上与其他嵌入式系统相关课程,如嵌入式系统、嵌入式操作系统一起开设。这样设置一方面满足了在低年级完成程序设计类通识课程的要求,使学生不必过早接触C语言中较为深入、复杂的部分;另一方面,通过将与嵌入式软件开发密切相关的知识适当推后,确保了嵌入式系统开发各门课程问的知识联系。

2.2教学内容的划分

由于将课程划分为基础部分和面向嵌入式系统开发的提高部分,则可将C语言的一般基础(基本语句、控制结构、数组、函数、指针、结构体)划人C语言程序设计基础课程中,通过这部分的学习使学生掌握C语言的基本理论知识并具备基本的编程技能,达到程序设计类课程的通识教育水平。

对于与嵌入式开发密切相关的知识,将在嵌入式系统C语言程序设计课程中讲授,主要包括:宏定义、位操作、文件操作和复杂指针运用。这部分内容的教学可围绕嵌入式软件开发实例展开,深入讲解各知识点的应用。通过嵌入式系统C语言程序设计课程的学习,学生应更深入地理解和领会C语言的精华思想,同时具备基于嵌入式平台进行软件开发的能力。

2.3实验内容

任何程序设计语言的学习都离不开大量的实践,实验是学习C语言的重要组成部分。根据前面对课程的划分,C语言程序设计基础课程中可开设的实验项目如表1所示。

实验1在学习了C语言的数据类型、运算符、表达式和输入/输出之后进行,目的在于使学生熟悉C语言的编译环境,逐步认识C语言语句的基本构成。实验2涵盖了程序的3种基本结构,便于学生统一认识关系、逻辑运算和程序结构。实验3-6分别对应于数组、函数、指针和结构体各章节的内容,重点掌握这些语言成分的定义及使用方法。实验7将综合运用本课程中的知识,完成一个较小的、具备一定功能的小型软件的开发。

嵌入式系统C语言程序设计课程的实验内容则围绕一个嵌入式软件开发实例展开,实例由任课教师选定。根据所选实例,实验内容可包含以下项目(如表2所示)。

实验1的目的在于使学生熟悉嵌入式系统的软件开发环境,主要介绍嵌入式Linux下的c语言编译工具。实验2-5则根据所选实例,选取特定的模块有针对性地进行文件操作、宏定义、位运算及复杂指针运用方面的练习。

2.4教学方法与手段的调整

毋庸讳言,由于种种因素的影响,当前各高校中普遍存在学风怠惰现象,相当一部分学生学习积极性较低下。如何提升学生对所学课程的兴趣,是每一名教师都要面对的问题。在多年的C语言程序设计课程教学过程中,我们接到学生的反馈意见最多的是“上课听得懂,下来不会自己编程”。究其原因,大概不外乎两种:一是学生尽管在课堂上听了课,课下并未及时回顾整理并主动思考;二是在理论课堂上一讲到底,学生要等到实验课时才真正动手体会讲过的知识,往往不能及时动手练习,进而影响消化吸收。针对第一种情况,我们采取了每一堂课以提问开始的方式,提问内容主要是对之前所学内容的回顾和脉络梳理,同时还留出了一定的课堂练习时间,这样能在一定程度上起到督促学生课下及时复习的作用,也便于教师及时了解学生的知识掌握情况。而对于第二种原因,可尝试采取将理论课堂搬至机房的方式,在完成一个知识点的讲授后布置即时练习,让学生能及时体验和理解。但当机房容量有限而班级较大时,并不适用,这样的情形如何处理?需要我们进一步思考。

c语言开发范文第5篇

关键词:C语言;程序设计;软件开发;教学策略

随着科学技术的不断发展,计算机逐渐应用于各个行业和领域,并给人们的生活和生产都带来了较大的影响。C语言是计算机程序设计和开发的重要语言,C语言涵盖了计算机工程学、信息学以及语言学等多种科目的知识,因此也使得这门语言学习难度有所提升。目前,随着我国对计算机技术重视程度的不断提升,C语言已经成为高职、中职院校所开设的重要计算机学科,但是由于C语言教学内容的抽象性,使得实际教学状况并不乐观,如何提升C语言教学质量,是当前亟待需要解决的重要问题。

一、中职C语言教学的主要影响因素

(一)C语言知识的抽象性

C语言同其他教育教学科目来说存在较大的区别,C语言是一种应用性和实践性相对加强的科目,C语言强调实用性,即C语言的相关学习知识对于软件和程序的开发都有着非常重要的作用。然而C语言自身所存在的抽象性,却成为影响学生学习质量的关键因素。其他项目,如语文、英语等科目,教学内容较为现实,学生学习过程中能够借助联想和知识的迁移实现对新知识的了解和掌握,从而确保实际教学质量。但C语言却截然不同,C语言教学内容多为计算机术语,C语言的概念、原理以及规则较为固定且相对繁多,语句灵活但是存在一定的语法限制,这就使得学生必须按照教材内容进行记忆和掌握,最终导致课堂教学氛围较为枯燥,影响到学生的学习兴趣,课堂教学直来那个受到严重约束。

(二)课时数量严重不足

C语言对于计算机软件的开发具有非常重要的意义,加强对C语言的掌握和学习,对于计算机专业的学生是非常重要的。然而就当前我国中职院校来说,C语言课程的重视程度还存在一定的不足,学期内对C语言所安排的课时数量有所欠缺,同其他重要科目相比有很大差距。

(三)学生个人素质问题

就中职院校学生来说,在个人素质问题也存在一定的不足。中职院校是中等职业教育院校,主要负责为学生提供技术学习环境,使学生能够掌握和学习一门技术,为学生的未来生活和发展提供一定的保障。中职院校的学生一般都是初中毕业生,且多数学生学习成绩较差,理解能力和语言表达能力上也存在一定的缺陷,在C语言教学过程中这类问题也表现的更为明显。同时,中职院校学生所处年龄段也较为特殊,叛逆心理较为严重,由于C语言课堂教学较为枯燥,导致学生的学习兴趣较为低下,也造成了很大的影响。

二、中职C语言教学的有效策略

(一)加强C语言教材研究,制定合理的教学计划

C语言是专门针对于计算机软件开发和程序设计所开设的一门基础课程,C语言对于计算机专业的学生来说具有非常重要的意义,C语言学习质量的好坏将直接影响到学生的未来发展。C语言同其他教学科目相比存在很大的特殊性,对此老师在实际教学过程中,首先要做的是加强对C语言课程的理解,重视对C语言教材的研究,制定合理的教学计划来提升C语言的实际教学水平。C语言同其他科目相比,C语言最为突出的特点在于可移植性和高效性。C语言能够在很少改动的情况下实现内容的转移,并且适用于其他编写程序,为此,老师必须要重视对C语言的理解,而不能够仅仅按照教材内容和顺序开展教学,而是通过知识的迁移来带领学生开展学习活动,减少教学压力的同时,提高教育教学质量。

(二)提高C语言重视力度,保证教学课时

对于多数中职院校来说,由于对C语言缺乏足够的重视,导致C语言课时数量严重不足,而挤占课时的现象也较为严重,为保证C语言教学质量,满足学生的未来发展需求,必须要正确看待C语言课程,提高C语言重视力度,保证C语言的教学课时。中职院校必须要从学生的角度来正确看待C语言,以教学难度制定课时数量,给C语言的教学课时进行合理的配置,以缓解教师的实际教学压力,并且有效保证学生的学习质量。

(三)重视教学方法的运用,提高学生的自主学习能力

教学方法对于现代教育教学工作的开展具有非常重要的意义,教学方法的合理运用,不但能够提升学生对C语言的学习兴趣,对于教育教学质量的提升也有着非常重要的作用。多媒体技术的普及为现代教育教学提供了良好的途径和手段,在日常教学过程中我们应该重视对多媒体设备的运用,借助网络技术实现对教学内容的补充和完善,并且借助视频教学来提升课堂教学气氛。

总结:C语言教学作为中职计算机教学的重要科目,对于学生的发展有着非常重要的意义,加强对C语言的学习和掌握,是计算机程序和软件开发的重要保证。就当前我国中职C语言教学来说存在很大问题,在实际教学过程中必须要重视对优秀教学方法的引入,提高对C语言教学重视,合理配置教学课时,实现对C语言教学质量的有效提升,为我国社会主义经济建设提供更多优秀的人才。

参考文献:

[1] 刘海峰.以培养实践能力为导向的“c语言”教学方法探讨[J]. 科技经济市场. 2008(12)

相关期刊更多

CT理论与应用研究

统计源期刊 审核时间1-3个月

中国地震局

忻州师范学院学报

省级期刊 审核时间1个月内

忻州师范学院

徐州师范大学学报

省级期刊 审核时间1个月内

江苏省教育厅