問題タブ [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.
embedded - CでPIC18をリセットする方法は?
HiTech Pic18 C コンパイラで C コードを使用して PIC18 をリセットする最良の方法は何ですか?
編集:
私は現在使用しています
しかし、もっと良い方法があるはずです
algorithm - DSP/FPGA 位相アキュムレータはどのように機能しますか?
位相アキュムレータのコードを見ていますが、理解できないので単純な人に違いありません。コードは非常に単純です。
accum は 32 ビットのレジスタです。明らかに、ある時点でそれはロールオーバーします。
私の質問は本当に次のとおりです。これはフェーズにどのように関係していますか?
user-interface - テキスト モード LCD ディスプレイのユーザー インターフェイス
このテーマに関するリソースを知っている人はいますか?
2x16 LCD ディスプレイ用の組み込みアプリケーションを開発しています。理想的には、1 つまたは複数のセグメント LED、1x16、2x16 LCD など、事実上任意のディスプレイで使用できる一般的な (ディスプレイに依存しない) フレームワークが必要です。ユーザー インターフェイス。
編集: 高レベルの機能、ユーザー インターフェイス (メニュー、オプション、ユーザー入力) を整理する方法に興味があります。ここでは、LCD コントローラーの問題については説明しません。
embedded - STM32 フラッシュで複数のアプリケーションを実行する
STM32 フラッシュに 2 つのアプリケーションが必要です。1 つは基本的にブートで、もう 1 つは「メイン」アプリケーションです。それぞれをフラッシュのさまざまな領域にロードする方法を見つけました。メモリ ダンプを取得した後、すべてが適切な場所にあるように見えます。
そのため、リセットを行うとブートがロードされ、現時点でブートが行うのはアプリケーションへのジャンプだけです。ブートをデバッグすると、これはすべて正しく機能しているように見えます。ただし、アプリケーションにジャンプした後に問題が発生し、1 つの命令 (アセンブリ) を実行しただけで、ブートに戻ります。アプリケーションに無期限に保持する必要があります。
私の質問は、アプリのどこに「ジャンプ」する必要があるかということです。
割り込みベクトル、リセット ハンドラー、アプリのメイン関数など、いくつかの潜在的なスポットがあるようです。実際、私はそれらすべてを試しましたが、成功しませんでした。
うまくいけば、それが理にかなっています。そうでない場合は、質問を更新します。
ご協力いただきありがとうございます!リチャード
アップデート:
- 私はデバッガーで遊んで、手動でプログラム カウンターをアプリケーションのメインに変更しましたが、それは魅力的に機能したので、ジャンプに何か問題があると思います。なぜプログラム カウンターが動かないのですか?ジャンプの後?
- 実際には PSR のようです。「T」はジャンプ時にリセットされます。ジャンプ後に再度設定すると、アプリは希望どおりに続行します
- わかりました解決策が見つかりました。分岐を行うとき、または「ARM」モードに入るときにPC LSBを1に設定する必要があるようです(「サム」モードのような16ビット命令ではなく32ビット命令。かなりあいまいな小さな問題、あなたと共有させてくれてありがとう!
embedded - 組み込みプロジェクトでコードをどのように整理しますか?
高度に埋め込まれた(制限されたコードとRAMサイズ)プロジェクトは、コード編成に固有の課題をもたらします。
組織のないプロジェクトをたくさん見ました。(ほとんどの場合、私の経験では、コードの非機能的な側面には関心がないハードウェアエンジニアによるものです。)
ただし、それに応じてコードを整理しようとしています。
- ハードウェア固有(ドライバー、初期化)
- アプリケーション固有(再利用される可能性は低い)
- 再利用可能、ハードウェアに依存しない
モジュールごとに、目的をこれら3つのタイプのいずれかに保つようにしています。
組み込みプロジェクトのサイズが限られており、パフォーマンスが重視されているため、この組織を維持することがよくあります。
ある文脈では、私の現在のプロジェクトは、8kフラッシュと256バイトRAMを備えたMSP430上の限定されたDSPアプリケーションです。
embedded - 埋め込みコードでのイベント処理
組み込みシステム コードでイベントがどのように使用されているか知りたいです。
主な目的は、イベント フラグがコードでどのように設定/リセットされるかを正確に知ることです。また、どのタスクがどのイベント フラグを使用しているか、およびフラグのどのビットが各タスクによってセット/リセットされているかを識別する方法。
それについての提案やコメントをお寄せください。
前もって感謝します。
(編集1:以下の回答の説明からコピー)
必要な詳細を指定しておらず申し訳ありません。実際、vxworks/Itron/OSEK OS を使用して C 言語で記述されたアプリケーションの分析に興味があります。たとえば、vxworks にはイベント処理をサポートする eventLib ライブラリがあります。このようなシステム ルーチンを使用して、タスク内のイベントを処理する方法を知りたいです。イベントフラグとは(グローバル/ローカルですか...または何ですか?)、イベントフラグのビットを設定する方法、およびタスクフラグとイベントフラグの間の可能な関係はどれですか??
AND および OR モードでタスクが複数のイベントを待機するにはどうすればよいですか?? 以下に示すシナリオが危険に見える例を 1 つ見つけましたが、なぜですか??
1つのタスクが複数のイベントフラグを待ち合わせたり、複数のタスク間の循環依存(デッドロック)がタスクとイベントの関係で危険なケースであることは知っていますが、上記のシナリオがどのように危険なのか、私には理解できません....親切に説明してください.
上記の情報で十分だと思います....
c++ - 16 ビット x86 コンパイラを探しています
私は組み込みシステム プロジェクトに取り組んでおり、コンパイラが Paradigm C++ IDE にプログラム的に組み込まれているという問題に遭遇しました。ビルドを自動化できるようにしたい。
プロセッサは AMD186ES です。私はOSで作業していません-ベアメタルのものだけです。C++ からリアルモードの 16 ビット 8086 マシン コードを生成する必要があります。
私のグーグルは、G ++がそのようなコードを構築できることを示しています。
私の質問は次のとおりです。
このマシン コードをビルドするように g++ を構成できますか?
それを行うことができる他の C++ コンパイラはありますか?
c - __far ポインターへのポインターを宣言する正しい方法は何ですか?
埋め込みターゲットでは、far ポインターを使用してメモリ マップの一部にアクセスします。
Near ポインター (明示的に __near を指定せずに):
ニアポインターへのポインター:
p>ファーポインター:
farポインタへのポインタを宣言する正しい方法は何ですか? このポインターは far ポインターである必要がありますか?
compiler-construction - マシンワードプリミティブの非倍数は良い考えですか?
動的言語(一般的なスクリプト言語と同様)があり、そのためのコンパイラーを作成したいとします。タイプタグのようなもののためにマシンワードのいくつかのビットを予約するのは良い考えですか?特にマイクロコントローラーや同様のデバイスの場合、それは良い考えですか?
タイプ情報のストレージの削減、メモリ管理の多少の容易さ(gcの場合もある)、デバッグの容易さなど、いくつかの利点が考えられます。しかし、これらは、一般的な算術演算または完全な単語を必要とする他の演算のオーバーヘッドを正当化するでしょうか?パフォーマンスのオーバーヘッドがはるかに大きいため、バイトコードVMはこの点ではるかに悪化することに注意してください。だからそれを提案しないでください;)
とにかく、マイクロコントローラクラスのハードウェア用に数値の強いコードを書く人がいるようなものではありませんが、それでも...
embedded - ソフトウェア開発者にとって、低レベル/組み込みシステムのプログラミングは難しいですか?
ゼネラリストとしてのバックグラウンドがあるため、アナログ エレクトロニクスから RDBMS バックエンドに接続する単純なアプリケーションの作成まで、多くの分野をカバーできます。
私は現在、業界固有の問題を解決するハードウェアを開発する会社で働いています。私たちには、ビジネス アプリ、ビデオ ゲーム、その他 PC 向けのさまざまなものを作成した経験豊富なプログラマーがいます。しかし、私が低レベルのプログラミングを行うことについて彼に話すと、彼は同時にプロジェクトに参加することに興味を示すと同時に、疑問/不確実性も表明します。
PC について話すときでさえ、彼は低レベルのもの (命令セット、ISR) よりも言語レベルでの操作に慣れているようです。それでも、彼は賢い人で、最初の学習のこぶを乗り越えたら、仕事を楽しんでくれると思います。しかし、それは低レベルの話をすることに対する私自身の熱意かもしれません... 彼が本当に興味を持っていれば、彼はすでにその方向のことを学び始めていたのでしょうか?
ソフトウェアからハードウェア (または低レベルのソフトウェア) への移行の経験はありますか? それとも、ソフトウェアのみの人を採用して、彼を低レベルのものに移行させたほうがよいでしょうか?
編集:
PS 回答者のバックグラウンドを知りたいです。EE、CS、両方ですか?