1

私はこのガイドを使用しましたARMコードのシミュレート アセンブリコード(arm 7リトルエンディアン)をシミュレートする方法を示し、完全にうまく機能します。デバイスを arm 7 リトル エンディアンから arm cortex m3 に変更したところ、次のエラーが発生しました。

Build target 'Target 1' 
assembling test.s...
linking...
sa.axf: Error: L6320W: Ignoring --entry command. Cannot find argument 'Reset_Handler'.
sa.axf: Warning: L6320W: Ignoring --first command. Cannot find argument '__Vectors'.
Target not created

問題は、プロジェクトにいくつかのスタートアップ ファイルがないことだと思います。この場合、どうすれば修正できますか?

4

2 に答える 2

1

Cortex-M ファミリは、「クラシック ARM」とは異なる例外モデルを使用するため、異なる起動が必要です。Keil がどのように機能するかはわかりませんReset_Handlerが、コードの先頭にラベルを追加してみてください。ベクター定義を含む起動ファイルを追加する必要がある場合もあります。提供されているはずのいくつかの例を使用するか、新しいプロジェクトウィザードがある場合はそれを使用する方が簡単かもしれません.

于 2013-03-18T11:58:30.423 に答える
0

明らかに、main() 関数のエントリ ポイントは、以前は 'Reset_Handler' 関数として定義されていましたが、現在はプロジェクトに含まれていないため、リンカーは文句を言いました。そして、それはおそらくあなたの問題の始まりに過ぎません。

既存のサンプルを ARM7 アーキテクチャから Cortex M3 に移植する場合、アセンブラを使用するのは得策ではないかもしれません。これらは非常に異なるアーキテクチャだからです。

どうしてもそれをしなければならない場合は、少なくとも新しいアーキテクチャの実用的な例を見つけて (必要なことをする必要はありません)、そこから開始して、実用的なスタートアップ ファイル、ツール セット プロジェクト ファイルを作成します。 )、および一般的に既知の良好な作業環境。次に、古いものの移植を 1 段階ずつ開始します。

于 2013-03-18T18:32:44.933 に答える