2013-03-17 66 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,那么使用汇编器可能不是个好主意,因为这些架构非常不同。

如果你绝对必须这样做,至少要找到一些适用于新架构的工作示例(不必做你所需要的),然后从那里开始,以便有一个工作启动文件,工具集项目文件和一般已知的良好工作环境。然后在那个时候开始移植旧的东西。