搜档网
当前位置:搜档网 › LabVIEW For ARM 嵌入式移植指南 V10_2网络共享版

LabVIEW For ARM 嵌入式移植指南 V10_2网络共享版

LabVIEW For ARM 嵌入式移植指南

温漠洲译

深圳市斯科道测控技术有限公司内部研发文档

“与C++,Visual Basic等任何计算机语言一样,LabVIEW是一种编程语言。同时它也是唯一得到广泛运用的图形化编程语言。图形化编程包含了众多重要的编程思想,是计算机语言的未来。我认为大学(如宾州州立大学)有责任至少让每个计算机工程的学生有机会接触这些新思想。”

-Scott Deno,Associate Director,宾州州立大学电子设计、通讯和计算中心

“使用LabVIEW之前,我使用C和VC++一般需3个月完成一个项目。最近,利用LabVIEW和NI模块化仪器,我仅以一个月的时间便完成了一个VGA信号发生器的项目。我发现利用LabVIEW进行高性能算法的开发尤为轻松。LabVIEW 具有许多有用的VI和内置函数,能降低开发时间并与原有的C算法集成。”

-In-Seung Yang三星电子

“LabVIEW的贡献在于,不仅开发出一批成功的硬件,还淘汰了复杂而低层次的软件。我可以专注于我的项目,而不用为机械化的实施部分浪费精力了。最新的LabVIEW仿真和嵌入式应用程序工具将为汽车软件工程带来又一轮激动人心技术突破。”

-Ali F.Maleki,软件系统总工程师,伟世通公司

“即使我的编程经历仅限于C语言,但我相信自己能运用LabVIEW在更短的时间内完成同样多的工作。”

-Anthony Cheng,电子工程师,美国Abbott实验室

“通过LabVIEW,我们可轻松设计任何东西,无论是复杂的控制采集系统还是简单的分析程序。可轻松添加其他的程序的功能,这实在太棒了。”

-Jared Dobbins Funk Manufacturing,John Deere公司

目录

概览

第1章LabVIEW For ARM嵌入式移植介绍 (1)

1.1介绍 (1)

1.2内容表 (1)

1.3整合好的文件 (2)

第2章整合LabVIEW和Keil工具链 (3)

1.1整合LabVIEW和Keil工具链 (3)

1.2使用芯片编辑器来管理指定芯片(需要安装Microprocessor SDK软件) (3)

1.3准备模板文件 (7)

1.4修改uVision工程模板 (8)

1.5添加高级分析库的支持 (15)

1.6在指定芯片上下载并执行编程 (16)

1.6.1创建一个新的工程 (17)

第3章(一)实现Elemental I/O的整合(1/2) (22)

3.1实现Elemental I/O的整合(1/2) (22)

3.2Elemental I/O中的设备,类,引脚和资源 (22)

3.2.1I/O设备 (22)

3.2.2Elemental I/O类 (22)

3.2.3引脚 (22)

3.2.4资源 (23)

3.3Elemental I/O节点 (23)

3.4创建Elemental I/O (23)

3.4.1I/O执行VI (24)

3.4.2属性节点VI (24)

3.4.3特定节点VI (24)

3.4.4工程和节点属性验证 (24)

3.5针对LPC3180写Elemental I/O插入Vis (24)

3.5.1准备模板文件 (25)

3.5.2数字输出 (26)

3.5.3数字输入 (28)

3.5.4数字输入/输出 (29)

3.5.5模拟输入 (30)

3.5.6脉宽调制 (33)

3.6实现Elemental I/O的整合(2/2) (35)

第3章(二)实现Elemental I/O-Part(2/2) (34)

3.1使用Elemental I/O编辑器来创建Elemental I/O器件、类、引脚和资源 (36)

3.2使用Elemental I/O节点 (44)

3.3验证正确的Elemental I/O操作 (44)

第4章移植RTX实时内核 (51)

4.1移植RTX实时内核 (51)

4.2目的 (51)

4.3需要的硬件资源 (51)

深圳市斯科道测控技术有限公司内部研发文档

4.4创建一个新的工程项目 (52)

4.5针对指定芯片特定设置 (56)

4.5.1配置输出选项 (57)

4.5.2配置列表选项 (59)

4.5.3配置用户,C/C++和链接设置 (60)

4.5.4配置汇编设置 (62)

4.5.5配置调试设置 (63)

4.5.6配置实用工具选项 (65)

4.6通过RTX添加文件需求到您的工程项目当中 (66)

4.7针对您的应用修改RTX_Config.c和Startup.s文件 (66)

4.8创建应用源文件 (67)

4.9装载二级引导加载程序Bootloader (67)

4.9.1二级引导加载程序 (67)

4.10Build指定芯片 (68)

4.10.1Build指定芯片 (68)

4.11下载程序到Flash存储空间 (69)

4.12启动调试并验证RTX程序行为的正确性 (69)

4.13针对RTX修改Startup.s (69)

4.13.1.修改设备启动文件来使能SWI_Handler函数 (69)

4.13.2修改设备启动文件来导出IRQ中断处理 (69)

4.13.3通过散列装载函数修改设备启动文件来配置适当的动态尺寸预算 (69)

4.13.4..修改设备启动文件来增加堆尺寸 (70)

4.14修改RTX_Config.c (70)

4.14.1拷贝已存在的RTX_Config.c文件到您的工程项目方向中 (70)

4.14.2..针对您的指定芯片添加头文件 (70)

4.14.3定制RTX配置设定 (70)

4.14.4定制RTX配置宏 (71)

4.14.5定义中断处理程序 (73)

第5章整合实时代理 (75)

5.1整合实时代理 (75)

5.2修改工程项目源文件来添加实时代理支持 (75)

5.3修改设备启动文件(LPC3000.s)来支持外部DAbt处理 (75)

5.4修改RTX_Config.c来添加实时代理配置选项 (76)

5.5针对“轮循模式”配置实时代理 (80)

5.5.1配置HS定时器来定期调用RTA函数 (80)

5.5.2修改系统的IRQ处理程序,以采取正确的中断 (81)

5.6验证实时代理工作 (82)

5.7结论:移植其它ARM微控制器 (82)

LabVIEW For ARM嵌入式移植指南

温漠洲译2010.04.15

概览

ARM公司开发的32位RISC ARM指令架构的处理器,由于其低价位、低功耗以及丰富的周边外设,获得多家芯片制造商的广泛使用。目前,ARM家族数量在32位RISC指令架构的CPU中占领了75%的份额。您能使用NI公司提供的针对ARM微控制器的嵌入式模块来进行开发了,其内包含了RTX嵌入式操作系统。

这篇文档针对用户指定的ARM芯片提供一个通用LabVIEW代码框架,这是第一章节,一共五章,示范着一步步将LabVIEW代码移植到Phyter LPC3180ARM9微控制器上。

第1章介绍

目录

1.介绍

2.内容表

3.整合好的文件

介绍

随着NI公司的ARM微控制器嵌入式模块软件的发布,您能移植LabVIEW软件到260多个ARM7、ARM9和Cortex-M3微控制器上来进行系统开发。在单一开发平台上您就能从最初概念到产品的最终实现。整个开发过程舒适,并提升了终端产品的质量,还减少了投放市场的时间。如需更多嵌入领域信息可访问NI公司下面网站内容:

https://www.sodocs.net/doc/c117545773.html,/embedded/zhs/

将图形设计功能带入您的新ARM微控制器当中

直到LabVIEW ARM嵌入式模块性能在Keil公司提供的两款MCB2300和EK-LM3S8962评估板上得到些范例体现,其实LabVIEW能对应到更多的ARM微控制器芯片上。这篇文档就是针对一款新的ARM芯片来提供一个通用处理,告知必须包含哪些硬软件内容。此篇例程特定示范了一款飞利浦芯片NXP LPC3180ARM9微控制器的移植,提供参照的是phyCORE-ARM9/LPC3180评估板。

整合一款新的ARM芯片包含以下这些基本步骤:

·移植RTX实时内核

·在调试中集成实时代理模块

·在LabVIEW中创建特定ARM芯片,包含进Keil工具链

·开发外设和I/O驱动

请注意:这篇指南示范某些步骤是特定包含在Phytec LPC3180评估板上,针对任何指定芯片的应用也提供了一个通用框架。为了整合任何一款ARM芯片,您必须针对以下步骤来作出您的裁剪。

写这篇文章时,针对LPC3180芯片,RTX实时内核和实时代理模块还没被开发出来。因此,这篇文档示范了上述所有4个过程,然而,针对所有芯片是没必要的。想了解更多关于整合RTX实时内核和代理模块的内容,请浏览第4、5章。

这篇指南假定您已安装了LabVIEW Microprocessor SDK,如果没安装的话可浏览以下网站https://www.sodocs.net/doc/c117545773.html,/devzone/cda/tut/p/id/7152

通过已移植好的ARM芯片来进行修改整合。如需更多嵌入领域信息可访问NI公司下面网站内容:

