問題タブ [embedded]
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 - 組み込みシステムで型の抽象化を使用する必要がある場合
さまざまな組み込みシステムの開発に携わってきました。それらはすべて、 などの型にtypedef
s (または#defines
) を使用していUINT32
ます。
これは、型のサイズをプログラマーに認識させ、オーバーフローなどの可能性をより意識させるため、優れた手法です。
しかし、一部のシステムでは、コンパイラとプロセッサがプロジェクトの存続期間中変更されないことがわかっています。
では、プロジェクト固有の型を作成して適用するという決定に影響を与えるものは何でしょうか?
編集私は自分の質問の要点をなんとか失ったと思います。おそらくそれは本当に2つです。
組み込みプログラミングでは、インターフェイスに特定のサイズの型が必要になる場合があり、RAM などの限られたリソースに対処するためにも必要になる場合があります。これは避けられませんが、コンパイラからの基本的な型を使用することを選択できます。
それ以外の場合、型の重要性は低くなります。
オーバーフローが発生しないように注意する必要があり、レジスタとスタックの使用に注意する必要がある場合があります。につながる可能性がありUINT16
ますUCHAR
。UCHAR
ただし、コンパイラの「綿毛」を追加できるなどのタイプを使用します。レジスターは一般的に大きいため、一部のコンパイラーはコードを追加して、結果を強制的に型に入れる場合があります。
だから、私の質問は次のようになるべきだったと思います:-
組み込みソフトウェアの制約を考えると、多くの人がそれに取り組むプロジェクトに設定する最善のポリシーは何ですか - すべての人が同じレベルの経験を持つわけではありません.
debugging - リリースモードアプリケーションをデバッグするための最良の方法
これは以前に人々に起こったことがあると確信しています。何かがデバッグモードで動作し、リリースでコンパイルし、何かが壊れます。
これは、Embedded XP環境で作業しているときに発生しました。実際にそれを行うための最善の方法は、ログファイルを書き込んでどこで問題が発生するかを判断することでした。
厄介なリリースモードのバグに対処しようとしているあなたの経験/発見は何ですか?
c++ - ジャンプテーブルとは何ですか?
誰かがジャンプテーブルの仕組みを説明できますか、そしてなぜ組み込みシステムで必要になるのでしょうか?
c++ - C / C ++で%(モジュラス)を使用する代わりの方法はありますか?
整数除算命令を持たない8ビットマイクロコントローラーのような小さな組み込みデバイスでは、モジュラス演算子が非効率的であることをどこかで読んだことがあります。おそらく誰かがこれを確認することができますが、違いは整数除算演算よりも5〜10倍遅いと思いました。
カウンター変数を保持し、modポイントで手動で0にオーバーフローする以外に、これを行う別の方法はありますか?
vs:
私が現在それをしている方法:
windows - リモート NDIS に対する Windows XP のサポート
Ethernet over USB (Linux、XP、および Vista でホスト) をサポートする必要があるデバイスの開発を検討しています。私の理解では、Vista と Linux は業界標準の USB CDC をサポートしています。ただし、従来の Windows スタイルでは、XP は独自のリモート NDIS のみをサポートします。だから今、私はXP用に独自のCDCドライバーを展開するのではなく、ただお辞儀をしてRNDISでそれを行うことを考えています。
XPでさえNDISでかなりバグがあると書かれている古いドキュメントを読んでいます(驚き!)。XP の RNDIS ドライバーを使用した経験のある人はいますか? それらは製品開発にとって安全ですか?どんな洞察も大歓迎です。
c - ネットワークの状態を確認し、プログラムで PPP を制御する
だから私はセルラーモデムを使って Linux で PPP を走らせています。私が書いているプログラムは、データを送信する前にリンクがアクティブかどうかを知る必要があります。
チェックするオプションは何ですか
- リンクが利用可能な場合
- 私が制御するサーバーにルーティングする場合 (前に述べたように、インターネットには接続しません)
また、それを再起動する最良の方法は何ですか-開始と停止のタイミングをプログラムで制御したいので、 init.d は適切ではないと思います。を使用system()
しても PID が得られないようです。呼び出しfork()
の群れ以外に他のオプションはありますか?exec??()
C on Linux on ARM (buildroot を使用したカスタム ディストリビューション)。
localization - マイクロコントローラで複数の言語をサポートするには?
現在、中国市場向けの製品のアップグレードに取り組んでいます。ターゲットは QVGA ディスプレイの ARMTDMI7 です。私がネット上で見つけたほとんどのリソースは、組み込みデバイスではなく、デスクトップまたは Web プログラミングを対象としています。
- 役立つツールやリソースを提案できる人はいますか?
- リテラル文字列を抽出し、翻訳者と通信するための最良のテクニックは何ですか?
gps - GPS と組込み開発 - リソースはどこにありますか?
組み込みデバイスの設計を始めたばかりで、リソースを探しています。
私ができるようにしたいのは、GPS 受信機を軽量の SBC または mini-ITX、x86 ベースのコンピューターに接続し、遠隔操作された車両の位置/進行状況を追跡することです。
理想的には、これは趣味の半自律型車両の構築に形を変えることができます。
しかし、最初に必要なのは、GPS プログラミング用の開発ボードです。
どのボード/パッケージを使用しましたか? また、それらの [できればオープン ソース] 開発はどこにありますか?
c - C (または任意の) コンパイラの決定論的パフォーマンス
最近のプロジェクトに取り組んでいるときに、顧客の QA 担当者が訪ねてきて、以前はあまり考えていなかった質問をしてきました。
使用しているコンパイラが C コードの機能と正確に一致するマシン コードを生成し、コンパイラが完全に決定論的であることをどのように確認しますか?
この質問に対して、私は常にコンパイラーを当然のことと思っていたので、まったく答えられませんでした。コードを取り込み、マシンコードを吐き出します。コンパイラが要求していない機能を実際に追加していないことをテストするにはどうすればよいですか? または、私が期待するものとはわずかに異なる方法でコードを実装するさらに危険なことはありますか?
これはおそらくすべての人にとって問題ではないことを認識しており、実際、答えは...「あなたはバレルを超えているので、それに対処する」だけかもしれません。ただし、組み込み環境で作業する場合は、コンパイラを暗黙のうちに信頼します。自分が正しいことを自分自身と QA に証明するにはどうすればよいですか?
linux - 自宅でカーネル ハッキングと組み込み開発を学んでいますか?
私は常にカーネル ハッキングと組み込みシステムの世界に惹かれていました。
そのようなものをいじり始めるための優れたチュートリアル(+簡単に入手できるハードウェア)を持っている人はいますか?
適切なドキュメントが付属し、手頃な価格のドライバなどを作成するためのキットのようなものはありますか?
ありがとう!