网站首页  词典首页

请输入您要查询的论文:

 

标题 C语言在DSP嵌入式系统中的应用与开发
范文

    殷莉 温赟

    

    摘要:当前的计算机程序应用大都以嵌入式系统为主,且是以DSP核心构建而成的。这一系统的应用与开发模式主要是采用了C语言汇编的方法,依托DSP系统的存在周期和开发周期对其进行移植性的调整与提升,进而降低嵌入式系统的缺陷,提升嵌入式系统的稳定性。所以,很多DSP开发人员对于C语言的应用较为广泛,且开发的系统稳定性和运算与命令执行效率较高。研究将针对当前C语言在DSP嵌入式系统中的开发模式和应用方法展开研究,并且会提出相应的问题和解决问题的策略与方法,进而实现对系统的完整构建。同时,还会从现实应用角度对其进行C语言DSP嵌入式系统开发过程中的注意事项说明,以此降低技术人员在后期应用C语言开发DSP嵌入式系统过程中发生问题的概率。

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

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

    文章编号:1009-3044(2020)29-0204-02

    1 引言

    随着当今时代的发展,信息技术得到了飞速的进步,且快速渗透到了人们的日常生活中,成为人们生活与工作的重要组成部分。在这一模式下,社会的发展对于信息技术的依赖程度更大,且信息技术本身的发展也更加多元化与理想化。在这一背景下,DSP技术被广泛应用于其中,主要领域有:电子通信行业、无线电软件应用行業、仪器仪表行业、自动控制行业、人工智能行业等。这就为当今时代背景下的DSP技术提供了深度发展的机会,同时也为DSP嵌入式产品的应用带来了全新的发展空间。当前人们对DSP嵌入式产品的应用主要来自以下几种原因:第一是自从控制器被发明之后,仅仅配备了语言编辑功能的软件开发功能,并没有配备高级语言的应用功能;第二是汇编语言程序生成是二进制,其代码少,且运行和执行速度飞快;第三是介于储存器对价格和空间的限制,无法对其进行广泛的应用。所以,在这一背景下,DSP嵌入式产品成为其中的佼佼者,并且有效解决了上述问题。在当今,C语言在DSP嵌入式系统中的应用具备较大的优势:首先是可移植性良好且开发周期可控;第二是调试和后期检测与维护工作开展较为方便。介于以上两大特色,大家对于C语言在嵌入式产品中的应用和开发更加热衷。

    2 C语言在TMS320VC33芯片的开发过程

    在对其进行开发的过程中,需要结合下文中叙述的四个步骤开展实施:首先是通过对C语言的编辑完成源程序;其次是完成好编译工作,设计好链接;然后是通过在线仿真对其进行检测;最后是利用固化程序整个系统的设计与开发。

    2.1 编辑源代码

    在对源代码进行编辑的过程中,需要结合Code Composer的背景对其进行工程的建设,以此实现对CSRJ.MAK的构建。在此,需要构建一个C源代码文件,将其设计为CSRJ.C,具体内容为C语言源程序。另外,还需要筹建一个VC33.H的头文件,在后续的程序开发与设计过程中需要应用到TMS320VC33寄存器,通过该方法可以对其进行有效的定义。最后,将以上两个文件进行组合,并一同添加到CSRJ.MAK工程中。

    2.2 编译和链接

    需要从TI公司的COFF文件格式对其进行分析与研究。Code Composer编译器构建的目标文件一般为公共目标文件,格式为COFF。在这一格式的应用中,能够有效促进模块化编程的管理效果,且可以提升程序的可移植性,强化程序的可读性能。这对于后续代码的管理与村村器的管理有着重要的影响作用,而且应用的方法也会更加灵活,操作的便利性会大大提高。由此可见,该方法的应用能够为高级语言的汇编提供相应的基础,带来有效的帮助。在COFF文件中,最主要的就是要把SECTION进行概念的定义。SECTION是COFF文件中最小的单位,在储存器中占据空间的模式为数据块模式。而且,在同一目标文件中,不同的SECTION是相互分离的,且是不受干预的。因此,SECTION 一般可以划分为两个方面:第一方面是完成初始化的部分;第二方面是未进行初始化的部分。已经完成初始化的部分其中含有程序数据和程序代码;未完成初始化的部分能够为数据提供储存的空间,且可以有效保留数据信息。

    3 C语言在DSP嵌入式系统开发中需注意的问题

    3.1 内存依赖

    为了有效提升代码的优化性能,促进编译器对指令执行和处理的能力与效率,需要对其内存依赖关系进行设计与研究。在这一过程中,需要做到对指令之间的关系确认,且需要完善指令的准确性。一般情况下,一条指令需要在另一条指令的执行状态下完成,所以这两条指令之间就存在相应的依赖关系。如果编译器无法有效识别指令之间存在的关系是否为依赖关系,那么就需要通过人工的方法对其进行明确,为编译器提供相应的记忆服务。在此,可以利用“restrict”的关键字输入方法对其进行声明变量的处理,或者可以利用命令优化的方法对编译器进行通知。Code Composer可以为其提供4条优化指令,第一是Level 0寄存器级别优化指令;第二是Level 1局部级别优化指令;第三是Level 2函数级别优化指令;第四是Level 3文件级别优化指令。结合相关基础对其进行分析,如果使用第三种方法可以实现简单便捷的操作,进而体现一步到位的特征。但是,在现实环境中,这一情况需要适时而定,很多比较大的应用系统并不支持第三种方式在其中应用,而且无法实现对大系统代码的优化,如果强行应用,甚至会导致大系统发生瘫痪和死循环的问题。所以,在对其进行应用的时候,需要结合实际需求对其进行性能的匹配分析,以此避免系统和程序发生不执行、执行混乱、系统崩溃等问题的发生。

    3.2 变量声明

    在进行函数调用的过程中,需要兼顾全局变量的关系,并且要尽量地去使用全局变量。这样,能够大大降低变量堆栈的问题,提升寄存器的应用效率,扩大寄存器的应用空间。除此之外,在Code Composer背景下对其进行全局变量的声明处理,或者利用初始化的方法,会导致双倍储存空间的占用。为了避免这一情况的发生,降低储存空间的占用量,需要本着节约资源的概念对其进行数据量的分析与研究,然后将数据量较大的内容通过特殊定义的方法进行空间资源占用的压缩。进而实现对变量声明的有效处理。在此,通过一组数据对其进行分析与解释。

    如果通过常规方法对其进行理解和定义,那么:

    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_chabiaoV'‘);

    Asm(¨biao_xvx: .float l.22, 3.55, 4.67, 9.53, 8.1l“);

    Asm(“.float 6.97, 9.45, 7.54, 8.16, 1.08“);

    extern float biao_xyx[2][3];

    在编译完成之后对其进行查看,通过对.map文件的分析与研究发现,数据在.data_chabiao段中一共占用了10个字符的空间。

    3.3 应用TI提供的功能函数和固有函数

    TI在C语言的开发过程中能够为其提供较好的帮助与较大的支撑,且可以为C语言的开发带来具有实际应用价值的固有函数。如果在这一过程中应用了一半的C语言赌气进行函数编写,或者通过个人编写的方式对其进行设计,会在这个设计系统设计与开发过程中消耗更多的时间与精力,且会造成各种问题。最后,解决问题的时间、编译的时间、编译的准确性、问题的处理深度等均是后期程序应用的潜在威胁。为了避免这一情况的发生,需要应用TI提供的功能函数和固有函数对其进行相应的干预和处理。

    3.4 编写循环体

    在对数据进行处理的过程中,对于循环体的应用比较广泛,且应用的次数较多。循环体能够处理大量的数据信息,而且会耗费较多的时间。在此需要特别注意的问题有:在应用循环体对其进行程序编写的时候,切不可通过包含调用的方法对其进行系统设计与开发;在应用循环体对其进行设计的过程中,切不可在其中体现过多的指令和命令内容;在应用多重循环方法对其进行设计的时候,若内层循环体相对外层较短,需要建立全新的循环模式,放弃原有的循环体,通过内外结合的循环方法对其进行全新的设计与应用;在应用循环体的时候,需要将与循环无关的代码和语言进行相应的移植,使其处于循环体以外的部分。这样可以降低循环的时间,提升循环的效率与质量。

    3.5 浮点格式的转换

    为了让硬件设备得到更好的运行效率,实现更高的运行能力,TMS320VC33应用了浮点格式对其进行相应的支撑与帮助。在这一模式下,DSP系统软件的通信模块将会被大力开发,且会结合浮点格式对其进行数据处理与数据传输。在此,需要注意的问题有:切记在使用该系统的时候需要了解外部系统所应用的是什么格式,并且要对其进行及时的格式转换与处理,以此实现硬件设备的运行效率不受影响。

    4 总结

    研究结合‘rMS320VC33芯片的开发为大背景,分别研究了C语言的开发与架构方式,以及DSP嵌入式系统在应用过程中需要注意的问题有哪些。通过该方法能够为后续的系统开发与应用提供更多的帮助,进而满足研究人员对工作效率、系统运行能力等各方面的需求。

    参考文献:

    [1]边倩,林智慧.用C语言实现DSP程序设计的研究[J].电子技术与软件工程,2016(23):251.

    [2]王培人,李宝龙.基于DSP的NAND FLASH芯片控制实现[J].哈尔滨商业大学學报(自然科学版),2016,32(5):563-567.

    [3]徐哲,王中秀,全奎旺.嵌入式DSP系统C语言硬件编程技术探讨[J].科技传播,2016,8(2):153-154.

    [4]陶新民,李震,姜述杰.基于DSP和C语言的变压器振动信号采集与分析系统[J].应用科技,2015,42(5):1-5.

    [5]袁博文.基于嵌入式DSP系统C语言硬件编程技术浅谈[J].电脑迷,2017(12):61.

    [6]冯瑛敏.基于DSP的嵌入式IP语音通信系统设计与开发[D].长沙:湖南大学,2007.

    【通联编辑:代影】

    作者简介:殷莉(1980-),女,江苏常州人,硕士,副教授,研究方向为计算机信息化,软件;温赟(1979-),女,江苏常州人,高校副教授,硕士,研究方向:计算机信息化、电子商务。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/5 22:55:32