マイクロコントローラーにファイルを分散ロードする方法

この記事では、実際の操作を通じてファイルの分散読み込みを実現する方法を紹介します。開発ツール: mdk、開発ボード: Wildfire stm32f407

1. プロジェクトを確立する

簡単な加算計算ソフトウェア アルゴリズムを実装して画像を分散ロードする方法について学びます。

プロジェクトを作成し、フォルダーと対応するファイルを作成し、パスを設定します。

c09394d530c7c44878582f2f6a1089ec.png

対応する c ファイルは次のとおりです。

4802d7e316532de262785b45535c03bf.png

対応する h ファイルは次のとおりです。

b44737a8a1d9e221c1a2801dc8e12a85.png

main関数とtest関数は以下の通りです。

7e522b9df52f1039bc0d36ab42d585b2.png

コンパイル後、次のようにマップ ファイルの情報を表示します。

238fa6e1340404d55a45e67201859842.png

次のように、プロジェクトの出力と結果が正しいかどうかを確認します。

d4df290a83ab9b495d14cd8adf0b2341.png

2. 分散荷重の設定方法

①プロジェクトのオプションページを開き、リンカーでデフォルトのオプションを設定し、分散ロードファイルを使用します。

プロジェクトにメモリの場所を割り当てるソフトウェア。スキャッタロード ファイルのファイル拡張子はsct です

ed30d65d4b5c4951c5433b0662131b93.png

修正前の内容は以下の通りです。

4bc6aaabea2b63b010058016e67743d2.png

分散ファイルを修正します。ここではマイコンのROMサイズが1Mなので、2つの部分に分かれており、各部分は0x0007FFFFであり、実際の状況に応じて領域サイズを設定する必要があります。デフォルトの分散ロード ファイルに次の変更を加え、最初のロード領域 LR_IROM1のサイズを 0x0007FFFF に変更し、最初の実行領域 ER_IROM1のサイズを0x0007FFFF に変更し、開始アドレスを持つ新しいロード領域 LR_MY_ADDをすぐに作成します。 LR_IROM1 以降のサイズも 0x0007FFFF で、実行領域 ADD_TEST 開始アドレスは LR_MY_ADD と一致しており、myadd.o のすべてのコードがこの領域に配置されます。

490c745c4b4a025491cc02e3d0c07434.png

③地図情報の収集・閲覧

ca4e01abfa5b833a3e51cefba7f13b94.png

オンライン シミュレーションの関数アドレスは、マップ内の情報と一致して次のとおりです。

08b73019f8f07584da101041a8ca801d.png

3. まとめ

    コンパイラは実行可能ファイルを生成するとき、まず各 .c ファイルを .o ファイルにコンパイルし (このプロセスはコンパイルと呼ばれます)、次に多数の .o ファイルを 1 つの実行可能ファイルにリンクします (このプロセスはリンクと呼ばれます)。リンク プロセス中、リンク ファイルはリンク時の動作を指定するために使用されます。スキャッタローディング ファイル sct を変更することで、さまざまなファイルを指定した場所に配置できます。

参考:GD32F1x0_ScatterLoading_V3.1.0

公開アカウントのフォローを歓迎します: Embedded Learning and Practice

おすすめ

転載: blog.csdn.net/weixin_46158019/article/details/132310081