問題タブ [ecos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - eCos を i386 に移植する
eCos を i386 PC に移植しようとしています。
http://ecos.sourceware.org/ecos/boards/redbootbins/x86pc/からビルド済みの redboot.bin をダウンロードしました 。
dd conv=sync if/redboot.bin of=/dev/sdb1 を使用して、USBディスクで起動します
USB からターゲットを起動した後、「IA2!」と表示されます。ターゲットモニターの文字列は常に、38400 8n1 構成のシリアルポートでは何も受信しません。
i386-elf-gdb を使用してみましたが、ターゲットに接続できず、「Ignoring error packet, Continuing...」の出力を開始します。
また、i386 の configtool を使用して redboot をビルドしようとしましたが、ライブラリをビルドすることしかできません。
私は eCos を始めたばかりで、何が間違っているのかわかりません!!.
c - eCos : Linux でのサンプル アプリケーションのコンパイルと実行
Linux システム (Ubuntu 13.02) に eCos OS をインストールしました。インストール後、eCos ファイルは にありますopt/ecos
。
eCos のチュートリアルを読んでみると、hello.c
が保存されていることがわかりますopt/ecos/ecos-3.0/examples/hello.c
(そして、おそらくすべてのメインの eCos システム ファイルが ecos-3.0 ディレクトリに保存されていることに気付きました)。
公式 Web サイトにある eCos チュートリアルに従いましたが、まだ hello.c を正常にコンパイルできません。
もっと詳しく。実行しようとすると:
エラーが発生します:TARGET-gcc : command not found
他のチュートリアルをいくつか試しましたが、まだ問題があります (面倒すぎてここにリストできません)。
hello.c
eCos システムでのコンパイルに関する段階的な説明を探しています。eCos のマニュアルには、この分野が欠けているようです。
ありがとう :)
c++ - stm32f4vg407 用の eCos 構成ツール
eCos RTOS を使用して、stm32f4 ディスカバリー ボードで点滅の例をテストしたいと考えています。しかし、eCos configtool には、stm32f4 用の構成テンプレートがありません。
誰でもこの問題を回避するのを手伝ってもらえますか? ありがとう
ecos - STM32Cube eCos 用の CMSIS レイヤー
eCosでSTM32Cubeを使用する既存のCMSISレイヤーがあるかどうかは誰にもわかりませんか? 存在しない場合、eCos を STM32Cube ライブラリに統合するのはどれくらい複雑ですか?
ssl - OpenSSL 1.0.2 を ECOS に移植した後の不良 MAC
ECOS OSを実行している組み込みシステムで OpenSSL を実行しています。現在、OpenSSL を 1.0.2 バージョンにアップグレードしています。OpenSSL ライブラリの移植とコンパイルに成功しました。しかし、SSL (https 経由) を使用してデバイスを接続しようとすると、ハンドシェイクは常に不良レコード mac アラートで失敗します。OpenSSL デバッグ オプションを有効にしましたが、失敗する理由を特定できません。
誰かが最新の OpenSSL コードを ECOS に移植しましたか? ECOS 用の最新の OpenSSL コードで特別なコンパイル フラグを取得する必要はありますか?
参考までに、 の関連部分を次に示しますssl3_get_record
。
dns - getaddrinfo と gethostbyname によりシステムがハングアップする
eCosプロジェクトに取り組んでいますが、大きな問題があります。何らかの理由で、実稼働環境でgetaddrinfoとgethostbynameがシステム全体をハングアップさせることがあります。
DNSが応答しない場合、これはLinuxでも問題になることを読みました。Linux でこの問題を解決するために、getaddrinfo_aという別の関数が作成されています。
現在、eCos で DNS ルックアップを行うためのフェイルセーフ ソリューションを探しています。少なくとも、システム全体をハングアップさせたくありません。自分の DNS が IP アドレスを配信することを 100% 確実にする必要がありますか? そうでない場合、システムが停止してしまいますか?
独自の DNS 実装を作成することを考えましたが、それは少し抜本的すぎるように感じます。外部ライブラリを使用することも考えましたが、その場合、eCos で動作し、商用プロジェクトで使用できるライセンスを持つものが必要です。
real-time - ecos のすべてのスレッドを停止し、main を実行します
次の問題があります: マイクロ コントローラーに ecos を使用し、'cyg_scheduler_start();' で複数のスレッドを開始します。「cyg_thread_exit()」で問題ありません。しかし、最後のタスクを停止すると、マイクロ コントローラーはスレッドを呼び出すメインに戻りません。メインは、スレッドの開始後に実行する必要があります。
または少なくとも、最初のスレッドが終了した後に他のスレッドを開始します。私は現時点cyg_thread_suspend
でcyg_thread_resume
これを実現するために使用しています。しかし、これを行うためのより良い方法はありますか?
embedded - この sscanf() の呼び出しが 1 つの引数に一致しすぎるのはなぜですか?
eCos オペレーティング システムの関数を使用しsscanf()
て、ユーザーが提供するコマンドライン コマンドを解析します。基本的にこれを行うコードがあります。
しかし、 を含むコマンド バッファで呼び出すと、コマンドに2 つの引数しか指定されていない場合でもcommand arg1 40.0
、分岐に入ります。ブランチが実行されるsuccess
ことを期待していたでしょう。error
多くのprintf()
ステートメントを使用して、呼び出し後の変数の値を次に示しますsscanf()
。
単体テストでこの動作を再現することはできません。壊れた実装を疑う前にsscanf()
、別の説明ができるでしょうか?
アップデート
eCos オペレーティング システムは、独自のバージョンの C 標準ライブラリを実装しています。%s
以下は、フォーマット指定子を処理するコード フラグメントです。それが役立つかどうかはわかりませんが、ここにバグがある可能性がますます高まっています.
c - eCos OS で現在のシステム時刻をマイクロ秒の精度で取得するにはどうすればよいですか?
デフォルトの eCos 精度は1 ticks = 10 ms
です。
eCos OS が提供するcyg_current_time();
cyg_current_time を tick_per_one_ms で割って SystemTime_MS を取得できます。
(例えば)GetSystemTime = cyg_current_time() / 10;
私たちの精度でシステム時間を取得するにはどうすればよいですか?
私たちの精度のために1つの時間間隔を計算したい.
例 ( A() にかかった時間を知りたい):
多くの方法を試しましたが、うまくいきませんでした。
- gettimeofday: eCos が実装しているように見えますが、それでもミリ秒の精度です。
- get tick: ただし、1 ティックは 10ms です。これは、コンテキストの切り替え時間がミリ秒の精度であることを意味します。
- タイマー、時計など....
私が言いたいのは、正確な精度で現在のシステム時刻を取得する関数を実装したいということです。