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

ブートローダーは、アプリケーションプログラムをメモリにロードするために使用されるユーティリティプログラムです。

3
ブートローダーとは何ですか?
AVRマイクロコントローラーがブートローダー(Arduinoなど)で使用する多くのプロジェクトに出会ったことがありますが、その概念をよく理解していません。 ブートローダーを作成するにはどうすればよいですか(マイクロコントローラー用)? ブートローダーを作成した後、マイクロコントローラーにどのようにプログラムされますか(AVRのフラッシュROMで焼き付けられた.hexプログラムなど)。

8
マイクロコントローラーのアプリケーションプログラムとは別にブートローダーが必要なのはなぜですか?
マイクロコントローラの同じフラッシュプログラムメモリ、特にブートローダと呼ばれるSTM32F103に別のプログラムが必要なのはなぜですか? メインアプリケーションプログラムから分離するために特別なことは何ですか? 一般的に、マイクロプロセッサベースのシステム(PowerPC MPC8270など)のブートローダーは、マイクロコントローラー(ARM STM32F103など)と同じジョブを実行しますか、それとも互いに根本的に異なるジョブを実行しますが、両方とも「ブートローダー」と呼ばれます?

6
マイクロコントローラーとしての携帯電話
私はそれらの一つはこの1つであること、周りの敷設携帯電話のカップルを持っている: http://www.gsmarena.com/sony_ericsson_elm-3057.phpは、 フラッシュ・メモリをクリアし、ブートローダと交換して、Arduinoのスケッチをアップロードすることが可能ですまたはpic32スケッチ(C#/ C ++)。 ハードウェアプロジェクトを開発するための非常に安価なプラットフォームだからです。(画面、ボタン、オーディオI / O、インターネットなどを取得します。各パーツを個別に購入するのに比べて非常に安い価格ですべてを取得できます。) フラッシュメモリを消去し、ブートローダーを電話機にインストールして、組み込みコンピュータとして使用することはできますか?

4
工場出荷時設定へのリセットはどのように機能しますか?
すべての組み込みデバイスには、何かがおかしい場合にユーザーが自分のデバイスをリセットできるようにする「工場出荷時リセット」オプションが含まれています。 STM32ボードでファームウェアを開発しています。ファームウェアには、(新しいイメージを含むバイナリファイルを送信することにより)UARTを介してアプリケーションをアップグレードできるブートローダーが含まれており、別の機能を追加したい:ファクトリーリセット。ユーザーがこのオプションを選択すると、ボードは元の画像をロードします。 工場出荷時リセットとは何ですか?バイナリファイル全体をメモリに再度読み込むことですか、それともエンドユーザーによって変更された変数を再初期化する関数を呼び出すだけですか? そうするためのベストプラクティスは何ですか? 元のFWを保存する場所は?内部または外部フラッシュにありますか?

2
SMD Arduinoを使用して別のDIP ATmega328をプログラムするにはどうすればよいですか?
表面実装(SMD)マイクロコントローラーを備えたArduinoを使用しています。 DIP arduinoをDIP ATmega328のプログラマーとして使用する方法を知っています。簡単です。マイクロコントローラーをホルダーに入れるだけです。 ただし、表面実装Arduinoでは、明らかなことはありません。マイクロコントローラーのはんだ付け解除は1つの方法ですが、それは厄介で破壊的です。 ボードに致命的なダメージを与えることなく、このArduinoをDIP ATmega328のプログラマーとして使用できますか?もしそうなら、どのように?

2
AT32UC3LでカスタムPCBでブートローダーを動作させることができません
私は最近、クライアント用のPCBを設計しました。ハードウェアとソフトウェアはすべて問題ありません(アプリケーションは想定どおりに動作しています)。現在、マイクロコントローラー内のプログラムを更新する必要に直面していますが、これらのPCBは世界中のさまざまな場所にインストールされているため、ブートローダーをインストールし、アプリケーションで使用されるのと同じUARTを使用するのが最適です。 ボードの説明 AT32UC3L032 ボードとPC間の通信にすでに使用されている1つのUART アプリケーションのI / Oのカップル 状態LEDのカップル 関連するPINと構成 PA01 # Used for entering ISP with high level PA20 # Used for application and ISP UART PA21 # Used for application and ISP UART #define COM_USART (&AVR32_USART2) #define COM_USART_RX_PIN AVR32_USART2_RXD_0_0_PIN #define COM_USART_RX_FUNCTION AVR32_USART2_RXD_0_0_FUNCTION #define COM_USART_TX_PIN AVR32_USART2_TXD_0_0_PIN #define COM_USART_TX_FUNCTION AVR32_USART2_TXD_0_0_FUNCTION #define …

