【问题标题】:arm assembly instruction to their gnu equivalent onesarm 汇编指令到他们的 gnu 等效项
【发布时间】:2014-10-13 13:34:47
【问题描述】:

下面是一些与 arm 汇编器兼容的代码行,我想将它们转换为它们的 gnu 等价物。基本上我试图在裸机 cortex-r4 上运行代码,在查看互联网后,我找不到 gnu 的启动和链接器文件(对于 cortex-r4),所以最终决定将这些转换为 gnu 程序集。我之前尝试并更改了这些,但出现了一些错误(但是代码编译顺利,错误是运行时)

PRESERVE8
AREA   VECTORS, CODE, READONLY     ; Name this block of code
ENTRY
EXPORT Start
Start
IMPORT       ||Image$$ARM_LIB_STACKHEAP$$ZI$$Limit||
LDR     SP, =||Image$$ARM_LIB_STACKHEAP$$ZI$$Limit||
DCD
IF {TARGET_FPU_VFP}

如果您可以提供或指导我启动或链接器文件,那将是一个加分

问候,

【问题讨论】:

    标签: assembly cross-compiling gnu armcc


    【解决方案1】:

    这里的大多数关键字都是 ARM 编译器/链接器特定的,在 GNU C 中没有直接对应项。

    代码创建了一个函数“Start”,它只是将堆栈指针 (SP) 设置为给定的文字。并指示链接器将此代码放入内存映射的只读 (RO) 区域。尽管您的代码不完整,因为似乎有一个 IF 子句。

    如果您了解 ARM 代码,那么将其转换为简单的 ld 链接器脚本会相对容易。在此处阅读更多信息:
    http://www.embedded.com/design/mcus-processors-and-socs/4026075/Building-Bare-Metal-ARM-Systems-with-GNU-Part-2
    http://www.embedded.com/design/mcus-processors-and-socs/4026080/Building-Bare-Metal-ARM-Systems-with-GNU-Part-3

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 2022-08-11
      • 2011-02-18
      • 2023-03-10
      • 1970-01-01
      • 2010-10-18
      • 2014-06-19
      • 2013-06-12
      • 1970-01-01
      相关资源
      最近更新 更多