問題タブ [objcopy]

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.

0 投票する
1 に答える
3715 参照

objcopy - objcopy --gap-fillは、特別なセクションにのみ使用してください

objcopy-parameter --gap-fillを特定のセクションにのみ使用することは可能ですか?既存のEEPROMの古いセクションを保持したいので、たとえば0xAAですべてを埋めたくありません。それらが例えば0xAAで上書きされるときそれは悪いです。しかし、他のいくつかのセクションでは、私はまさにこの振る舞いを望んでいます。

助けてくれてありがとう。

0 投票する
1 に答える
2786 参照

arm - OpenOCD で ARM マイクロコントローラをフラッシュする前に、objcopy を使用する必要がありますか?

ARM マイクロコントローラ用の「通常の」ARM クロスコンパイルは、通常、次の 3 つまたは 4 つのステップで構成されます。

  1. アセンブラを使用して、スタートアップ コード (アセンブリの場合) をオブジェクト ファイルにアセンブルします。
  2. コンパイラを使用してソース コードをオブジェクト ファイルにコンパイルする
  3. リンカーを使用して、オブジェクト ファイルを .elf ファイルにリンクします。
  4. objcopy を使用して、.elf ファイルを .hex ファイルに変換します。
  5. .hex ファイルをフラッシュします

よくわからないのはステップ 4 です。OpenOCD のflash write_imageコマンドのドキュメントには、次のように記載されています。

ファイル [タイプ] は、bin (バイナリ)、ihex (Intel hex)、elf (ELF ファイル)、s19 (Motorola s19) として明示的に指定できます。mem、またはビルダー。

OpenOCD が elf ファイルをサポートしていることは明らかですが、これが実際に何を意味するのかはわかりません。これは一部のターゲットでのみサポートされていますか? JTAG/SWD アダプターは、これが機能するために何らかの objcopy のような機能を提供する必要がありますか? OpenOCDがまだelfファイルをサポートしていなかった時代からの単なる名残りですか?

0 投票する
1 に答える
165 参照

c - バイナリコードの再配置中にエラーが発生しました(gcc-> objdata->バイナリコードのロード->実行)

私は遺伝的アルゴリズムを実装しています。クリーチャーは、入力と出力として3つのポインターを持つ関数です。すべての形式は次のとおりです。

クリーチャーは数千で非常に小さいはずなので、共有オブジェクトを使用せずに、生のコードをロードして実行することにしました。

生き物はコンパイルされます

次に、このように関数のコードを取得します

次に、コードをメモリにロードして実行します

これは、ソースコードに浮動小数点リテラルがなくなるまで機能します。たとえば、次のコードです。

Compilatedは、次の作業コードを生成します。

しかし、浮動小数点リテラルを次のように持つ関数:

実行しても正しい結果が得られないコードを生成します

そして、これは、 %ripを使用して命令が生成されるたびに発生します。このコードを生成しないようにgccを設定するにはどうすればよいですか?理論的には、浮動小数点定数を挿入するには、ここで行うことができますか?

この問題を回避するための提案はありますか?

0 投票する
2 に答える
1964 参照

linux-kernel - readelf -s を実行するとこの出力が得られる理由

Linux カーネルがあり、objcopy ツールを使用して ELF ヘッダーを生成しようとしています。以下は最初のステップです。

そして、この後、 readelf -s main.o を使用してシンボルテーブルを読みたかったのですが、奇妙なシンボルが得られ、以下が出力されます

次のような記号が表示されるはずです

どこが間違っているのか教えてもらえますか?? それとも期待されていますか??

以下のようなことをしなければならないので、なぜ適切なシンボルを見たかったのか

0 投票する
5 に答える
7073 参照

c++ - objcopyは、ディレクトリパス名をシンボル名の前に付加します

objcopy実行可能ファイルにテキストファイルのバイナリ形式を含めるために使用することにしました。(実行時にファイルを文字列として必要とします)。これは、リンカがシンボル名から参照を見つける必要があるまでは正常に機能します。問題はobjcopy、ファイルへのパス名の前にシンボル名を追加することです。私はGNUAutotoolsを使用してパッケージを出荷しているため、この先頭に追加されたパス名が変更され、C /C++プログラムで使用する外部リンカーシンボルがわかりません。

libtest.a(Makefile.amからの抜粋)で作成されました:

objcopyリンカーシンボルとしてファイル名の語幹だけを私たちに伝えるにはどうすればよいですか?または、問題を回避する別の方法はありますか?

0 投票する
0 に答える
1336 参照

c++ - Windows 用のクロス コンパイル。Objcopy が不正なオブジェクト ファイルを提供しているようです

私はもともとLinuxで書いたプログラムを持っています.objcopyを使用して、実行時に使用する実行可能ファイル内にいくつかの画像を埋め込みます。Linuxではこれにまったく問題はなく、正常に動作します。

ただし、Windows 用のプログラムをクロス コンパイルしようとすると、リンク段階で未定義の参照のリストが表示され、objcopy が失敗していることがわかります。これを正しくクロスコンパイルするために、誰かが私を正しい方向に向けてください。コードは移植可能であるため、これはコードの問題ではないことはわかっています。

objcopy とのクロス コンパイルに使用されるコマンド

リンク段階で発生するエラー

データにアクセスするためにコード内にあるマクロ

i586-mingw32-objcopy でサポートされている形式

Windows(x86)にコンパイルしようとしています。コンパイルに使用するマシンは Linux (x86) です。

0 投票する
3 に答える
8929 参照

gcc - GCC: .text セクションの先頭に「main」関数を配置するように GCC に指示する方法は?

ARM プログラミングの学習を始めたばかりで、やや厄介な問題に悩まされています。ソースをコンパイルするために使用しているツールチェーンは Sourcery CodeBench Lite 2013.05-23 です (ここで見つけることができます: https://sourcery.mentor.com/GNUToolchain/release2449 )

必要なのは、GCC、LD、または OBJCOPY に、「main」関数のコンパイル済みバイトコードを .text セクションの先頭に配置するように指示することです。

これを達成する方法はありますか?(おそらくリンカースクリプトを介して?)

ありがとうございました

0 投票する
2 に答える
3196 参照

c++ - ELF ファイルの変数値を編集しますか?

コンパイルされた ELF ファイルでいくつかの変数を変更する必要があります。これを明確に説明するために、単純な C 構造体を例として使用します。

単一のソース ファイルがコンパイルされ、MyFile.c から MyFile.elf にリンク (@ 0x1000) されます。

今、私は(コンパイルせずに)「コンソールツール」が必要です:

  1. 新しいシリアル番号を 0x1000 に書き込みます
  2. 新しい文字列を 0x1008 に書き込みます
  3. 0x1028 でチェックサムを更新します。

最初の (1) タスクを実行するツール (objcopy など?) を見つけることができませんでした。これはかなり一般的なシナリオであると思われますか? 今のところ独自のツールを作成しましたが、オープン ソース ツールまたは類似のツールを使用したいと考えています。

提案/アイデア/コメント/批判は大歓迎です:D ありがとうございます!!