嵌入式DSP系统C语言硬件编程技术探讨

2016-03-17 06:00王中秀全奎旺沈阳理工大学辽宁沈阳100168
科技传播 2016年2期
关键词:C语言

徐 哲,王中秀,全奎旺沈阳理工大学,辽宁沈阳 100168



嵌入式DSP系统C语言硬件编程技术探讨

徐哲,王中秀,全奎旺
沈阳理工大学,辽宁沈阳100168

摘要随着科技的不断发展,嵌入式系统被广泛应用于各处,现阶段,最具有代表性的嵌入式系统为DSP。因此,本文将从嵌入式DSP系统基本硬件入手,结合C语言程序最常用调试方法与硬件编程技术,并研究将C语言转化为DSP代码的过程。

关键词嵌入式DSP系统;C语言;硬件编程技术

以便获得适用于人们使用的信号形式,而嵌入式DSP系统则是将DSP作为中央处理器,将硬件与软件组合在一起,该系统体积较小,可以很快完成信号处理,其算法也较为灵活,性能也很稳定,所以在仪器研制与电子产品中应用较多。C语言是嵌入式DSP系统的重要组成部分,其硬件编程技术也是现代研究重点,因此,有必要了解C语言硬件程序开发、调试以及代码转化。

1 嵌入式DSP系统基本硬件

1.1DSP基本结构

一般来讲,嵌入式DSP系统硬件编制过程是有一定规律可循的,通常是根据时间进行排列,其主要构成部分有以下几种:A/D转换、DSP芯片、D/A转换、通信板块以及显示板块,此外还有一些辅助板块,如电源管理等[1]。

1.2DSP芯片内部结构

尽管DSP芯片内部结构较为复杂,但开发者并不需要全面了解其结构,只要简单了解即可,以便在编程时使用。在DSP芯片中主要由两部分构成,一部分是以中央处理器为主的内核,另一部分是以外部辅助设备为主的外部设备。将各个模块组合在一起,就成为了嵌入式DSP系统,通常将这一结构称之为哈弗结构。在该系统中,数据存储与程序存储具有独立性,与两者对应的硬件总线也就两种。外部设备主要指芯片以外的硬件设备,其功能也多种多样,经过相互配合以后就可以使这些应用功能得以完善,之所以其功能能够完善主要在于系统中应用了这些外部设备,使得芯片运行速度得以显著提升,DSP功能也随之增强。

1.3DSP芯片存储器图及其编制方式

要编写DSP程序就一定要了解DSP芯片存储器及其编制方式,它们都有助于DSP编程。DSP存储空间有两种,一种是RAM,另一种是ROM,这些存储方式不仅有数据空间与程序空间,还有I/O空间,而I/O空间又由数据空间与程序空间两部分构成,且它们是相互独立的,两者的编制是相同的,唯一不同的是两者的地址代表不同,程序空间的每个地址代表的是一个字节,而存储空间每个地址所代表的则是16bit字[2]。

2 C语言硬件编程

现阶段,硬件编程最常用的编程方式有3种,分别为C语言、汇编语言以及可视化编程[3]。其中与DSP代码最为相似的应汇编语言,但它也有很多缺陷存在,最大的不足就是难以被人们理解,由于芯片系列的不同也就意味着需要使用不同的汇编指令,由此开发而来的程序更是无法被应用到各处,可见,汇编语言只能被应用于部分程序编写中,并不能应用于硬件控制大量使用中。而可视化编程则是最近几年才能研发并使用的编程模式,一般用于大规模程序开发中,要学习该编程依然存在很大困难,并不适用于初学者使用。C语言则综合了以上两种编程方式的优缺点,灵活性较好,也就意味着它能够被应用到多种硬件编程中,这与C语言自身特点有很大关系。C语言属于高级语言,便于初学者学习使用,其编程模式为从上至下,可移植性也很强,加之其较为灵活更是方便读写硬件寄存器中的数值。

3 C语言程序最常用的调试方法

在CCS系统中运行C语言程序一定要经过程序调试才可以,主要步骤由以下几部分构成:第一,将编制好的可执行文件调入进来;第二,将部分程序分成几段,一边运行程序一边观察各个断点值;第三,由于这些值一般分布在存储器中,就要细致分析该数据,并多次重复进行这项工作,直至程序预期功能完成。

