05172024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools

Flasher 5

 

Flasher 5


Flasher 5 is a programming tool for ST9 and Renesas M16C/20, M16C/62, M16C/80, M32C, R8C, R32C, M38 and M79 series of flash microcontrollers in serial mode (1.5 MByte FLASH to store target program, remote control functions for automated testers).

Main features

  • Serial (in target) programming supported
  • PC program allows batch mode processing for usage in automated test systems.
  • Once set up, Flasher can be controlled without the use of PC program

 

[More...]


emUSB Host

emUSBホスト

emUSBホスト、SEGGERのUSBホストソフトウェアスタックは、外部ハブのサポートを含む、完全なUSBホスト機能を実装し、必要に応じてデバイスクラスのドライバを提供しています。それは、開発者が容易に組込みシステムにUSBホスト機能を追加することができます。
ソフトウェアスタックは、USB v1.1とUSB規格v2.0の仕様に準拠しています。それは、ローフルとハイスピードですべての転送モード(コントロール、バルク、割り込み)をサポートしています。USBパイプ管理と信頼性の高い動作に必要な拡張エラー回復メカニズムを内部的に実装されています。
モジュール設計は、アプリケーションが直接USBホストのプログラミングインターフェイスにアクセスする、またはクラスドライバーによって公開されているAPIを使用することができます。その上端にクラスドライバは、通常、ファイルシステムなどのオペレーティングシステムモジュールに接続します。
スタックは、同時に複数のデバイスとハブを処理し、完全にデバイスとハブのホットプラグをサポートできます。プログラミングインタフェースは、動的なデバイスの列挙と識別をサポートしています。

emUSBホストスタック

emUSBホストスタック


emUSBホストドライバ

emUSBは、ハードウェアの依存関係が含まれていません。これらは、インターフェースの機能から構成されるハードウェアアブストラクションレイヤを介してカプセル化されます。特定のUSBコントローラのこれらの関数のすべては、通常、単一のファイル、USBドライバに配置されています。これらの関数の詳細についてはで見つけることができますemUSBホストマニュアルサポートされるUSBのハードウェアの範囲のインターフェイスは、それが最も一般的なUSBホストコントローラを使用することが可能であることをように設計されている。これは、外部のチップとして、マイクロコンピュータの一部としてもUSB 1.1(フルスピード)コントローラ、USB 2.0(フル+ハイスピード)コントローラが含まれています。


利用可能なUSBドライバ

以下のデバイスドライバは、emUSBホストで使用可能です。

ドライバ(ホスト)メーカーマイクロコントローラ
OHCIドライバ アトメル AT91SAM9260
AT91SAM9261
AT91SAM9263
AT91SAM92G10
AT91SAM92G20
AT91SAM9XE
AT91SAM92G45/M10
NXP LPC1754
LPC1756
LPC1758
LPC1759
LPC1765
LPC1766
LPC1768
LPC1776
LPC1777
LPC1778
LPC1785
LPC1786
LPC1787
LPC1788
LPC2387
LPC2388
LPC2420
LPC2458
LPC2460
LPC2468
LPC2470
LPC2478
LPC3180
LPC3220
LPC3230
LPC3240
LPC3250
LH7A400
LH7A404
ルネサス NEC V850ES JX(G / H)3 - U
STM32ドライバー ST STM32F105
STM32F107
RXのドライバ ルネサス RX62N

 


emwin

emWin

emWinは、グラフィカルLCDで動作する任意のアプリケーションに対して効率的、プロセッサとLCDコントローラから独立したグラフィカルユーザーインターフェース(GUI)を提供するように設計されています。
それは、独自のオペレーティングシステムでの使用および商用RTOSで、シングルタスク、マルチタスク環境と互換性があります。emWinは"C"のソースコードとして出荷されています。
これは、任意のサイズ任意のLCDコントローラやCPUとの物理的および仮想ディスプレイに適応されることがあります。

機能

 

任意の8/16/32ビットのCPU、唯一のANSI"C"コンパイラが必要です。
(右のドライバが使用可能な場合)がサポートする任意のコントローラを持つ任意の(モノクロ、グレースケールまたはカラー)液晶。
小さなディスプレイにLCDコントローラなしで動作する可能性があります。
シミュレーション内のすべてのレイヤの詳細(拡大)ビューのためのPCツールemWinView。
任意のインターフェイスは、コンフィギュレーションマクロを使用してサポート。
表示サイズの設定。
文字とビットマップがないだけで偶数バイトアドレスに、LCD上の任意の時点で書き込むことができます。
ルーチンは、サイズと速度の両方に最適化されています。
コンパイル時のスイッチは、異なる最適化が可能になります。
低速LCDコントローラの場合、LCDは最小へのアクセスを低減し、非常に高速で、その結果、メモリにキャッシュできます。
明確な構造。
仮想ディスプレイのサポート、仮想ディスプレイは、実際のディスプレイよりも大きくすることができます。
  • 任意の8/16/32ビットのCPU、唯一のANSI"C"コンパイラが必要です。
  • (右のドライバが使用可能な場合)がサポートする任意のコントローラを持つ任意の(モノクロ、グレースケールまたはカラー)液晶。
  • 小さなディスプレイにLCDコントローラなしで動作する可能性があります。
  • シミュレーション内のすべてのレイヤの詳細(拡大)ビューのためのPCツールemWinView。
  • 任意のインターフェイスは、コンフィギュレーションマクロを使用してサポート。
  • 表示サイズの設定。
  • 文字とビットマップがないだけで偶数バイトアドレスに、LCD上の任意の時点で書き込むことができます。
  • ルーチンは、サイズと速度の両方に最適化されています。
  • コンパイル時のスイッチは、異なる最適化が可能になります。
  • 低速LCDコントローラの場合、LCDは最小へのアクセスを低減し、非常に高速で、その結果、メモリにキャッシュできます。
  • 明確な構造。
  • 仮想ディスプレイのサポート、仮想ディスプレイは、実際のディスプレイよりも大きくすることができます。

 


