タグ付けされた質問 「embedded」

組み込みシステムは、1つまたはいくつかの専用機能を実行するように設計されたコンピューターシステムで、多くの場合、リアルタイムコンピューティングの制約があります。多くの場合、ハードウェアと機械部品を含む完全なデバイスの一部として埋め込まれます。

16
C ++は組み込みシステムに適していますか?
ここと他の場所でよくある質問。C ++は組み込みシステムに適していますか? マイクロコントローラー?RTOS?トースター?組み込みPC? OOPはマイクロコントローラーで役立ちますか? C ++はプログラマーをハードウェアから遠ざけすぎて効率的にしませんか? ArduinoのC ++(動的メモリ管理、テンプレート、例外なし)を「実際のC ++」と見なすべきですか? (うまくいけば、このwikiはこの潜在的な聖戦を封じ込める場所として役立つでしょう)

9
組み込みシステム向けRTOS
時間管理とリソース管理にRTOSを使用する必要があることを伝える多くの記事を見てきました。私の時間は私自身の研究を許可していないので、私はチップハッカーに助言を求めに来ます。 低リソースのマイクロコントローラー(MSP430、PIC)を使用しており、使用できるRTOSを探していました。 ポイントへ: システムのリソースコスト システムの利点 システムの欠点 実装のコツ RTOSを使用すべき/すべきでない状況。 私はarduinoのようなシステムを使用していません。一緒に作業するプロジェクトでは、そのようなシステムのコストをサポートできません。

9
組み込みC開発でvolatileを使用する
volatileキーワードを使用してコンパイラが判断できない方法で変化する可能性のあるオブジェクトに最適化を適用しないようにするためのキーワードの使用に関するいくつかの記事とStack Exchangeの回答を読んでいます。 ADCから読み取り(変数を呼び出しましょうadcValue)、この変数をグローバルとして宣言volatileしている場合、この場合はキーワードを使用する必要がありますか? volatileキーワードを使用せずに // Includes #include "adcDriver.h" // Global variables uint16_t adcValue; // Some code void readFromADC(void) { adcValue = readADC(); } volatileキーワードを使用する // Includes #include "adcDriver.h" // Global variables volatile uint16_t adcValue; // Some code void readFromADC(void) { adcValue = readADC(); } 私の場合(ハードウェアから直接変更されるグローバル変数)のベストプラクティスによると、使用することvolatileは必須ですが、デバッグ時に両方のアプローチに違いは見られないため、この質問をしています。

4
ほとんどの組み込み設計のLEDが反転しているのはなぜですか?
私は、すべての評価ボードで、この時点までに持っていたことに気付きました。LEDはすべてアクティブローでマイクロコントローラポートに接続されていました。安全性の観点から、アクティブな低RESETラインなどを使用する方が良いことを理解しています。しかし、なぜLEDなのか?
36 led  embedded 

6
初心者向けの組み込みプログラミング:ArduinoまたはRaspberry Pi?[閉まっている]
私はコンピューターサイエンスの学生で、組み込みプログラミングと電気工学に関する知識を広げたいと思っています。 ここでは、Arduinoマイクロコントローラーなどのツールを使用することから始めるのが良いことを読んでいます。 私は主にJavaおよびPythonプログラマーですが、C ++である程度の経験があります。さらに、ArchLinuxをいじくりました。 私がやりたい小さなプロジェクトは、Arduino / PiでWi-Fi経由で電球を制御することです。 私が読んだことから、PiとArduinoの両方は学生向けですが、低レベルでコンピューターがどのように機能するかを理解したい私のような人にどちらが適しているのかわかりません。 初心者として多くの質問にぶつかるので、大きくて役に立つコミュニティ(Piがいると聞きます)は大きなプラスになります。 それでは、どちらが自己学習初心者に適していますか?ArduinoとRaspberry Piのどちらですか? 前もって感謝します。 編集: あなたの多くの偉大な答えとこれらの価値ある 記事から、私は以下に来ました 結論 Arduinoを組み込みプログラミングのエントリポイントとして選択します。Arduinoは、Piよりもシンプルなシステムであり、金属に近づけることがより簡単にできるためです。 深化することには価値があります:コンピューティングの低レベルの詳細については、後でAVRまたはmbedマイクロコントローラーを調べてさらに学習することができます。 どちらのデバイスでも、オペレーティングシステムなしでプログラムすることができます(最初は)。 また、1つのPiを使用してArduinoを制御するプロジェクトを見つけました 。両方のデバイスが非常に手頃な価格であり、Piで実行できるLinuxのパワーを使用したいので、このことは興味をそそります。 さらに、Arduinoの実験中に電気工学についてさらに学ぶのに役立つこの本を見つけました。 Arduinoで電球プロジェクトを行うのは難しいようです。しかし、それは大丈夫です。他のやる気を起こさせるプロジェクトを考えたり、ここやここでインスピレーションを得られると確信しています。 回答ありがとうございます。

5
JTAGとは何ですか?
私は組み込みシステムにかなり慣れていないので、この用語が常に使われているのを見続けていますが、それが何であるかをよく理解できません。オンラインでクイック検索すると、ウィキペディアのページhttps://en.wikipedia.org/wiki/Joint_Test_Action_Groupが表示されます。このページでは、デバッグ用のプロトコルとして説明されています。しかし、他のコンテキストでは、プログラマのようにチップのメモリをプログラムできるように使用していました。それは何ですか?
30 embedded  jtag 

9
組み込みプログラムが終了するとどうなりますか?
実行が最終returnステートメントに達すると、組み込みプロセッサで何が起こるかすべてがそのままフリーズします。電力消費など、1つの長い永遠のNOPが空にありますか?またはNOPは継続的に実行されますか、それともプロセッサは完全にシャットダウンしますか? 私が尋ねる理由の一部は、実行を終了する前にプロセッサの電源を切る必要があるのか​​、それとも前に電源を切った場合にどのように実行を終了するのか疑問に思っていますか?

3
マイクロコントローラのさまざまなメモリタイプには何がありますか?
さまざまなタイプのデータがコンパイル後にCコードから入力されるさまざまなメモリセグメントがあります。すなわち:.text、.data、.bss、スタックとヒープ。これらの各セグメントがマイクロコントローラのメモリのどこにあるかを知りたいだけです。つまり、メモリタイプがRAM、NVRAM、ROM、EEPROM、フラッシュなどの場合、どのデータがどのタイプのメモリに入るかです。 私はここで同様の質問に対する答えを見つけましたが、彼らは異なるメモリタイプのそれぞれの内容がどうなるかを説明できませんでした。 どんな種類の助けも大歓迎です。前もって感謝します!

4
マイクロコントローラーに必要なフラッシュ/ RAMの量をどのように決定しますか?
いくつかの既知の機能を備えた組み込みプロジェクトを開始するとします。マイクロコントローラーを選択するとき、必要なRAMの量をどのように選択しますか? 開発者ボードを使用して、最初にプロジェクトをコーディングし、使用したメモリ量を確認してから、そのメモリに適合する適切なマイクロコントローラを選択しますか? プロトタイプ用に頑丈なマイクロコントローラーを選んで、実際の製品ができたらスケールダウンしますか? 十分であると確信しているものを選んでいますか、スペースが足りない場合は、より高いメモリ密度のものにアップグレードしてください。 グッドプラクティスと見なされるものは何ですか?

2
AVRおよびPICコントローラーのファームウェア保護
私が提供するマイクロコントローラーで焼いたHEXファイルを誰かが抽出できますか? それが可能な場合、誰かが自分のコードが組み込みシステムで保護されていることをどのようにして確認できますか?PICおよびAVRマイクロコントローラーの場合、どのようにしてファームウェアが複製されないように保護できますか?
23 pic  avr  embedded  firmware 

7
埋め込みコードの場合、「unsigned int」ではなく「uint_t」タイプを使用する必要があるのはなぜですか?
gccを使用して、STM32F105用のアプリケーションをcで作成しています。 (単純なプロジェクトで)過去には、私はいつものように、変数定義されているchar、int、unsigned int、などを。 私は、次のような、stdint.hで定義された型を使用するのが一般的であることがわかりint8_t、uint8_t、uint32_tそれは私が使用していることを複数のAPIのでは、ともSTからARM CMSISライブラリにtrueこの、など。 なぜそうするべきかを理解していると思います。コンパイラがメモリ空間をより最適化できるようにします。他にも理由があると思います。 ただし、cの整数プロモーションルールのため、2つの値を追加したり、ビットごとの演算を実行したりするたびに、変換警告に対して実行し続けますconversion to 'uint16_t' from 'int' may alter its value [-Wconversion]。この問題については、こことここで説明します。 intまたはとして宣言された変数を使用する場合は発生しませんunsigned int。 これを考えて、いくつかの例を挙げます。 uint16_t value16; uint8_t value8; これを変更する必要があります。 value16 <<= 8; value8 += 2; これに: value16 = (uint16_t)(value16 << 8); value8 = (uint8_t)(value8 + 2); いですが、必要に応じてできます。私の質問は次のとおりです。 変換する場合があり、符号なしに署名したとするバック符号なしの結果が不正確になりますか? stdint.h整数型を使用する/使用しない他の大きな理由はありますか? 私が受け取った答えに基づいて、cが変換uintしint、戻っても、stdint.hタイプが一般的に好まれているようです。これはより大きな質問につながります: 型キャスト(例value16 = (uint16_t)(value16 << 8);)を使用して、コンパイラの警告を防ぐことができます。問題を隠しているだけですか?それについてもっと良い方法はありますか?
22 c  embedded  gcc 

