3

単純な問題のように思えますが、以前に解決したことは確かですが、再び答えを見つけるのに苦労しているので、正しい方向に向けてくれる人がいるといいのですが。

コード内の特定の変数用に「予約」したいメモリ領域があります。

リンカ スクリプトを編集し、ROM セクションからデータ ブロックを削除して、プログラム コードが特定のアドレスに書き込まれないようにすることでこれを実行できることはわかっていますが、スクリプトを編集するのではなく、これを C コードで長い間実行したことを覚えています。昔。私はプラグマなどを使用してそれを行いましたが、メモリからは次のように見えました (コードは正しくありませんが、これは漠然と私が覚えているものです!)

"#pragma _address @0x00040000 char mydata[1024];"

これは、アドレス 0x00040000 に 1024 バイトのデータを予約します。

上記のコードの正しい形式を知っている人はいますか?

文脈のために - 私はフラッシュベースのマイクロプロセッサを使用して組み込み C アプリケーションを書いています。領域はフラッシュであり、フラッシュ構成データ (プログラムによって生成された) をそこに保存したいと考えています。フラッシュを使用するには、データを正しいブロックに配置する必要があるため、アドレスを指定する必要があります。私がやりたいのは、自分のプログラム コードで埋められないフラッシュの領域を予約して、自分の構成データで埋められるようにすることです。

ご協力いただきありがとうございます!

ステボ

4

1 に答える 1

2

ディレクティブには実装定義の#pragmaキーワードがあるため、答えはコンパイラによって異なります。コンパイラのマニュアルを参照することをお勧めします。

于 2012-12-13T01:14:16.970 に答える