n n

NESCは、Tinyosの構造化概念と実行モデルを具体化するように設計されたCプログラミング言語の拡張です。
今すぐダウンロード

n n ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • GPL
  • 価格:
  • FREE
  • 出版社名:
  • nesC Team
  • 出版社のWebサイト:

n n タグ


n n 説明

NESCは、Tinyosの構造化概念と実行モデルを具体化するように設計されたCプログラミング言語の拡張です。 NESCは、Tinyosの構造化概念と実行モデルを具体化するように設計されたCプログラミング言語の拡張です。 TinyOSは、非常に限られたリソース(例えば、8Kバイトのプログラムメモリ、RAMの8Kバイト)を持つセンサネットワークノード用に設計されたイベント駆動型オペレーティングシステムです。NESCの背後にある基本的な概念は次のとおりです。プログラム全体を形成するために組み立てられたコンポーネント(「有線」)。コンポーネントはタスクの形式で内部の並行性を持ちます。制御スレッドはそのインタフェースを介してコンポーネントに渡されます。これらのスレッドはタスクまたはハードウェア割り込みのどちらかに根ざしています。・インタフェースのセットによるコンポーネント動作の指定。インターフェースは、コンポーネントによって提供されるか使用されます。提供されたインターフェースは、コンポーネントがそのユーザに提供する機能を表すことを意図しており、使用されたインターフェースはコンポーネントがそのジョブを実行するために必要な機能を表す。・インターフェースは双方向です。インターフェイスのプロバイダによって実装される一連の関数を指定します。コマンド)とインターフェイスのユーザー(イベント)によって実装されるように設定されています。これにより、単一のインターフェースがコンポーネント間の複雑な相互作用(たとえば、何らかのイベントの関心の登録、そのイベントが発生したときにコールバック)を表すことができます。 TinyOS内のすべての長さのコマンド(例えば、送信パケット)はノンブロッキングであるため、これは重要です。彼らの完了はイベントを通してシグナリングされます(送信完了)。インターフェイスを指定することで、コンポーネントはSendDoneイベントの実装を提供しない限り、送信コマンドを呼び出すことができません。・イベントは上に呼び出されます。特定のプリミティブイベントはハードウェア割り込みにバインドされています。・コンポーネントはインターフェイスを介して静的にリンクされています。これにより、ランタイム効率が向上し、Rubust Designを奨励し、プログラムのより良い静的分析を可能にします。・NESCは、プログラム全体のコンパイラによってコードが生成されるという期待に設計されています。このリリースでは、このリリースでは新たなコード生成と分析を可能にする必要があります。 - CプリプロセッサはNESCに統合されています。 (deputy.cs.berkeley.eduを参照)。副を使用するには、NESCコードに型注釈を追加してから、-fnesc-副フラグを使用してコンパイルします。 NESCへの小さな変化の束は、副の使用を支持しています。 NESCCへのフラグ:-fnesc-副:このコンパイルで副を使用してください。これにより機能させるためにインストールされているNESCで使用するためにカスタマイズされた副のバージョンが必要です。 -fnesc-dispy-args:副に渡す追加の引数。 -fnesc-default-safe / -fnesc-default - 解析:C関数とNESCモジュールのデフォルトの安全性(オプションが指定されていない、-fnesc-default-funafeが想定されます)型注釈:NONULL、COUNT(...)、 ETC(詳細については、詳細については、詳細についてはNESCの副次的なドキュメントを参照してください。以前のバージョンのNESCで。NESDOCのコメントの型注釈:非副次的なユーザのための雑然とした雑音を減らすために、副次的な注釈を関数シグネチャ(それは通常のCシグネチャのように見える)ではなくNESDocのコメント内に配置することができます:/ ** ... @param 'int * @ count(n)x' xは、n ints ... * / void fの配列です(int * x、int n); void fと同じです(int * @ count)。 n)x、int n)。マクロはコメントに使用できますので、上記は/ ** ... @param 'int * count(n)x' xはn intsの配列です... * / void f(int * x、int n); count(expr)は@count(expr)に拡張されます.-内部サポートSC1)@deputy_scope()および@macro( "name")属性、および-fnesc-genprefix = option.- @macro()および-fnesc-genpreRix =が他のコンテキストでも便利な場合があります。 NESC属性宣言には@macro()属性があります.struct @MyAttr @Macro( "mymacro"){int x;文字* y; ;;その後、NESCソースの@MyAttrの使用は、NESCの中間C出力のMyMacroへの呼び出しとして出力されます。たとえば、int x @myAttr(23、「楽しい」); Int x MyMacro(23、「楽しい」)になります。 -fnesc-genprefix =が生成されたC出力の開始に追加されます。たとえば、MyMacroの#define定義、または適切な定義を持つファイルのincludeです。XML出力の全体の文字列がアレイとして現れるようになりました。バイト数(およびワイドストリングのターゲットのバイトレベル表現に従う) - NESCを介してCファイルを処理する機能(これは、外部タイプ、アトミックステートメント、ユニークな場合はCでサポートします).nescc -x nesc .cこれNESCCは、NESCコンパイラを介してCファイル.cを通過させます(通常は通常のCコンパイラに送信されます)。 -fnesc-gcc = ...) - モジュール内では、void f(void)またはvoid f()を互換的に書き込むことができます。


n n 関連ソフトウェア

PDFTOOLS

PDFTOOLSプロジェクトには、Portable Document Format(PDF)ファイルを読み取り、その内容を解釈するためのPythonクラスが含まれています。 ...

165

ダウンロード