https://www.sodocs.net/doc/c117545773.html,/embedded/zhs/

内容表

第2章:整合LabVIEW和Keil工具链

第3章:实现Elemental I/O的整合

第4章:移植RTX实时内核

第5章:整合实时代理

整合好的文件

下列文件为这篇文档各章节提供了一个完整解决,按照向导使用这些文件或在第3章中使用LPC3180文件夹中的内容可作为一个最终解决。

注意:您需要一个*.RAR解压缩软件(例如WinRAR)

下载文件:

lpc3180solutions.part01.rar

lpc3180solutions.part02.rar

第2章整合LabVIEW和Keil工具链

目录

1.整合LabVIEW和Keil工具链

2.使用芯片编辑器来管理指定芯片(需要安装Microprocessor SDK软件)

3.准备模板文件

4.修改uVision工程模板

5.添加高级分析库的支持

6.在指定芯片上下载并执行编程

整合LabVIEW和Keil工具链

为了移植一个ARM指定芯片到LabVIEW当中,这个ARM芯片必须支持RTX实时内核。为了支持前面板调试,这个ARM芯片也必须能在实时代理模块下工作。

为了判断您的指定芯片是否支持RTX实时内核,可浏览这个路径方向\Keil\ARM\Startup,然后在这文件夹内浏览是否有符合到您的ARM芯片制造商。如果针对您的指定芯片有一个RTX_Conf*.c文件,那就代表RTX实时内核已经移植到了您的ARM芯片上了,如果没有,则可单击第4章来了解更多内容步骤来移植RTX实时内核到您的指定芯片上。

为了判断您的指定芯片是否支持实时代理模块,可浏览这个路径方向\Keil\ARM\RT Agent\RTX,看是否存在您的指定芯片文件夹。如果存在的话,就代表实时代理模块已经配置到您的指定芯片上了。否则的话,可通过浏览第5章内容来了解如何添加实时代理模块到您的应用上。

如果RTX实时内核和实时代理模块都已针对您的ARM芯片开发好了,就可继续浏览本章以下内容,来了解如何在LabVIEW中创建一个新的ARM指定芯片。创建一个指定芯片,意味着修改一个uVison工程到一个LabVIEW能识别的程式,为必要外设整合所有的驱动源码,并且整合Keil工具链。

如果针对您的ARM芯片,RTX实时内核和实时代理模块还不支持,象LPC3180,则可通过浏览第4章和第5章讯息来怎么完成它。

使用芯片编辑器来管理指定芯片(需要安装Microprocessor SDK软件)

所有针对LabVIEW的指定芯片使用相同的插入VIs,因此,为了减轻添加一个新的ARM 芯片到LabVIEW当中的工作量,所以提供了一个TgtSupp.xml模板文件来配置,这个文件使用了修正好的插入VIs、文件夹架构和放置驱动文件。创建一个新的指定芯片到LabVIEW 当中,包含拷贝这个模板文件,并命名为一个能识别的清楚明了的名字。

·浏览路径方向LabVIEW\Targets\Keil\Embedded\RealView

·对Generic文件夹进行拷贝并命名为LPC3180

·浏览路径方向LabVIEW\Targets\Keil\Embedded\RealView\LPC3180\LPC2378并拷贝这文件夹中每项内容

·浏览路径方向LabVIEW\Targets\Keil\Embedded\RealView\LPC3180\

并粘贴从LPC2378文件夹中拷贝过来的内容

·删除LM3Sxxxx和LPC2378文件夹

SDK??Target Editor...

Tools??Microprocessor SDK

·打开LabVIEW并选择菜单Tools

File??Open,然后浏览上述步骤命名的LPC3180文件夹

·选择File

·装载并打开TgtSupp.xml文件

·在Other图标上右击并重命名为LPC3180·右击Applications,并选择Properties

·在Category页,选择Manage Interrupts,单击里面的红叉叉按钮删除这个入口

·单击OK返回到Target Editor

·选择File

File??Save,然后退出Target Editor。您现在已经创建了这个指定芯片。

·完全关闭退出LabVIEW后,重新打开LabVIEW,以致于可用的指定芯片可重新计数。

准备模板文件

LabVIEW依赖于一个适合的已配置好的uVision工程,其定义了指定芯片的多个驱动文件装载处。因为这些驱动是特殊的,针对LPC3180,有些驱动文件包含在通用模板里面可重复使用,有些没有,就可按照下列步骤来准备适当的驱动。

