使用keil uvision 4模拟汇编代码(arm cortex m3)

时间:2013-03-17 22:50:40

标签: assembly arm keil

我使用了这个指南Simulating ARM code 如何模拟汇编代码(arm 7 little endian)并且工作得非常好。 我只是将设备从第7手臂小端更改为手臂皮质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

我认为问题在于我的项目没有一些启动文件。如果是这样我可以解决这个问题?

2 个答案:

答案 0 :(得分:1)

Cortex-M系列使用来自“clasic ARM”的different exception model,因此需要不同的启动。我不确定Keil是如何使用它的,但也许可以尝试在代码的开头添加Reset_Handler标签。您可能还需要添加带有矢量定义的启动文件。使用它们应该提供的一些示例可能更容易,或者如果它有一个新项目向导可能更容易。

答案 1 :(得分:0)

显然main()函数入口点之前被定义为'Reset_Handler'函数,现在你没有在项目中使用它以便链接器抱怨。这可能只是你问题的一个开始。

如果要将现有示例从ARM7体系结构移植到Cortex M3,那么使用汇编程序可能不太好,因为这些是非常不同的体系结构。

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