ソフトウェア構造とコンポーネント

emWin構造

emWinコンポーネント

PC用のオプションのウィジェットのルックアンドフィール

(また、コントロールとして知られているウィンドウオブジェクト、)ウィジェットが用意されています。彼らは一般的に自動的に動作し、使用が簡単です。

ウィンドウマネージャ

ウィンドウマネージャは、簡単、作成、移動、サイズ変更、およびその他のWindowsの任意の数を操作するためのルーチンのセットを提供しています。また、ディスプレイ上のウィンドウのレイヤーを管理することにより、そのウィンドウに影響を与える変更を表示するように、アプリケーションを警告することにより、下位レベルのサポートを提供します。

ダイアログ

ダイアログボックス(またはダイアログ)は、通常、ユーザからの入力を要求するために表示されるウィンドウです。このウィジェットは、オプションのウィンドウマネージャ/ウィジェットパッケージに含まれている。

タッチスクリーン&マウスのサポート

アナログタッチパネルのタッチスクリーンのサポートが可能です。これは、アナログ入力(8ビットまたはADコンバータより良いから)、デバウンスおよびタッチスクリーンのキャリブレーションを処理する低レベルのドライバが含まれています。ウィンドウマネージャのタッチメッセージと、ボタンオブジェクトなどのウィジェットを扱う。その後、自動的にタッチメッセージを処理し、それに応じて反応するボタンまたは別のウィジェットを、作成するコードの1つしか線を取ります。ボタンウィジェットのようなウィンドウオブジェクトの場合は*、emWinはタッチスクリーンとマウスのサポートを提供しています。

メモリデバイスコンテキスト

メモリデバイスコンテキストは、CPUのメモリのディスプレイへの出力にセクションを作成することができます。すべての描画操作は、使用することができます。イメージが完全に構築されている場合、それはさらに遅いCPUや低速のディスプレイでフリッカーフリーアップデートできるように、単一の操作でディスプレイに転送されます。

VNCのサポート

VNCは、"仮想ネットワークコンピューティング"の略です。それは、本質的に、ユーザーはそれが実行されているマシン上で、しかし、どこからでもインターネット上でと、さまざまなからだけでなく、コンピューティング"デスクトップ"環境を表示することを可能にする簡単なディスプレイプロトコルに基づいて、クライアントサーバシステムです。マシンアーキテクチャ。TCP / IPを介してクライアントとサーバーが通信。emWin VNCのサポートは、個別のパッケージとして利用可能です。

ドライバ(レイヤ1)

ディスプレイドライバは、ディスプレイコントローラ(通常はLCDコントローラ)とこれらのコントローラのいずれかまたは複数に接続されているすべてのディスプレイの特定の家族をサポートしています。

マルチ/多層ディスプレイサポート

より多くのグラフィックコントローラのメーカー(富士通/東芝)は、柔軟なレイヤーの概念を提供します。複数層/複数の表示機能を使用すると、複数の層にアクセスすることができます。

アンチエイリアシング

アンチエイリアシングは、線と曲線のスムージングです。それは正確に水平または垂直ではない任意の行のギザギザ、階段状の外観を減らすことができます。emWinは差ferentアンチエイリアシングの品質、アンチエイリアスフォントや高解像度の座標をサポートしています。それは、オプションパッケージです。

Microsoft VisualのC + +を使用してemWin Windowsのシミュレーション

MSVCの下でのシミュレーション環境+ +利用可能です。それは、書き込みとPC(すべてのルーチンは、組込みアプリケーションに100%同一、CPUや液晶ディスプレイは、使用しているに関係なくです)上のユーザーインタフェース全体をテストするために使用することができます。

タッチスクリーンのシミュレーション

タッチスクリーンのシミュレーションは、通常のemWinシミュレーションに統合されています。マウスイベントは、タッチスクリーンをシミュレートするために使用されています。シミュレーションは、アプリケーションのユーザーインターフェイスを記述すると議論、デモや検証のために誰にでも簡単なexeファイルとして送信することができます使用することができます。

関連するソフトウェア

利用可能なPCツール

  • シミュレーションプラスビューア。
  • ビットマップコンバータ。
  • フォントコンバータ。

    emWinスターターキット

    "すぐに使える"スターターキットでは、実際のハードウェア上で動作し、マイクロコントローラや他の開発ツールと同様にemWinに慣れることができます。

    emWinサンプル

    サンプルは"C"コードの多くは、emWinの機能を実証するために提供されており、また、類似のアプリケーションで顧客が使用することができます。

    グラフィックスライブラリ(GUI)

     

     

    • 別の色深度のビットマップがサポートされています。
    • ビットマップコンバータが含まれています。
    • 絶対にない浮動小数点使用しません。
    • 高速線/点の描画(浮動小数点の使用なし)。
    • 円/多角形の非常に高速な描画。
    • 異なる描画モード。
    • フォントの多様が含まれています。
    • タッチスクリーンとマウスのサポートが含まれています。
    • シミュレーションが含まれています。

     


    すべての液晶ディスプレイがサポートすることができます

    ドライバは、モノクロ、グレースケールのパッシブとアクティブカラー(TFT)ディスプレイを含む、液晶ディスプレイのすべてのタイプのために書くことができます。すべての一般的な液晶ディスプレイ用LCDドライバはすでに存在している。


    フォント

     

    • 4 * 6,6 * 8,6 * 9、8 * 8、8 * 9、8 * 16、8 * 17、8 * 18、24 * 32、およびプロポーショナル:異なる、さまざまなフォントは、基本的なソフトウェアが同梱されています8、10、13、16のピクセルの高さとフォント。
    • 新しいフォントが定義されており、単にインチリンクすることができます
    • 唯一のアプリケーションで使用されるフォントは、実際には最小限のROMを使用する結果、生成される実行可能にリンクされています。
    • フォントは、XとYで別々に、完全にスケーラブルです。
    • 利用可能なフォントコンバータ、ご使用のホストシステム(すなわち、Microsoft Windowsの)上で利用可能なフォントを変換することができます。

    カラーマネジメント

    emWinは統合された、非常に効率的なカラーマネージメントシステムを採用しています。このシステムは、LCDが実行時 に表示できる物理的な色への色の論理色の変換(RGB形式)ができます。この方法は、アプリケーションが実際に利用可能な色と非常にに気にする必要がない、液晶ディスプレイは、簡単に交換することができます。最適化されたアプリケーションの場合、システムはまた、コンパイル時(事前に)で、アプリケーションプログラマによってまたはビットマップコンバータによって生成されたインデックスを使用してビットマップを表示することができます。

    小さなメモリフットプリント

    emWinはできるだけ小さいメモリフットプリントを持つように設計されています。様々なコンフィギュレーションスイッチは最小限にメモリ消費量を削減する、完全にあなたのニーズに合うようにソフトウェアを調整することができます。メモリ要件は、ソフトウェアの部品が使用されるかによって、どのように効率的なターゲットコンパイラが異なります。それは正確な値を指定することは不可能ですが、次は、一般的なシステムに適用されます。

    小規模なシステム(ウィンドウマネージャ)
    • RAM:100バイト
    • スタック:500バイト
    • ROM:10〜25キロバイト(使用される機能に応じて)
    ビッグシステム(ウィンドウマネージャやウィジェットを含む)
    • RAM:2〜6キロバイト(窓の必須の数に応じて)
    • スタック:1200バイト
    • ROM:30〜60キロバイト(使用される機能に応じて)

    層の構造

    emWinは、ゼロから再設計されました。:それは個別に使用できる4層で構成され、
    レイヤ4:ウィンドウマネージャ
    レイヤ3:ウィジェットライブラリ
    レイヤ2:グラフィックライブラリ
    レイヤ1:LCDドライバ(複数可)

    アプリケーションノート

    embOS / IP Webサーバ

    embOS / IPのWebサーバ

    embOS / IP WebサーバはスタックにHTTPプロトコルを追加するオプションの拡張です。それは、小さなメモリフットプリントとパフォーマンスの最大を兼ね備えています。Webサーバは、組み込みシステムが動的に生成されたコンテンツでWebページを提示することができます。複数の接続、認証、フォームや低RAMの使用量:一般的には、組込みシステムに必要なすべての機能が付属しています。RAMの使用量は、スマートバッファ処理によって最小限に抑えられている。

    Webサーバは、コメント(RFC)の次のリクエストの関連する部分を実装しています。

    RFC 説明
    [RFC 1945] HTTP -ハイパーテキスト転送プロトコル- HTTP/1.0
    のダイレクトリンク:http://tools.ietf.org/html/rfc1945
    [RFC 2616] HTTP -ハイパーテキスト転送プロトコル- HTTP/1.1
    のダイレクトリンク:http://tools.ietf.org/html/rfc2616

     

    機能リスト

    • 低メモリフットプリント。
    • 動的なWebページ(サーバーサイドインクルード)。
    • 認証がサポートされています。
    • フォーム:POSTおよびサポートを受けることができます。
    • 複数の接続はサポートされています。
    • CへのコンバータHTMLが含まれています。
    • R / Oファイルシステムが含まれています。
    • ファイルシステムに依存しない:任意のファイルシステムを使用することができます。
    • TCP / IPスタックの独立:ソケットを持つ任意のスタックを使用することができます。
    • 認証、様々な形式のデモでは、動的なページが含まれています。
    • Microsoft Visual Studio用のPC上で実行可能ファイルのプロジェクトが含まれています。

      要件

      TCP / IPスタック

      embOS / IP Webサーバは、TCP / IPスタックが必要です。それはembOS / IP用に最適化されていますが、任意のRFC準拠のTCP / IPスタックを使用することができます。出荷は、標準のWinsock APIとembOS / IPのソケットAPIを使用して実装を使用するWin32のシミュレーションが含まれています。

      タスキング、マルチ

      Webサーバは別のスレッドとして実行する必要があります。そのため、マルチタスクシステムはembOS / IPのWebサーバを使用するために必要です。

      HTTPの背景

      HTTPはもともとハイパーテキストのページを経由して情報を転送するために設計された通信プロトコルです。HTTPの開発は、IETF(インターネットエンジニアリングタスクフォース)とW3C(World Wide Webコンソーシアム)によって調整されます。現在のプロトコルバージョンは1.1です。

      HTTP通信の基礎

      HTTPは、チャレンジと応答プロトコルです。クライアントは、WebサーバへのTCP接続を開始し、HTTP要求を送信します。HTTPリクエストは、メソッドトークンで開始されます。[RFC 2616]は8メソッドのトークンを定義します。メソッドトークンは要求されたリソース上で実行されるメソッドを示します。embOS / IPのWebサーバは通常、組み込みWebサーバが必要とするすべてのメソッドをサポートしています。

      HTTPメソッド 説明
      GET、 GETメソッドはRequest - URIによって識別されているものについては取得することを意味します。
      HEAD HEADメソッドは、Request - URIによって識別されたコンテンツのヘッダを取得することを意味します。
      POST POSTメソッドは、特定されたリソースに処理するデータを送信します。データは、要求の本体に含まれています。

      次の例は、クライアント(たとえば、192.168.1.75)がembOS / example.htmlハイパーテキストのページのためのIPのWebサーバに要求のHTTPセッション、の部分を示しています。
      要求は、要求が終了するように、空行が続いているダブル新しいライン、ラインフィードに続くキャリッジリターンの形でそれぞれ持つ。

      example.html GET / HTTP/1.1
      ホスト:192.168.1.75

      すべての応答メッセージの最初の行は、数値のステータスコードに続くプロトコルバージョンから構成される、ステータスラインです。ステータスラインは、コンテンツタイプ、サーバ、有効期限と転送エンコーディングが続いている。サーバの応答が転送されるべきコンテンツの長さが続く、空行で終わります。長さはバイト単位でWebページの長さを示します。

      HTTP/1.1 200 OK
      Content - Typeの:text / htmlの
      サーバー:embOS / IPが
      有効期限:木、1995年10月26日00:00:00 GMT
      にTransfer - Encoding:チャンク A3

      その後、Webサーバは、クライアントに要求されたハイパーテキストのページを送信します。空行が続くのWebページの末尾のゼロは、要求されたWebページの送信が完了したことをsignalizes。



      embOS / IP 例



      ウェブサイト:example.htm


      0

       

      HTTP通信の基礎

      HTTP応答の最初の行はステータス行です。それは使用されるプロトコルのバージョン、ステータスコードとステータスコードの簡単な説明で構成されています。ステータスコード要素は、要求を理解し、それに答えようとした試みの3桁の整数の結果コードです。

      ステータスコードの最初の数字はレスポンスのクラスを定義します。最後の2桁は、カテゴリー化する役割を持っていない。最初の桁には、5つの値があります。

      • 1XX:情報 - リクエストは、継続的なプロセスを受け取りました。
      • 2xx:成功 - アクションが正常に受信、解釈、および受け入れられた。
      • 3xx:リダイレクト - さらなるアクションがリクエストを完了するために注意する必要があります。
      • 4xx:クライアントエラー - リクエストに間違った構文が含まれているかを満たすことができない。
      • 5xxの:サーバーエラー - サーバーが明らかに有効な要求を満たすために失敗しました。

        embOS / IP Webサーバは、定義されたHTTPステータスコードのサブセットをサポートしています。[RFC 2616]を参照して定義されたステータスコードの完全な一覧について。

        Common Gateway Interface(CGI)

        インタフェースのようなのCommon Gateway Interface(CGI)は、Webページに動的コンテンツを実装するために使用されます。全てのWebページは、サーバで要求が受信されるたびに解析されます。サーバは特殊なタグのためのWebページを検索します。デフォルトの設定では、検索タグは.で終わります タグは、分析され、パラメータが抽出されます。このパラメータは、サーバ側のコマンドを指定し、コマンドを処理できるユーザアプリケーションに与えられます。次のスクリーンショットは、例のページがindex.htmを示しています。

        ページのHTMLソースには、次の行が含まれています。

         


        Webページが要求されると、サーバはタグを解析し、パラメータのカウンタは、型のWEBS_CGIの構造体の配列内で検索されます。構造は、コマンドとパラメータが見つかった場合に呼び出される関数へのポインタを識別する文字列が含まれています。

        します。typedef struct {
        const char *をsnameの; / /例:"カウンター"
        無効(* PF)(WEBS_OUTPUT * pOutput、const char *をsParameters、const char *をsValue);
        } WEBS_CGI。

        この例では、カウンタは有効なパラメータであり、関数_callback_ExecCounterが呼び出されます。あなたがWEBS_CGI配列と、アプリケーションでコールバック関数を実装する必要があります。

        静的なconst WEBS_CGI _aCGI [] = {
        {"カウンター"、_callback_ExecCounter}、
        {"GetOSInfo"、_callback_ExecGetOSInfo}、
        {"GetIPAddr"、_callback_ExecGetIPAddr}、
        {NULL}
        };

        ExecCounter()はCGI機能を使用する方法の簡単な例です。それはExecCounterへのすべての呼び出し()でインクリメントされる変数の値を含む文字列を返します。

        ボイドExecCounter(WEBS_OUTPUT * pOutput、const char *をsParameters、const char *をsValue){
        char型AC [40];
        静的char CNT = 1;
        (AC、"あなたなしの訪問者です。:%d"は、CNT)はsprintf、
        IP_WEBS_SendString( pOutput、AC)、
        CNT + +;
        }

        Webサーバーのアプリケーションに新しいCGI機能を追加

        新しいCGIの機能を定義するには、三つのことが行われなければならない。
        1。WEBS_CGIの構造体へのタグとして使用する新しいコマンド名を追加します。
        例:UserCGI

        静的なconst WEBS_CGI _aCGI [] = {
        、} _callback_ExecCounter、{"カウンター"
        、{"GetOSInfo"、_callback_ExecGetOSInfo}
        、{"GetIPAddr"、_callback_ExecGetIPAddr}
        、{"UserCGI"、_callback_ExecUserCGI}
        {NULL}
        };

        2。アプリケーションのソースコードに新しい機能を実装します。

        ボイド_callback_ExecUserCGI(WEBS_OUTPUT * pOutput、const char *をsParametersはconst char * sValue){
        ここに/ *追加のアプリケーションのコード* /
        }

        3。あなたのWebページのソースコードに新しいタグを追加します。

         

        認証

        "HTTP/1.0"は、基本アクセス認証スキームの仕様が含まれています。ユーザー名とパスワードはクリアテキストとしてネットワークを介して渡されるため、基本的な認証スキームは、HTTPサーバー上のリソースへの不正アクセスをフィルタリングの非安全な方法です。それは、クライアントとサーバー間の接続が信頼できるキャリアとみなすことができるという前提に基づいています。これはオープンなネットワーク上で一般的に事実ではないので、基本認証法を使用するべきである。

        基本アクセス認証スキームは、で説明されています:

        RFC 説明
        [RFC 2617] HTTP認証:BasicおよびDigestアクセス認証
        の直接リンク:http://tools.ietf.org/html/rfc2617

        "基本"認証スキームは、クライアントがユーザーIDおよび各レルムのパスワードを使用して自身を認証しなければならないというモデルに基づいています。realm値は、そのサーバー上の他の領域と等しいかどうかを比較することができる不透明な文字列を考慮する必要があります。サーバは、Request - URIの保護空間用のユーザIDとパスワードを検証できる場合にのみ、要求を処理します。は、オプションの認証パラメータはありません。保護空間内のURIに対して、未認証のリクエストを受け取ると、サーバは以下のような課題に応答する必要があります。

        WWW認証:基本レルムは="embOS / IP組み込みWebサーバ"

        ここで、"embOS / IPの組み込みWebサーバーは、"Request - URIの保護空間を識別するためにサーバによって割り当てられた文字列です。認可を受信するには、クライアントが資格にbase64でエンコードされた文字列内で、単一のコロン(":")文字で区切られた、ユーザIDとパスワードを送信します。ユーザエージェントがユーザID"user"とパスワード"pass"を送信したい場合には、以下のヘッダフィールドを使用します。

        承認:基本dXNlcjpwYXNz

        認証の例

        クライアントが認証を必要とするリソースを要求します。

        GET / confに/ Authen.htm HTTP/1.1
        ホスト:192.168.1.75

        サーバは"401 Unauthorized"というステータスページを使用して要求に答えます。401エラーページのヘッダーには、addionalラインのWWW - Authenticate含まれています。それは適切なユーザ名とパスワードがクライアント(たとえば、Webブラウザ)から送信されるべきレルムが含まれています。

        HTTP/1.1 401不正な
        日付:Mon、2008年2月4日午前17時00分44秒GMT
        サーバ:embOS / IP
        Accept -レンジ:バイト
        Content - Length:695
        接続:近い
        Content - Type:text / htmlの
        X -パッド:ブラウザのバグを避けるため
        WWW - Authenticate:基本領域="embOS / IPの組み込みWebサーバ" 401不正

        401不正 ブラウザではない認証-対応または認証が失敗しました。









        クライアントは、ヘッダを解釈し、リソースのレルムに対してユーザー名とパスワードの組み合わせを入力するダイアログボックスが開きます。

        要求されたレルムの適切なユーザー名/パスワードの組み合わせを入力し、[OK]ボタンで確定。クライアントは、base64エンコードされた文字列と、再度リソースを要求するユーザ名/パスワードの組み合わせをエンコードします。認可::基本dXNlcjpwYXNzリクエストヘッダは、次の行によって強化されています

        / confに/ Authen.htm HTTP/1.1 GET、
        192.168.1.75:ホスト
        認証:基本dXNlcjpwYXNz

        領域の定義されたユーザー名/パスワードの組み合わせにデコードされた文字列が一致すればサーバをデコードユーザー名/パスワードの組み合わせとチェック。文字列が同一である場合、サーバはページを提供します。文字列が同一でない場合、サーバは"401 Unauthorized"というステータスページで再度回答します。

        HTTP/1.1 200 OK
        Content - Type:text / html
        サーバー:embOS / IP
        有効期限:木、1995年10月26日00:00:00 GMT
        Transfer - Encoding:チャンク化された 200 ウェブサーバ設定 0











        認証の設定

        embOS / IPのWebサーバはそれを返す前にすべてのリソースのアクセス権をチェックします。ユーザーは、Webサーバーのリソースの異なる部分を分離するために別のレルムを定義することができます。WEBS_ACCESS_CONTROL構造体の配列は、ユーザのアプリケーションで実装する必要があります。WEBS_ACCESS_CONTROLの構造体の要素の詳細については、164ページの構造WEBS_ACCESS_CONTROLを参照してください。認証を使用しないする必要がある場合、配列はルートのパスの1つだけのエントリが含まれています。

        WEBS_ACCESS_CONTROL _aAccessControl [] = {
        {"/"、NULL、NULL}、
        0
        };

        領域"conf"を定義するには、追加のWEBS_ACCESS制御エントリは、実装する必要があります。

        WEBS_ACCESS_CONTROL _aAccessControl [] = {
        {"/ confに/"、"設定のためのログイン"、"user:pass"}、
        {"/"、NULL、NULL}、
        0
        };

        文字列"構成のためのログインは、"レルムを定義します。"user:passはは"一つの文字列に格納されているユーザー名/パスワードの組み合わせです。

        フォームの処理

        embOS / IPのWebサーバは両方のPOSTをサポートし、クライアントからフォームデータを受信するためのアクションを取得します。POSTは、識別されたリソースに処理するデータを送信します。データは、要求の本体に含まれています。唯一のリソースを要求するために使用される通常ですが、それは、Webアプリケーション内のアクションのためにGETを使用することも可能になってしまう。サーバ側のデータ処理は、新しいリソースを作成するか、既存のリソースまたは両方を更新する可能性があります。

        すべてのHTMLフォームでは、これらの入力の各項目は、名前のタグを持つテキストフィールドなどの入力項目、ボタン、チェックボックスなどで構成されています。ユーザーがフォームでこれらの項目にデータを置くと、その情報がフォームデータにエンコードされます。フォームデータは"&"文字で区切られた = ペアのストリームです。入力項目のそれぞれがユーザーによって指定された値は値と呼ばれています。 = ペアをURLエンコードされ、これはスペースが"+"に変更され、特殊文字を十六進値にエンコードされていることを意味します。[RFC 1738]を参照してURLエンコーディングの詳細については。フォームデータの解析とデコードがembOS / IPのWebサーバによって処理されます。その後、サーバはパラメータとしてデコードされ、解析された文字列でコールバック関数を呼び出します。コールバック関数を実装する責任はユーザー側にあります。

        簡単なフォーム処理のサンプル

        次の例では、WebサーバーのアプリケーションとHTMLフォームの出力の処理を示しています。例のWebページのExampleGET.htmは、3入力、2つのテキストフィールドとボタン1つでフォームを実装しています。

        それがサーバーに追加されるWebページのHTMLコードは次のとおりです。


        embOS / IPのWebサーバのフォームの例



        お名前:
        <入力名="姓" span="">
        タイプ="text"サイズ="30"
        maxlength ="30"
        の値=""
        >


        姓:
        <入力名="姓" span="">
        タイプ="テキスト"
        サイズ="30"
        maxlength ="30"
        の値=""
        >






        フォームのactionフィールドは、フォームのデータ埋めに戻って送信するときに、ブラウザが参照する必要があるリソースを指定することができます。actionフィールドは、リソースが定義されていない場合、現在のリソースが再び要求されます。あなたはembOS / IPのWebサーバからWebページを要求し、Webブラウザ、CGI部品""でページのソースをチェックし、""が実行されます。


        embOS / IP Webサーバのフォームの例



        お名前:
        <入力名="姓" span="">
        タイプ="text"サイズ="30"
        もしmaxlength ="30"
        値=""
        >


        姓:
        <入力名="姓" span="">
        タイプ="text"
        サイズ="30"
        もしmaxlength ="30"
        値=""
        >






        フォーム処理を開始するには、FirstNameとLastNameフィールドに記入し、送信ボタンをクリックする必要があります。例では、ブラウザはフォームやURLに追加エンコードされた文字列などのリソース名へのフォームデータで参照されるリソースのGET要求を送信します。フォームのデータは、リソース名から分離されている"?"。すべての = のペアが"&"で区切られます。

        あなたが[LastName]フィールドで[FirstName]フィールドジョンとドウに入力し、[送信]ボタンをクリックして入力を確定たとえば、次の文字列はサーバーに送信され、ブラウザのアドレスバーに表示。

        http://192.168.1.230/ExampleGET.htm?FirstName=John&LastName=Doe

        注:あなたがHTTPメソッドとしてPOSTを使用する場合は、名前> = ペアは、ブラウザのアドレスバーに表示されていない。 = のペアは、このケースではエンティティボディに含まれています。

        embOS / IP Webサーバは、フォームデータを解析します。フィールドはフィールドを処理するために呼び出されるCGIの関数の名前を指定します。エントリがWEBS_CGI配列で利用可能な場合、サーバーはそのためかどうかをチェックします。

        静的なconst WEBS_CGI _aCGI [] = {
        {"姓"、_callback_ExecFirstName}、
        {"姓"、_callback_ExecLastName}、
        {NULL}
        };

        エントリが見つかった場合、指定したコールバック関数が呼び出されます。
        パラメータの姓のためのコールバック関数が以下のように定義されている。

        /************************************************* ********************
        *
        *静的データ
        *
        ************************* *********************************************
        * /
        静的char _acFirstName [12]; /********************************************* ************************ * * _callback_FirstName * / 静的ボイド_callback_ExecFirstName(WEBS_OUTPUT * pOutput、const char *をsParameters、const char *をsValue){ 場合( sValue == NULL){ IP_WEBS_SendString(pOutput、_acFirstName); }他{ _CopyString(_acFirstName、sValue、はsizeof(_acFirstName)); } }











        sValueがNULLの場合、この関数は文字列を返します。sValueが定義されている場合は、文字配列に書き込まれます。HTTP伝送方法は、GETおよび充填入力フィールドの値を送信するPOSTだけなので、同じ関数は、入力フィールドの格納値を出力するか、新しい値を設定するために使用することができます。Webページの例は、入力フィールドの値としてFirstNameとLastNameの新しい値を入力し、入力を送信した後に表示されます。

        Webブラウザから見たWebページのソースは次のとおりです。


        embOS / IPのWebサーバのフォームの例



        お名前:
        <入力名="姓" span="">
        タイプ="text"サイズ="30"
        もしmaxlength ="30"
        値="ジョン"
        >


        姓:
        <入力名="姓" span="">
        タイプ="text"の
        サイズ="30"
        もしmaxlength ="30 "
        値="ドウ"
        >






        リソースの使用状況

        ROMの使用量は、コンパイラオプション、コンパイラのバージョンと使用するCPUに依存します。ARM7、IAR Embedded WorkbenchはV5.11、Thumbモード、サイズの最適化:下の表に示されるウェブサーバのメモリ要件は、次のようにシステム上で測定されている。

        コンフィギュレーションに使用

        #WEBS_IN_BUFFER_SIZE 128が定義する
        #128はWEBS_OUT_BUFFER_SIZE定義
        #WEBS_TEMP_BUFFER_SIZE 128を定義する
        #WEBS_ERR_BUFFER_SIZE(WEBS_OUT_BUFFER_SIZE / 2)を定義
        #WEBS_AUTH_BUFFER_SIZE 32定義
        #WEBS_FILENAME_BUFFER_SIZE 32の定義

        ROMの使い方

        アドオン ROM [キロバイト]
        embOS / IPのWebサーバ 5.4

        RAM使用量

        タスク 説明 RAM [バイト]
        ParentTask 着信接続をリッスンします 500

        ChildTask

        要求を処理 1800

        Webサーバは、少なくとも1つの子タスクが必要です。
        Webサーバーの約RAM使用量は次のように計算することができます。

        RAM使用量= 0.1 Kバイト+ ParentTask +(NumberOfChildTasks * 1.8キロバイト)

        例:1のみ接続を受け付けるWebサーバ

        RAM使用量= 0.1 Kバイト+ 0.5 Kバイト+(1 * 1.8 Kバイト)
        RAM使用量= 2.4キロバイト

        例:並列で3まで受け付けるWebサーバ

        RAM使用量= 0.1 Kバイト+ 0.5 Kバイト+(3 * 1.8 Kバイト)
        RAM使用量= 6.0キロバイト

         

        詳細についてはマニュアルを含めWindowsの試用版をダウンロードしてください。

        embOS / IP SMTPクライアント

        embOS / IP SMTPクライアント

        embOS / IP、SMTPクライアントがシームレスに集積化おろしたあなたのTCP / IPアプリケーションに指定できるオプションの拡張です。それは、小さなメモリフットプリントとパフォーマンスの最大を兼ね備えています。SMTPクライアントは、組込みシステムが動的に生成されたコンテンツを電子メールにて送信することができます。SMTPクライアントモジュールのRAMの使用量は、スマートバッファ処理によって最小限に抑えられている。SMTPクライアントは、COM - ments(RFC)の次のリクエストの関連する部分を実装している。

        RFC#説明
        [RFC 821] 簡易メール転送プロトコル
        直接ダウンロード:ftp://ftp.rfc-editor.org/in-notes/rfc821.txt
        [RFC 974] メールルーティングとドメインシステム
        直接ダウンロード:ftp://ftp.rfc-editor.org/in-notes/rfc821.txt
        [RFC 5321] 簡易メール転送プロトコル
        直接ダウンロード:ftp://ftp.rfc-editor.org/in-notes/rfc5321.txt

        次の表は、embOS / IPのSMTPクライアントのルートディレクトリの内容を示しています。

        ディレクトリコンテンツ
        アプリケーション embOS / IPを使用してSMTPクライアントを実行するためのサンプルアプリケーションが含まれています。
        設定 SMTPクライアントの設定ファイルが含まれています。詳細については、225ページの構成を参照してください。
        株式会社 必要なインクルードファイルが含まれています。
        IP IP_SMTPC.cとIP_SMTPC.hは、SMTPクライアントのソースが含まれています。
        WindowsSMTPC ソース、プロジェクトファイルとMicrosoft Windowsホスト上でembOS / IP SMTP CLI - ENTを実行する実行可能ファイルが含まれています。

        embOS / IPSMTPクライアントパッケージの登録ディレクトリ構造


        機能リスト

        • 低メモリフットプリント。
        • TCP / IPスタックの独立:ソケットを持つ任意のスタックを使用することができます。
        • サンプルアプリケーションが含まれています。
        • Microsoft Visual Studio用のPC上で実行可能ファイルのプロジェクトが含まれています。

          要件

          TCP / IPスタック
          embOS / IP、SMTPクライアントは、TCP / IPスタックが必要です。それはembOS / IP用に最適化されていますが、任意のRFC準拠のTCP / IPスタックを使用することができます。出荷は、標準のWinsock APIとembOS / IPのソケットAPIを使用して実装を使用するWin32のシミュレーションが含まれています。マルチタスキングのSMTPクライアントが別のスレッドとして実行する必要がある。そのため、マルチタスクシステムはembOS / IPのSMTPクライアントを使用するために必要です。


          SMTPの背景

          簡易メール転送プロトコルは、IPネットワークを介した電子メールの送信用のテキストベースの通信プロトコルです。

          SMTPを使用して、embOS / IPアプリケーションは、同じネットワーク上のSMTPサーバへのまたは両方のネットワークにアクセス可能なリレーまたはゲートウェイサーバーを介して他のネットワークのSMTPサーバーへメールを転送することができます。embOS / IP、SMTPクライアントが送信するメッセージを持っている場合、それはハンドシェイクメッセージの内容の後にSMTPサーバと送信にTCP接続を確立します。ハンドシェイクメカニズムは、通常、認証プロセスが含まれています。RFCの次の4つの別の認証スキームを定義します。

          • PLAIN
          • LOGIN
          • CRAM - MD5
          • NTLM

            現在のバージョンでは、embOS / IP、SMTPクライアントはPLAIN認証をサポートしています。

             

            次のリストは、典型的なSMTPセッションを示しています。

             

            S:220 srv.sample.com ESMTP
            C:HELO
            S:250 srv.sample.com
            C:AUTH LOGIN
            S:334 VXNlcm5hbWU6
            C:c3BzZXk29IulbkY29tZcZXIbtZ
            S:334 UGFzc3dvcmQ6
            C:UlblhFz7ZlblsZlZQ ==
            S:235先に進んで
            C:からのメール:
            S:250 OK
            C:RCPT TO:
            S:250 OK
            C:RCPT TO:
            S:250 OK
            C:RCPT TO:
            S:250 OK
            C:DATA
            S:354、先に行く
            C:メッセージ- ID:
            C:から:"USER0"
            C:TO:"ユーザー1"
            C:CC:"ユーザー2"、"ユーザー3"
            C:件名:Testmail
            C:日付:2008年1月1日0時00分0100
            C:
            C:これはテスト!
            C:
            C:。
            S:250 OK 1231221612 QP 3364
            C:終了
            S:221 srv.sample.com