当前位置:论文网 > 论文宝库 > 信息科技类 > 软件开发论文 > 正文

分析基于C语言的高校嵌入式编程

来源:UC论文网2016-01-02 21:30

摘要:

摘 要 :与通过计算机系统相比,嵌入式系统所执行的,是带有某种特定要求的、预先定义的任务,对于计算机操作智能化有着较高的要求。在这种情况下,传统汇编语言无法有效满足

摘 要:与通过计算机系统相比,嵌入式系统所执行的,是带有某种特定要求的、预先定义的任务,对于计算机操作智能化有着较高的要求。在这种情况下,传统汇编语言无法有效满足系统编程需要,应该采用C语言进行编程工作。本文结合嵌入式系统的特点,对基于C语言的高校嵌入式系统编程进行了简要分析。

关键词:C语言 嵌入式系统 编程
 

前言:C语言是一种应用极为广泛的计算机编程语言,提供了大量的低级处理功能,同时也保持有良好的跨平台特性,利用以标准规格写出的C语言程序,能够在许多电脑上进行编译工作,甚至包含了嵌入式处理器或者超级电脑等作业平台。在嵌入式系统编程中,C语言是首选开发工具,有着非常重要的作用。
1 嵌入式系统概述
嵌入式系统(Embedded System),属于一种完全嵌入到受控器件内部,为了实现特定功能而设计的专用计算机系统,一般是针对各种设备进行控制和监测。与通用计算机系统相比,嵌入式系统的软件和硬件能够根据实际需求进行自由裁剪,从而满足计算机系统对于功能、体积、成本等方面的不同需求。嵌入式系统具有一些非常显著的特点,一是系统的内核较传统计算机系统要小得多,系统资源有限;二是专用性强,软硬件的结合紧密,多是针对硬件进行软件系统的移植,对于不同的任务,往往需要对系统进行大的更改;三是系统精简,没有对系统软件和应用软件进行明显区分,功能也相对简单,能够对成本和安全进行有效控制;四是实时性强,软件代码的质量和可靠性较高。
2 基于C语言的嵌入式系统编程
  利用C语言进行嵌入式系统编程,有着非常显著的优势,不仅调试方便,而且模块化的开发方式使得C语言开发出的程序模块能够直接应用于其他项目,有利于实现多人协同编程。
  2.1数据指针内存操作
  在C语言中,动态内存的分配与释放是由malloc和free标准函数库实现的,前者从系统空闲内存中,对合适的内存块进行分配,后者则完成内存块的回收,这两个函数的动作需要系统内核的支持。在嵌入式系统编程中,一般都会要求在特定的内存单元中进行读写,借助C语言指针的绝对地址单元内容读写能力,应用数据指针,能够实现对于内存的直接操作,可以分为几种不同的形式:一是将系统I/O芯片定位在CPU存储空间,而非特定的I/O空间,寄存器直接对应特定地址;二是在两个CPU之间,以RAM端口实现通信,CPU需要在双端口RAM的特定单元,进行相关内容的书写,以对方CPU产生中断;三是对FLASH或者ROM存储单元中的汉字和字符字模进行读取。在使用绝对地址指针时,需要注意,指针自增自减操作的结果,主要取决于其所指向的数据类别。在指针直接操作内存时,应该明确认识到,CPU是以字节作为单位编址,C语言指针以指向数据类型长度进行自增自减,这也是提升操作成功率的关键所在。
  2.2函数指针操作内存
  在使用函数指针操作内存时,为了确保函数的合理使用,应该把握好三个方面的内容:其一,在C语言中,函数名是非常关键的,直接对应函数生成的指令代码在内存中的地址,因此,可以直接赋予指向函数的指针;其二,系统对函数的调用,实际上等同于"调转指令+参数传递处理+回归位置入栈",从本质上讲,最为核心的操作,是将函数所生成的目标代码的首地址,赋予CPU的PC寄存器;其三,由于函数的调用从本质上可以看做是跳转到某个地址单元的代码区执行,因此,可以对一个本不存在的函数实体进行调用。
  2.3动态申请内存
  在嵌入式系统编程中,内存的动态分配、释放以及Flash存储器管理是比较关键的部分,应该得到足够的重视。与一般的通用计算机系统相比,嵌入式系统的动态内存申请更加严格,主要是因为系统的内存空间较小,也许不经意的内存泄露,就可能会导致系统的崩溃。动态内存的申请方式可以采用较大的数组替换,数组不能越界访问。若采用动态申请,则应该对申请是否成功进行判断。之前提到,在C语言中,动态内存的分配和释放由malloc和free标准函数库实现,因此必须保证程序中malloc和free成对出现,坚持谁申请谁释放的原则,在调用处申请内存,在保证malloc和free成对出现的同时,将其传入function函数。
3 结语
在计算机技术不断发展的带动下,嵌入式系统在多个行业和领域中得到了日益广泛的应用,发挥着不容忽视的作用。伴随着系统对于智能化需求的不断增大,汇编语言在嵌入式系统编程中遇到了许多的问题,无法适应实际需要。对此,采用C语言对嵌入式系统进行编程,对系统程序进行完善,使得其能够更好地服务大众,是编程人员应该重点考虑和研究的问题。
参考文献:
[1]张波,耿在丹,苏国平.基于C语言的嵌入式系统编程[J].河南科技,2008,(2):30-31.
[2]甄华.基于ARM嵌入式系统的C语言编程分析[J].哈尔滨职业技术学院学报,2015,(1):148-149.

核心期刊推荐