C语言程序最常用的调试方法有两种:首先,通过Watch Window查看C语言程序变量。在利用CCS时,可以通过点击其集成开发环境中的View-Watch Window开启观察窗,其中的第一个标签就是watch locals,这里就可以将程序光标所在位置中的函数变量名称与数值显示出来;其次,借助Memory Window了解I/O空间中寄存器值。虽然Watch Window也可以看到变量,但却看不到I/O空间,如果要观察值,就需要点击Viewmemory,当窗口弹出以后,就可以选择满足自身要求的存储空间地址,选定以后点击OK便会弹出用于观看存储空间的小窗口,一旦值发生变化,就会以红色字体方式显示出来。

4 将C语言转化为DSP代码的过程

对于C语言程序来说,它是一种较为通用的语言,能够被应用到各种处理器中,但在处理器运行期间一定要有规定代码才可以保证芯片始终处于正常运行状态,所以,但C语言编程完成以后,应实现转码,但转换过程应满足规定软件才可以。如在DSP系统中多用CCS转换代码,CCS是软件开发者最常用的软件。在转换DSP应用时,软件开发者需要利用集成开放环境生成项目,该项目一般由以下几部分构成,主要有头文件、库文件以及源文件等内容,后两种文件与其他编程软件中所包括的文件相同。如DSP基本历程多数都与源文件有一定关系,而以结构语句为代表的程序具体语句则以头文件为主。库文件属于厂家自定义程序,是厂家依照自己所生产的芯片硬件性能编制而成的,以TMs32oC55xDSp芯片为例,厂家参照芯片型号制定出了库文件,由于其处于DSP程序中,就需要将DSP作为开头,并将rts55x. ilb库文件包括在内,这主要是由于其已经成为连接C语言与DSP代码的重要方式,如在CCS文件中原本就涵盖库文件,在编程时只需在开头使用即可,一般来讲,main()为C语言程序默认入口,在编写DSP程序阶段也一定要将该库文件囊括进来,这都是为了满足rts55x. ilb所制定的要求。而链接文件则是由开发者自行编写的文件,其作用相对较为独特,一般由定位程序块与数据块两部分构成[4]。但编写链接文件十分困难,不仅需要掌握一定的软件知识,还要对硬件知识有全面了解,这样一来也就提升了对开发者能力的需求。

将C语言转化为DSP代码的过程可以参照以下内容:1)在源文件中需要由编辑器与汇编器应用其中完成编译,并构建属于两者的“中间文件”;2)在中间文件处理后,新建.out与.map文件;3)利用CCS将.out下载并存储在DSP芯片中,用于仿真测试;4)仿真测试完成后借助响应软件将.out转化为.hex。

5 结论

通过以上研究了解到,C语言十分灵活,所应用范围也很广,之所以能够被应用到各处主要是由于C语言不仅具有灵活性,还具有便于读取与操作的特点。本文研究了嵌入式DSP系统与C语言硬件编程技术与过程,希望能为相关人士带来有效参考,进一步开发与利用C语言硬件编程技术。

参考文献

[1]宋敏.基于DSP和嵌入式平台的在线电能质量监测系统设计[D].上海交通大学,2012.

[2]金丽娟.基于DSP的嵌入式PLC运动控制模块的研究与实现[D].杭州电子科技大学,2013.

[3]张凯.嵌入式车牌定位与分割系统的设计与实现[D].北京邮电大学,2011.

[4]佟吉钢.高性能嵌入式系统技术及应用的若干问题研究[D].南开大学,2010.

作者简介:徐哲,所在院校为沈阳理工大学,研究方向为自动化DSP就是利用数字形式完成信号采集、变换等工作,

中图分类号TP39

文献标识码A

文章编号1674-6708(2015)155-0153-02

猜你喜欢
C语言
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
基于C语言的计算机软件编程
C语言程序设计课程教学与学科专业相结合的探索
《C语言程序设计》翻转课堂教学改革要点
浅谈基于C语言的计算机软件程序设计
高职高专院校C语言程序设计教学改革探索
基于C语言的学生成绩管理系统的设计与实现
基于C语言的常用排序算法比较研究
论子函数在C语言数据格式输出中的应用