"); //-->
无论使用什么设计语言,不良的编程技术都会给一个应用的性能带来负面影响,对一个嵌入式应用尤其如此。尽管对于绝大部分应用来说,高效率的编程技术是重要的,但对于嵌入式应用所工作的资源极度缺乏的环境,则要求对性能和存储器管理给予特别的关注。
本文的讨论将围绕着新的LabView嵌入式开发模块进行,这种新工具为嵌入式应用开发人员提供了图形化系统设计手段。该工具允许用户直观地设计算法 并进行交互式调试。下面是一些有助于编程师更有效使用LabView开发嵌入式应用的技巧。这些技巧中的许多也适用于其它高级工具。
动态分配存储器技术
动态存储器分配是一项编程师应尽可能避免的复杂操作。例如,如果动态分配出现在将数据存储到数组内的一个循环内,那么它尤其有害。避免在一个循环内动态分配存储器的常用方法是在该循环开始执行前,为每个数组预分配所需的存储空间。
移位寄存器与隧道技术
LabView的移位寄存器与隧道使数据进/出循环。工程师还利用移位寄存器在一个循环的每次执行之间传递数据。当数据用一个输入隧道传进一个循环 时,LabView必须拷贝该数据并将该拷贝数据送出来进行下线修改。为了确保原始数据对该循环的下次迭代执行时保持不变,这样做是必需的。工程师也可以 通过用一个移位寄存器把数据传进该循环的方法来避免拷贝。这样就消除了不必要的拷贝,从而加快了运行速度。
循环中的大常数技术
如果在循环内部放置一个常数,会使循环的每次执行都拷贝这个数据,从而加大执行时间和存储器使用率。工程师可以避免这个情况,做法是把该常数移出该循环,或者用本地变量把数据传递到循环中。
数据类型强制转换技术
LabView开发环境只要有可能就自动地处理数据类型的冲突,其做法是把较小的数据类型转换成较大的数据类型。例如,如果在一个整数和一个浮点数之 间发生一个类型冲突,那么LabView就把该整数转换成一个浮点数,随后再执行运算操作。这个转换的代价是昂贵的,而且在许多情况下是不必要的。在大多 数情况下,工程师可以通过为每个变量选取正确的数据类型来避免强制转换。但是,如果该数据必须被强制转换,则应在将其送去进行操作运算或函数计算前就完成 转换,这样效率将会更高些。
簇技术的应用
当把异构数据捆绑到易管理的数据包中时,簇是有用的,比如说C语言结构(C Structs)。然而,此时除了要考虑的全部数据外,数据内容的相关信息也必须和这些数据一起传递。因此,有的时候,尤其是在把数据传到subVI时, 相对于一个捆绑的簇而言,未捆绑的数据元素可以增加用户应用的运行速度。
尽管类似LabView这样的高级编程语言有助于工程师更快地部署其应用,但注意可提高代码性能的细节是很重要的。通过注意这些细节,有助于工程师快速开发一个高效率的应用。
(注:最近由于工作需要,学习NI 的Labview,在网上发现了不少这方面的经典博文,转载于此,与大家分享~!)
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
光纤发送器布线图 IGBT
车辆到电网通信接口国际标准ISO 15118
pxa26x
ZX7—315型弧焊电源工作原理图
学子专区论坛 - ADALM2000实验:可变增益放大器
Virtex-7 485T I/O处理能力
英特尔成功部署ASML High-NA EUV光刻系统,推进先进工艺量产化进程
Virtex-7 485T DSP处理能力
QTLP650D-RGB
集成了数字电源管理功能的模拟 DC/DC 控制器
由分立元件构成的IGBT驱动电路图
汽车诊断通信接口国际标准ISO 14229
PSoC单片机及其茌燃气变频输配与流量计量中的应用
来自中国、席卷世界的永久性通缩(1)--看中国
输出电压调节
苹果公司CEO乔布斯在斯坦福大学的演讲中文字幕
4月1日,台积电正式接受2nm订单
TX—KD201的原理框图
如何在嵌入式开发中使用DeepSeek
PS2 键盘鼠标协议(中文版)
利用测量运算放大器的输入电容来降低噪声
三星加速QD-OLED面板生产:目标2025年出货量增长50%
国家半导体首财季盈余130万美元
松下常务: 不能在中国取胜,就会在全球败北!
PLM51 FOR DOS,INTEL的PLM51编译器
泰克助力MIPI总线技术的测试与多场景应用
Valens Semiconductor携手RGo Robotics与CHERRY Embedded Solutions 推动AI机器人系统连接技术革新
危险!个人信息网上随手可得
为了ftp://hdrz,近日准备启程前往ustc……
SUPERSYNC MD-11III、SUPERSYNC PWB-1369、SUPERSYNC PW