2013-03-17 173 views
1

我使用本指南Simulating ARM code它顯示了 如何模擬彙編代碼(arm 7 little endian)並且工作得很好。 我只是改變了設備從臂7小端來的ARM Cortex M3和這些都是錯誤的:用keil uvision模擬彙編代碼(arm cortex m3)4

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 

我認爲,問題是,我的項目不具備某些啓動文件。如果是這樣的話我如何解決這個問題?

回答

1

Cortex-M系列使用來自「clasic ARM」的different exception model,因此需要不同的啓動。我不確定Keil如何使用它,但也許可以在代碼的開頭添加一個Reset_Handler標籤。您可能還需要添加一個帶有矢量定義的啓動文件。使用他們應該提供的一些示例可能更容易,或者如果有新的項目嚮導,可能會更容易。

0

顯然,main()函數入口點被定義爲'Reset_Handler'函數,現在你沒有在你的項目中使鏈接器抱怨。這可能只是你的問題的開始。

如果您想將現有的示例從ARM7架構移植到Cortex M3,那麼使用匯編器可能不是個好主意,因爲這些架構非常不同。

如果你絕對必須這樣做,至少要找到一些適用於新架構的工作示例(不必做你所需要的),然後從那裏開始,以便有一個工作啓動文件,工具集項目文件和一般已知的良好工作環境。然後在那個時候開始移植舊的東西。