ADS转RVDS invalid call from '~PRES8' function to 'REQ8' function

将ADS工程转换为RVDS时遇到链接错误L6238E,原因是8字节栈对齐冲突。错误发生在不保持8字节栈对齐的汇编代码调用需要8字节栈对齐的C/C++代码时。解决方案包括重新编译源码以确保所有对象使用最新工具,或者检查并确认无法重建的旧对象是否确实保持8字节对齐,并使用链接器命令行选项"--diag_suppress 6238"或"--diag_suppress 6306"来抑制警告。
摘要由CSDN通过智能技术生成

把ADS的文件放到RVDS2.2的工程里,make时出现invalid call from '~PRES8' function to 'REQ8'...

google加ARM网站,找到一段解释:

This RVDS/RVCT linker error is given where a stack alignment conflict is detected in object code. The "ABI for the ARM Architecture" demands that code maintains 8-byte stack alignment at its interfaces. This allows efficient use of LDRD and STRD instructions (in ARM Architecture 5TE and later) to access 8-byte-aligned "double" and "long long" data types.

Symbols like '~PRES8' and 'REQ8' are "Build Attributes" of the objects.

  • PRES8 means the object PREServes 8-byte alignment of the stack.
  • ~PRES8 means the object does NOT preserve 8-byte alignment of the stack (~ meaning NOT).
  • REQ8 means the object REQuires 8-byte alignment of the stack.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值