硬汉嵌入式论坛

 找回密码
 立即注册
查看: 709|回复: 13
收起左侧

[IAR] 汇编文件编译出现--abi错误

[复制链接]

2

主题

12

回帖

18

积分

新手上路

积分
18
发表于 2024-1-4 09:47:41 | 显示全部楼层 |阅读模式
使用内核Cortex-A53,64位,编译工程中的汇编文件.s,报错        Error in command line: Invalid argument to option '--abi',请问有大拿遇到这个问题吗?
IAR版本9.50.1

万分感谢。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
发表于 2024-1-4 13:47:02 | 显示全部楼层
帮顶,不清楚这个问题。
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2024-1-4 13:53:08 | 显示全部楼层
这种问题你得贴出你的构建出错的文件对应的完整命令行才能给分析问题啊,否则没人知道你咋设置的汇编器参数~
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-1-4 17:21:57 | 显示全部楼层
zcsexp 发表于 2024-1-4 13:53
这种问题你得贴出你的构建出错的文件对应的完整命令行才能给分析问题啊,否则没人知道你咋设置的汇编器参数 ...

本来想贴截图,老是被拦截
没有设置汇编特殊指令,在osp文件里显示如下:
D:\IARWorkspace\armv8\src\vector.s -OD:\IARWorkspace\armv8\Debug\Obj\ -s+ -M<> -w+ -r -j --cpu Cortex-A53 --abi ilp32
就是这个--abi ilp32报错
回复

使用道具 举报

3

主题

96

回帖

105

积分

初级会员

积分
105
发表于 2024-1-4 17:49:03 | 显示全部楼层
这个报错可能是由于使用了错误的ABI,导致工具无法编译生成目标文件。在Cortex-A53处理器上,ILP32是不受支持的 ABI(Application Binary Interface,应用程序二进制接口,决定了二进制代码与操作系统及其他库之间的接口规范)。

针对Cortex-A53处理器,请使用AARCH64架构下的ABI,例如:--abi lp64。

你可以尝试更改命令行中的abi参数为"lp64",即:

    D:\IARWorkspace\armv8\src\vector.s -OD:\IARWorkspace\armv8\Debug\Obj\ -s+ -M<> -w+ -r -j --cpu Cortex-A53 --abi lp64

如果还有其他出错问题,可以提供具体的错误信息给我,我将会尽力提供更多的帮助。
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-1-4 18:18:18 | 显示全部楼层
2859932063 发表于 2024-1-4 17:49
这个报错可能是由于使用了错误的ABI,导致工具无法编译生成目标文件。在Cortex-A53处理器上,ILP32是不受支 ...

非常感谢你的回答。lp64也报相同的错误
D:\IARWorkspace\armv8\src\vector.s -OD:\IARWorkspace\armv8\Debug\Obj\ -s+ -M<> -w+ -r -j --cpu Cortex-A53 --abi lp64
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-1-5 17:41:11 | 显示全部楼层
我勾选了allow alternative register names,mnemonics and..
如果不勾选则不出现--abi问题,但是报如下错误:
        Error[401]: Operand syntax error        D:\IARWorkspace\asm\asm.s        19
        Error[401]: Operand syntax error        D:\IARWorkspace\asm\asm.s        20
        Error[40]: Bad instruction        D:\IARWorkspace\asm\asm.s        32
        Error[50]: Undefined symbol:'PC'        D:\IARWorkspace\asm\asm.s        13
IAR 只支持32位asm,M系列没有问题,改为A53 64位就会出现上述错误
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-1-18 14:01:18 | 显示全部楼层
自己帮顶。。。
回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
发表于 2024-1-18 19:12:50 | 显示全部楼层
cz6618 发表于 2024-1-18 14:01
自己帮顶。。。

这样试试:--abi=arm64-v8a
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-1-19 14:47:19 | 显示全部楼层
庄永 发表于 2024-1-18 19:12
这样试试:--abi=arm64-v8a

这个参数不是我手动设置的,是IAR工具自动生成的,只有lp64和ilp32
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
 楼主| 发表于 2024-3-6 16:19:25 | 显示全部楼层
再顶最后一次
回复

使用道具 举报

3

主题

119

回帖

128

积分

初级会员

积分
128
发表于 2024-3-6 17:07:21 | 显示全部楼层
有没有源码提供,没搜到A53裸机代码
回复

使用道具 举报

3

主题

119

回帖

128

积分

初级会员

积分
128
发表于 2024-3-6 17:24:12 | 显示全部楼层
cz6618 发表于 2024-1-19 14:47
这个参数不是我手动设置的,是IAR工具自动生成的,只有lp64和ilp32

general options->target->execute mode改成32bit试试
回复

使用道具 举报

3

主题

119

回帖

128

积分

初级会员

积分
128
发表于 2024-3-7 08:40:22 | 显示全部楼层
你是不是拿gcc的汇编文件用IAR编译的,老老实实用GCC或者自己写IAR启动文件,或者直接写C文件,关键地方就内嵌汇编
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 00:25 , Processed in 0.381029 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表