1
Arduinoブートローダーの詳細
Arduinoブートローダーがどのように機能するかを誰かが説明できますか?ここでは高レベルの答えを探しているのではありません。コードを読んだので、その要点を理解しました。私はこの他の投稿も読みました(私はそれへの応答者の1人でさえありました)。 Arduino IDEとブートローダーコードの間に発生する一連のプロトコルの相互作用により、最終的に、シリアルインターフェイスを介して送信されるプログラムでフラッシュを自己プログラミングする多数のインラインアセンブリ命令が生成されます。 はっきりしないのは270行目です。 void (*app_start)(void) = 0x0000; ...これは、関数ポインタの宣言およびNULLへの初期化として認識されます。ブートローダーがユーザーがロードしたコードの実行に委任することを目的とした場所で、app_startへの後続の呼び出しがあります。 確かに、app_startこれをすべて組み合わせるには、ある時点で何らかの方法でNULL以外の値を取得する必要があります。ブートローダーのコードにそれが表示されていません...ブートローダーによって読み込まれるプログラムによって魔法のようにリンクされていますか?ブートローダーのメインは、チップのリセット後のソフトウェアへのエントリポイントだと思います。 アセンブリの70行程度にまとめると、app_startが実際にどこにあるかをメインプログラムに伝える秘密のデコーダリングである必要がありますか?それとも、Arduino IDEによって利用されている暗黙の知識ですか?私が知っているのは、誰かがapp_startを0以外の場所を指すように変更しないと、ブートローダーコードが永遠にそれ自体をスピンさせるだけだからです。 別の言い方をすれば、ブートローダーコードが割り込みに依存することは可能ですか、それともノーノーですか? 編集 ブートローダーコード用に個別のメモリスペースを持たないTiny AVR(具体的にはATTiny44A)にブートローダーを移植することに興味があります。ブートローダーコードが特定のヒューズ設定とチップサポートに依存していることが明らかになったので、私が本当に興味を持っているのは、これらのヒューズとハードウェアを持たないチップにブートローダーを移植するために何が必要かということです。サポート(ただし、まだセルフプログラミング機能があります)? USIを半二重UARTとして使用するためにAVR307の実装を使用できると考えていました(Timer0割り込みとピン変更割り込みを使用)。誰でも、ブートローダーのハードウェアサポートがないチップのブートローダーコードを作成/移植する方法についてのガイダンスを提供できますか? ブートローダーコードをアドレスmainの通常の場所(たとえば、0x029eまたはコンパイラーがmainを配置する場所)に置くと思います。次に、ブートローダーコードの「アドレス」にオフセットを追加してメインの終わりを過ぎたところに置き、「app_start」をそのアドレスに設定するようにします。私はこれについて正しく考えていますか、それとも完全に何かを逃していますか?ありがとう! 編集2 FWIW、私はArduinoのスケッチをATTiny85にロードする方法の文書化されたプロセスを見つけました。これは、私が最初にこの質問で行っていた場所です...かなりきちんとしていると思います


2
FPGAによるPICプログラミング
FPGAカードを介して初めてPICをプログラムする方法(フラッシュに書き込む)があるかどうかを知りたいです。 PICはすでにFPGAにはんだ付けされており、削除できません。PICにはブートローダーはありません。したがって、FPGAからデータを受信できるように、ブートローダーを使用してUSART / SPI / I2Cモードでプログラムする必要があります。 通常、はんだを外してPICKitなどのハードウェアプログラマーに接続し、MPLABなどのコンピューター上のソフトウェアでプログラムする必要があることはわかっていますが、それを買う余裕はありません。 .hexファイルであるMPLABを使用してブートローダーを生成できますが、FPGAに転送してから、FPGAピンを介してPICに転送するにはどうすればよいですか。 使用されるPICはMicrochip PIC12F1822です。

2
ブートローダーの構造を理解するための優れたツールまたは方法?
私は最近、オープンソースのブートローダーであるU-bootを実行しているAtmel AT91SAM9G20 SBCで取り組んでいる厄介なバグの原因を突き止めました。問題の核心は、U-bootがハードウェアを私が構築したものとは異なるように構成することを期待していたため、一部のデバイスレジスタが誤って構成されていたことでした。 私は問題を理解したので、レジスタを正しく構成するためにU-bootを微調整する必要があります。プログラムの最後に数行のコードを追加することで盲目的にこれを行うことができますが、それは面倒です。 これは私に私の質問をもたらします:U-bootがmain()から開始してすべてのファイルのすべての可能なコードパスを読み取るよりも効率的に機能する方法を理解するにはどうすればよいですか?私はファイル内をぐるぐる回ってみて、関連する識別子の近くのコードを調べました。これは効果がないことが判明しました。ほとんどのコードは私が気にしていないサブシステムのドライバーのようです。私は実際にブートローダーがどのようにうまく機能するかを理解していますが、私の素朴なアプローチよりも優れた方法があることを願っています。

2
PIC12F675 GP4が機能しない
プロジェクトにPIC12F675を使用していますが、1つの点を除いてすべて正常に動作します。GP4はデジタルIOとして機能しません。設定とコードをよく見てきましたが、何も見つかりませんでした。 構成: #pragma config FOSC = INTRCCLK #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = OFF #pragma config BOREN = ON #pragma config CP = OFF #pragma config CPD = OFF コード: #include <xc.h> #include <math.h> #include "config.h" #define _XTAL_FREQ 4000000 void delay(unsigned int …
9 pic  c  embedded  programming  audio  oscillator  spark  dc-dc-converter  boost  charge-pump  eagle  analog  battery-charging  failure  humidity  hard-drive  power-supply  battery-charging  charger  solar-energy  solar-charge-controller  pcb  eagle  arduino  voltage  power-supply  usb  charger  power-delivery  resistors  led-strip  series  usb  bootloader  transceiver  digital-logic  integrated-circuit  ram  transistors  led  raspberry-pi  driver  altium  usb  transceiver  piezoelectricity  adc  psoc  arduino  analog  pwm  raspberry-pi  converter  transformer  switch-mode-power-supply  power-electronics  dc-dc-converter  phase-shift  analog  comparator  phototransistor  safety  grounding  current  circuit-protection  rcd  batteries  current  battery-operated  power-consumption  power-electronics  bridge-rectifier  full-bridge  ethernet  resistance  mosfet  ltspice  mosfet-driver  ftdi  synchronous  fifo  microcontroller  avr  atmega  atmega328p  verilog  error  modelsim  power-supply  solar-cell  usb-pd  i2c  uart 

3
Arduinoブートローダー
私は組み込みの世界に非常に新しいです。今までS / Wのみで作業していた Arduinoブートローダーの使い方を誰か教えていただけますか?Arduinoに、チップに追加する必要があるいくつかの追加コンポーネントを使用して簡単な数学を実行してもらいたい。 必ずブートローダーが必要ですか?

2
ブートローダーの書き込み後にATTiny85が機能しない
ATTiny85に問題があります。私はそれをプログラムするためにISPとしてArduinoを使用していることを言及しなければなりません。 クロック速度を1MHzから20MHzに上げる必要があると判断するまで、私のATTinyは問題なく機能したので、BoardsメニューからATTiny85を20MHzで選択し、Tools> Burn Bootloaderをクリックしました。しかし、今は私のATTinyがまったく機能しないため、それは愚かでした。スケッチをアップロードできず、試してみると次のメッセージが表示されます。 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. だからあなたへの私の質問は、私がしたことをリセットする方法はありますか?それとも、20MHzで動作させるには?

4
Arduinoのコンセプトがわかりません
私はしばらくの間、Arduinoの作成に苦労しています(ISPプログラマーケーブルを使用してブレッドボードバージョンを作成することに成功しました)。彼らは、Arduinoブートローダーは、ATmega8をプログラムするために外部回路が必要ないように作られていると言います。しかし、回路図を見ると、シリアル接続に必要な通常の回路があります。では、ブートローダーは実際には何をしているのでしょうか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.