·浏览路径方向LabVIEW\Targets\Keil\Embedded\RealView\LPC3180\eio,删除这个文件夹内的所有内容,下述各章节就针对这芯片,来创建elemental I/O驱动。

·浏览路径方向LabVIEW\Targets\Keil\Embedded\RealView\LPC3180\interrupt\,删除除interrupt.xml文件外的所有文件。这个interrupt.xml文件是针对LPC2378配置时,当使用中断如何产生代码而用的。因为针对LPC2378的那些中断是不兼容于LPC3180的,不使用中断,整合中断则超出了本文档内容涵盖范围。依此,参照LabVIEW嵌入式ARM模块帮助文档可获取更多信息。

·在文本编辑器中打开interrupt.xml.。

·删除这个文件中所有内容,并用以下内容代替

1

ProvidedInterruptData

0

·存储interrupt.xml并退出文本编辑器。

·浏览路径方向LabVIEW\Targets\Keil\Embedded\RealView\LPC3180\Template\System

LPC3000.s.s,并删除RTX_Config.c和LPC2300.s文件。针对LPC3180在第5章当中创建的LPC3000 Retarget.c和RTX_Config.c文件,都拷贝到这个方向来。这些文件也包含在第5章当中整合好的文件LPC3180.zip里面。

·在文本编辑器中打开RTX_Config.c。

添加下列头文件

#include/*LV Config header*/

保存RTX_Config.c后关闭。

·在文本编辑器中打开LPC3000.s.

·从启动文件中注释掉下列行内容

-Undef_Handler B Undef_Handler

-PAbt_Handler B PAbt_Handler

·添加下列行内容到启动文件中:

-IMPORT Undef_Handler

-IMPORT PAbt_Handler

·保存LPC3000.s然后关闭。

·当未定义的IRQ处理程序或预取中止处理程序解除时,这些改变使LabVIEW来设置正确的错误位。

页内容!以下省略了747474页内容!以下省略了

STMDB SP!,{R0};Save Work Register

LDR R0,=__cpp(0x40038000);Get Address of HSTIM_INT register

LDR R0,[R0];Read HSTIM_INT register

TST R0,#0x00000002;Check for Match1interrupt

LDMIA SP!,{R0};Restore Work Register

LDRNE PC,=__cpp(os_clock_interrupt);RTX OS Clock IRQ Handler

LDR PC,=__cpp(irq_sys_handler);RTA IRQ Handler

}

·保存RTX_Config.c.

验证实时代理工作

Project??Build目·在build工具栏通过选择Build Target光标或者在主菜单栏选择Project

标硬件来build目标硬件。

·通过在build工具栏选择Download to Flash Memory光标或者在主菜单栏选择Flash??Download来下载代码到flash存储空间当中。

Flash

·在μVision3工具栏,单击debugger光标。

·单击Run光标,编程运行。

·如果你成功配置了实时代理,程序运行时,邮购板件上LED灯(D400,D401,D402和D403)闪烁。在μVision状态栏上下列信息显示出:

结论:移植其他ARM微控制器

针对ARM微控制器的NI LabVIEW嵌入式模块,用于移植LabVIEW软件到任何支持RTX 实时内核的ARM微控制器,提供了一个完整的解决方案。如果你选择一个已经支持RTX 和实时代理的ARM目标硬件,移植是相当简单的,首先,在LabVIEW中紧跟第2章创建目标硬件,并整合到Keil工具链。然后,使用Elemental I/O向导来创建elemental I/O节点,

以便在新的设备上访问正确的内存镜像寄存器。如果选择的ARM硬件还不支持RTX的话,你必须完成一些额外的工作来移植配置这个操作系统,然后在第4和第5章中象显示那样添加实时代理模块。更多信息内容,请浏览https://www.sodocs.net/doc/c117545773.html,/arm.

免责声明

《LabVIEW For ARM嵌入式移植指南》译文稿版权归属深圳市斯科道测控技术有限公司所有,受国家法律保护,未经本公司授权,其它公司、单位、教研机构及个人不得非法使用、转印、拷贝和散播,否则将受到相关国家法律的严厉制裁。

深圳市斯科道测控技术有限公司保留在任何时候修订本版本译文且不需通知的权利。

深圳市斯科道测控技术有限公司

SHENZHEN SCADAO M&C TECHNOLOGY CO.,LTD.

地址:深圳市南山区科技园高新中区科苑路7号4楼B12室

电话:0755-********

传真:0755-********

E-mail:scadao@https://www.sodocs.net/doc/c117545773.html,

网址:https://www.sodocs.net/doc/c117545773.html,

相关主题