首页 理论教育 从nesC到C:在Powerup应用程序中的映射

从nesC到C:在Powerup应用程序中的映射

时间:2023-06-28 理论教育 版权反馈
【摘要】:nesC是对C的扩展和修改,ncc是nesC的编译器,它是gcc的修改和补充。这就存在一个nesC语言编译成C语言时nesC中的变量、函数名和产生的C语言中的变量、函数名的对应关系,即nesC到C的映射。应用程序中用到的C文件中包含的类型、变量、函数名在ncc处理过程中保持不变。对于本例Poweup应用程序,编译此应用程序时,会在opt\tinyos-2.x\apps\Poweup\build\micaz目录下生成一个app.c文件。

从nesC到C:在Powerup应用程序中的映射

nesC是对C的扩展和修改,ncc是nesC的编译器,它是gcc的修改和补充。ncc先把nesC预编译成C文件,再通过交叉编译器把C文件编译成可执行文件。这就存在一个nesC语言编译成C语言时nesC中的变量、函数名和产生的C语言中的变量、函数名的对应关系,即nesC到C的映射。在Powerup中这种映射就是指Powerup的接口、组件、C文件中的变量以及函数名与ncc编译成app.c对应后的变量、函数名之间的映射。

应用程序中用到的C文件中包含的类型、变量、函数名在ncc处理过程中保持不变。如果C文件出现了与nesC的关键字相同的变量,则在编译时自动在该变量前加上前缀_nesC_keyword_。具体的映射关系如下。

●模块M中的变量X映射成:M$X。

●模块M中的函数F映射成:M$F。

●模块M中的命令或事件C映射成:M$C。(www.xing528.com)

●模块M中的接口I中的命令或事件C映射成:M$I$C。

此外,nesC使用ncc(确切 地说是gcc)的一些属性来声明一些函数和变量的属性。其中,spontaneous属性表示该函数可以在其他文件中被访问,而不是仅仅限于本文件。如果函数没有声明spontaneous属性,则ncc在编译成C语言时,就在函数前加上static。具体的属性在后续章节介绍。

对于本例Poweup应用程序,编译此应用程序时,会在opt\tinyos-2.x\apps\Poweup\build\micaz目录下生成一个app.c文件。这就是ncc把nesC预编译成的C文件。在app.c中,我们可看到如下映射:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