首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARM ASM:坏指令端

ARM ASM:坏指令端
EN

Stack Overflow用户
提问于 2019-09-06 12:21:06
回答 1查看 1.4K关注 0票数 1

在我当前的项目中,我们使用Segger embOS作为实时操作系统。目标系统为ARM Cortex-M单片机。

RTOS有一些用汇编程序编写的代码。但是,ASM代码会产生一个错误:

RTOS.s:69: Error: bad instruction `end'

根据ARM汇编程序参考指南reference.pdf

(第6.8.5章)指令"END“存在(我不确定汇编程序是否区分大小写)尽管存在此指令,但程序集不会编译。

每个包含文件都以一个.end终止(注意“”。和小写字母)

文件RTOS.s

代码语言:javascript
复制
#define OS_RTOS_S_INCLUDED

/*******************************************************************
*
*       Code section includes selected code
*
********************************************************************
*/
#if (defined __ARM_ARCH_6M__) || (defined __ARM_ARCH_8M_BASE__)
  //
  // Cortex-M0
  //
  #include "RTOS_CM0.S"

#elif (defined (__VFP_FP__) && defined (__SOFTFP__))
  //
  // Cortex-M3 or Cortex-M4 without VFP
  //
  #include "RTOS_CM3.S"

#elif (defined (__VFP_FP__) && !defined (__SOFTFP__))
  //
  // Cortex-M4 with VFP
  //
  #include "RTOS_CM4F.S"

#else
  #error "No RTOS.S for selected CPU available, check configuration"
#endif

/********************************************************************/

        END//Line 69

/*****  End of file  ************************************************/

切换到.end接缝以解决编译错误。但是,链接器找不到汇编程序脚本中定义的函数(这可能是不同的问题)。

所以我的问题是:为什么指令的结尾是一个糟糕的指令?

EN

回答 1

Stack Overflow用户

发布于 2019-09-07 11:07:47

末端指令是一个armasm指令,而不是ARM程序集指令。也就是说,它是在构建代码期间对汇编程序的指令,而不是对处理器的指令。.end是GNU (GNU汇编程序)等效的。

不同的工具链使用不同的汇编程序指令和语法。您正在尝试使用gas (GNU汇编程序)构建armasm源代码,这是不兼容的。您肯定会遇到其他问题,这些问题将阻止您使用GNU构建ARM工具链特定的源代码/对象--尤其是除了技术问题之外,还有一些法律问题,因为embOS许可证是特定于工具链的。

每个Segger embOS许可证都为特定的工具链提供。如果您希望使用不同的工具链,您将需要一个新的许可证和不同的工具链特定代码/库--即使您有源代码许可证;这不仅是一个法律问题,也是一个技术问题-- Segger不为所有工具链提供单一工具链的许可证。如果您只有一个对象代码许可证,则如果使用与构建对象代码不同的工具链(在某些情况下甚至使用不同的工具链版本),则它可能不会链接。

您需要检查,但很可能您拥有Keil ARM MDK工具链(包括armcc/armasm等)的许可证。它不是一个免费的工具,你需要购买一个embOS许可的GNU,或许可的工具链,你有embOS许可证。

在任何情况下,您都可以很好地更新您的Segger支持和维护许可证,这样您就可以从它们获得技术支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57821937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档