📄 readme
字号:
directory: tinyos-1.x/tools/scripts/codeGenerationauthor: kamin whitehousedate: 9/23/05This directory holds the generateNescDecls.pl file, which generatesthe nescDecls.xml file. This file holds all nesc declarations such astypes, enums, rpc functions, modules, module variables, etc. that aset of pc-side tools might want to use (e.g. python). This directory also holds scripts that automatically generate files from @tags in your code:generateRegistry.pl: tags: @registryfiles: RegistryC.nc, Registry.hgenerateHood.pl:tags: @reflection, @scribble, @hoodfiles: XxxHoodC.nc, Hood.hgenerateRpc.pl: tags: @rpcfiles: RpcC.nc, RpcM.ncThese scripts are called by placing this directory in theTOSMAKE_PATH, and indicating that the makefile should use theregistry.extra, hood.extra, and rpc.extra targets when the user calls"make pc registry", "make pc hood", or "make pc rpc". hood.extraautomatically includes registry.extra because hood relies on registry.The files FindInclude.pm, NescProgramFiles.pm, and SlurpFile.pm arederived from the contrib/SystemC/scripts. These are only necessarybecause nesC XML generation is currently underdeveloped: 1. it does not give any XML output when the missing yetto-be-generated file causes compiler errors, even though only asuperficial parse should be required, not a full compilation. (necessary for registry and hood).2. it does not provide any info about tagged functions, onlyinterfaces (this is necessary for rpc).3. it does not provide any info about the names of functionparameters, only parameter types (this is necessary for rpc).4. it does not support abstract interfaces (necessary for rpc)When nesC XML generation is completed, the AtTags.pm module can beremoved and the AtTagsFromXML.pm module can be used instead, and the 3files mentioned above can be removed permanently.The NescParser.pm file is currently based on perl scripts actuallyparsing the nesc files, but should later be adapted to the xml files(ie. it will not be removed like the other files above)KNOWN LIMITATIONS:1. The parser that I wrote may not support full nesC syntax. Forexample, if you declare @tags with anything other than the expectedsyntax, eg.uses interface Interface<type> as MyInterface @registry("AttributeName");or uses{ interface Interface<type> as MyInterface @registry("AttributeName");...}the parser may not detect it. This will be fixed once the codegeneration is based on nesC-generated XML files, because theacceptable syntax will be the same by definition. Until then, pleaselimit your syntax to that described above.2. The parser does not search the complete search path for programfiles. The directories it searches must be passed as -I directivesfrom the *.extra file. Current default is the compiler PFLAGSvariable, plus a few standard directories such as tos/types,tos/interfaces, tos/system, and pwd. All directories that aresearched by the temporary perl parser are printed to the screen duringcompilation. 3. There is a maximum number of "required" attributes that a hood candeclare, because the @hood struct must be statically defined forparsing. That number is currently 8, and can be changed by going intothe Hood.h file (if AtTagsFromXML.pm is used) or the generateHood.plfile (if AtTags.pm is used).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -