位置:51电子网 » 技术资料 » D S P

组件(component)

发布时间:2012/4/2 14:30:32 访问次数:1042

    任何一个nesC应用程序都是有一个或多个7332-LF 组件连接起来的,从而形成一个完整的可执行程序。在nesC中有两种类型的件,分别称为模块和配置。模块提供应用程序代码,实现一个或多个接口;配置则是用来将其他组件装配起来的组件,将各个组件所使用的接口与其他组件提供的接口连接在一起,这种行为称为连接( wiring)。每个nesC应用程序都由一个顶级配置所描述,其内容就是将该应用程序所用到的所有组件连接起来,形成一个有机整体。组件的语法定义如下:
    nesC-file:
    includes-listopt module
    includes-listopt configuration
    module:
    module /dent/f/er specification module-implementation
    configuration:
    configuration identifier specification configuration-implementation
    组件名由标识符(identifier)定义。该标识符是全局性的,且属于组件和接口类型命名空间。  一个组件可以有两种作用域:一个规范( specification)作用域,属于C的全局作用域;一个实现(implementation)作用域,属于规范作用域。
    通过包含列表(includes-list),一个组件能可选择地包括C文件。
    规范( specification)列出了该组件所提供或使用的规范元素(接口实例、命令或事件)。就如前面所述,一个组件必须实现它提供接口的命令和它使用的接口事件。

    一般情况下,命令向下调用硬件组件,而事件向上调用应用组件。组件间的交互只能通过组件的规范元素来沟通。每种规范元素有一个名字(接口实例名、命令名或事件名)。这些名字属于每个组件特有的规范作用域的变量命名空间。规范( specification)的语法定义如下:
    specification:
    (uses-provides-list  )
    uses-provides-list:
    uses-provides
    uses-provides-list uses-provides
    uses-provides:
    uses specification-element-list
    provides specification-element-list
    specification-element-list:
    specification-element
    {specification-elements  }
    specification-elements:
    specification-element
    specification-elements specification-element
    一个组件规范可以有多个uses和provides揩令。多个uses和provides指令的规范元素可以通过使用“{”和“)”符号在一个uses或provides命令中指定。例如,下面两个定义是等价的:

                              

    接口实例声明的完整语法是interface X as Y,这里可以明确地定义Y作为接口的名字。interface X是interface X as X的一个简写形式。如果接口参数(interface-parameters)被省略,那么interface X as Y声明了对应该组件的单一接口一个简单的接口实例。如果给出了接口参数(如interface SendMsg[uint8_t id]),那么这就是一个参数化的接口实例声明,对应该组件的多个接口中的一今(每个接口对应不同参数值,因为8位整数可以表示256个值,所以interface SendMsg[uint8_t id]中可以声明256个SendMsg类型的接口)。参数化接口的参数类型必须是整型(这里枚举类型是不允许的)。

    任何一个nesC应用程序都是有一个或多个7332-LF 组件连接起来的,从而形成一个完整的可执行程序。在nesC中有两种类型的件,分别称为模块和配置。模块提供应用程序代码,实现一个或多个接口;配置则是用来将其他组件装配起来的组件,将各个组件所使用的接口与其他组件提供的接口连接在一起,这种行为称为连接( wiring)。每个nesC应用程序都由一个顶级配置所描述,其内容就是将该应用程序所用到的所有组件连接起来,形成一个有机整体。组件的语法定义如下:
    nesC-file:
    includes-listopt module
    includes-listopt configuration
    module:
    module /dent/f/er specification module-implementation
    configuration:
    configuration identifier specification configuration-implementation
    组件名由标识符(identifier)定义。该标识符是全局性的,且属于组件和接口类型命名空间。  一个组件可以有两种作用域:一个规范( specification)作用域,属于C的全局作用域;一个实现(implementation)作用域,属于规范作用域。
    通过包含列表(includes-list),一个组件能可选择地包括C文件。
    规范( specification)列出了该组件所提供或使用的规范元素(接口实例、命令或事件)。就如前面所述,一个组件必须实现它提供接口的命令和它使用的接口事件。

    一般情况下,命令向下调用硬件组件,而事件向上调用应用组件。组件间的交互只能通过组件的规范元素来沟通。每种规范元素有一个名字(接口实例名、命令名或事件名)。这些名字属于每个组件特有的规范作用域的变量命名空间。规范( specification)的语法定义如下:
    specification:
    (uses-provides-list  )
    uses-provides-list:
    uses-provides
    uses-provides-list uses-provides
    uses-provides:
    uses specification-element-list
    provides specification-element-list
    specification-element-list:
    specification-element
    {specification-elements  }
    specification-elements:
    specification-element
    specification-elements specification-element
    一个组件规范可以有多个uses和provides揩令。多个uses和provides指令的规范元素可以通过使用“{”和“)”符号在一个uses或provides命令中指定。例如,下面两个定义是等价的:

                              

    接口实例声明的完整语法是interface X as Y,这里可以明确地定义Y作为接口的名字。interface X是interface X as X的一个简写形式。如果接口参数(interface-parameters)被省略,那么interface X as Y声明了对应该组件的单一接口一个简单的接口实例。如果给出了接口参数(如interface SendMsg[uint8_t id]),那么这就是一个参数化的接口实例声明,对应该组件的多个接口中的一今(每个接口对应不同参数值,因为8位整数可以表示256个值,所以interface SendMsg[uint8_t id]中可以声明256个SendMsg类型的接口)。参数化接口的参数类型必须是整型(这里枚举类型是不允许的)。

上一篇:接口(Interface)

上一篇:模块(module)

相关技术资料
4-2组件(component)
相关IC型号
7332-LF
暂无最新型号

热门点击

 

推荐技术资料

业余条件下PCM2702
    PGM2702采用SSOP28封装,引脚小而密,EP3... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!