5
組み込みシステム設計でオペレーティングシステムが必要になるのはいつですか?
PICプロセッサおよびx86プロセッサ用のベアメタルコードを多数作成しました。誰かがオペレーティングシステムを必要とする方法とタイミングを教えてもらえますか?逆に、オペレーティングシステムを使用する場合も使用しない場合も、どのアプリケーションまたは状況に対処できますか?

10
組み込みソフトウェア開発者になるには?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 優れた組み込みソフトウェア開発者になりたい、またはこの分野で改善したい人のために、いくつかのヒントが欲しいです。 ハードウェア、ソフトウェアについて何を学ぶ必要がありますか? どの本が最もお勧めですか?ブログ? 最後に、初心者の愛好家から優秀な専門家にどのようにすればいいですか?
22 embedded 

6
大規模な組み込みプロジェクトをどのように構成しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5ヶ月前に閉店。 背景: ジュニアR&Dエレクトロニクスエンジニア(社内唯一のEE)-ハードウェアとコーディングは問題ではありません。私の最大の問題は、プロジェクトの適切な概要を取得し、どこから始めるかです。 これまでのところ、マイナーなソフトウェアプロジェクト(500行未満のコード)しか作成していませんが、機能の概要や機能の欠如を失うことなく、より大きなプロジェクトを行うことは想像できません。 大規模な組み込みソフトウェアシステムを構築するには、どのように最適な構造/どのツールを使用しますか? 私が現在していること: 私は通常、プロジェクトの機能をスケッチすることから始めます。1対多の階層化されたフローチャートまたは関連図(ブロック図など)で、コンポーネント/チップの調査を行う場合があります。次に、データシート/インターネットを参照し、一度に1つの機能をコーディングし、ダミーデータでテストするか、同様のテストをしながら、コーディングに直行します(フェイルファースト)。MEMチップにデータを書き込んでいる可能性があり、それが機能する場合、メインチップとMEMチップ間のSPIドライバーである可能性があります。 私が探している答えは何ですか: 本当に何でも。私が賢明だと思うものを整理します。本、記事、個人的な経験、推奨事項などです。 高齢者がどのようにこれに取り組んでいるかを知りたいです。 編集 まず、長年の経験を共有していただきありがとうございます!すべての答えは大歓迎です。これからの私の見解は次のとおりです。 明確で正確な仕様書を作成します。 ソフトウェア設計文書を作成します。(これから追加するもの) ドキュメントテンプレートのデザイン モジュールの中で、どれほど冗長に見えるかを考えてください。(もっと集中する必要があるもの) ヘッダー/ソースファイルを構造化するためのコーディング標準に従ってください。(これを行わなかった) Barr Group C標準 最初に低レベルの実装を作成することに焦点を合わせます。(通信など) 可能な限り/賢明な設計パターンを実装します。 デザインパターン リビジョン管理のために何かを設定します(Githubなど-あまり使用しません) 継続的インテグレーション/継続的展開の研究(何か新しいことにつまずいた) CIとCDの基本

4
SRAMベースのFPGAがNVMベースのFPGAよりも多く使用されるのはなぜですか?
SRAMベースのFPGAは、電源オフ後にビットストリームを再度ロードする必要があります。一方、不揮発性ベースのものはそれを必要としません。 SRAM FPGAでNVMベースのものよりも多くの実験やセキュリティ研究が行われているのはなぜかと思いますが、揮発性テクノロジーはセキュリティ制限(セキュアブートの確保に関して)に関係なく使用されているようです。 (PS:私は統計がありません、それは個人的な観察です)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.