• 嵌入式开发之davinci--- 8148/8168/8127 中的xdc 简介


    XDC是TI公司为嵌入式实时系统可重用软件组件(在XDC里被成为packages,以下成为包)制定的一套标准。它包括一些有用的工具,标准的API函数,静态配置文件和打包(packaging)操作。XDC最主要的亮点在于它标准化了传递过程,并简化了在应用程序中引用目标平台下其他包的过程。

        本文从一个简单的“Hello,World“入手,引领大家进入XDC开发世界。

        在XDC开发世界中,首先需要明确两个概念,package和repository。

        所谓package,类似与java里的jar文件或.net世界里的assembly,是开发者将源代码编译打包后交付给使用者使用的一组集合。和java里的package类似,XDC的Package也是按照一定层次的文件夹组织形式来存放的(这点和.net不同,.net仅仅是编译成一个dll),该目录的名字就是包的名字。

        所谓repository,实际上是一个包含多个package的文件夹,例如在XDC里,我们使用packages来作为一个repository,该文件夹下包含很多ti.xdc.*的包。在XDC开发中,有一个很重要的变量XDCPATH,在XDCPATH中制定的路径就是repository。这有点类似于C++的包含文件目录。

    安装和卸载XDC

    你可以从TI的网站上下载,安装过程很简单,如果在Windows平台下,直接双击安装文件安装到特定目录就可以了,如果是在Linux平台,可能需要修改文件的属性将文件设置成可执行,然后双击安装。

    至于卸载,找到uninstall文件,双击即可。

    XDC添加到你的环境变量

    为了更方便地使用XDC(实际上就是不要在xs前加上一长串路径),需要将XDC添加到环境变量里。

    如果开发平台为Windows,在安装完XDC后,需要环境变量的PATH中添加XDC安装目录(和JAVA一样),此外,顺便新建一个XDCPATH的环境变量,该变量用来制定repository的位置。

    如果你用的是Linux,自己查文档吧:-)

    测试

    当你完成以上步骤后,恭喜你,你现在可以开始XDC编程之旅了,试试在命令行下键入:

    xs –version

    xs xdc.tools.echo hello world

    很简单吧?广告之后我们开始编写第一个基于XDC的应用程序,下一节更精彩,不要走开哦。

    下面介绍如何创建一个基于XDC的应用程序。

    一般的我们使用传统的C语言进行XDC开发,在配置上还需要使用Javascript。不过总体来说,开发XDC还是很容易的,只需要遵循以下几个步骤:

    配置应用程序(也就是写配置文件了啊)

    C语言

    编译、链接

    根据TI标准开发流程,XDC开发主要关注点还是编写C语言代码,至于其他的(主要是指1、3)很简单(文档上说的,我不觉得~~~),TI提供了一些工具。

    废话少说,开始我们的“Hello,World”之旅吧!

    配置应用程序

    Java、C不同,开发XDC应用程序需要使用javascript语法写一个配置文件,进行一些预先的配置工作以供应用程序使用(例如使用什么模块啊,设置一些常量啊)。当然,第二步也就是写C语言也可以进行一些动态的设置。

    至于为什么写配置文件,TI给出的答案是:

    在编译时就制定需要使用到哪些模块,以及生成哪些静态对象。

    检查制定包和继承包

    设置指定模块或对象的属性

    下图展示了XDC编译的全过程:

     XDC介绍



    XDC的配置文件是以cfg结尾的,在Codec Engine开发过程中,我们主要是Application端和server端使用XDC来编译。

    如上图所示,CONFIG OUTPUT中为XDC编译器根据配置文件生成的一些中间文件(例如C代码、.cmd文件),这些文件不需要自己动手编写,甚至不需要知道他们是干什么的。

    现在回到“Hello,World”开发,我们先在开发目录下建立一个名为hello的文件夹,然后在该文件夹中建立一个名为hello.cfg的文件:

    接下来,在该文件中输入以下javascript表达式,声明一个xdc.runtime.System对象:

    var System = xdc.useModule(“xdc.runtime.System”);

    C语言

    创建一个名为hello.c的文件,在里面添加以下代码:

    #include <xdc/std.h>
    #include <xdc/runtime/System.h>

    int main()
    {
        System_printf(“Hello World! ”);
        return (0);
    }

    编译

    确定目标和平台

    在编译前,我们首先需要明确我们的程序是运行在什么平台上的,以及使用什么编译起来进行编译。在TI的文档中,用目标(Target)和平台(Platform)、编译器来定义这些属性:

    目标(-t):制定的编译器,例如TI ‘C6000 编译器。

    平台(-p):运行的环境,例如DM6446 EVM。

    编译器(-c):编译XDC的编译器,例如TI 公司提供的Code Gen Tools或者Visual Studio 2008。

    在本例中,目标为ti.targets.C64P,平台定位ti.platforms.evmDM6446。

    运行Configuro

    XDC提供了一个叫做“Configuro”的工具来处理配置文件,我们可以在命令行中输入以下命令:

    xs xdc.tools.configuro -t ti.targets.C64P -p ti.platforms.evmDM6446 -c d:/opt/cgtools hello.cfg

    注:你需要在https://www-a.ti.com/downloads/sds_support/CodeGenerationTools.htm下载Code Gen Tools。

    编译后将生成一个名为hello的文件夹:

    http://blog.sina.com.cn/s/blog_693301190100sitz.html

    http://blog.sina.com.cn/s/blog_69620aac0100q9e6.html

  • 相关阅读:
    Django的路由系统
    Django框架简介
    模块和包
    内置函数——filter和map
    匿名函数
    Djangon 基础总结 汇总 从请求到返回页面的过程,
    Django基础 一
    异常处理
    Sqoop
    Oozie
  • 原文地址:https://www.cnblogs.com/pengkunfan/p/4146385.html
Copyright © 2020-2023  润新知