6410在rvds下编译启动代码报错分析

contains invalid call from '~PRES8' function to 'REQ8' function main

RVDS编译出现contains invalid call from '~PRES8' function to 'REQ8' function main
解决办法:在汇编文件顶部加 preserve8 伪指令

错误提示如下:Error   : armlink: L6238:  44BINIT.o(Init) contains invalid call from ''~PRES8'' function to ''REQ8'' function main.
参考了网上的一些文章,原因如下:“ADS1.2升级到RVDS2.2固有的问题。问题的起因是因为使用LDRD和STRD双字传输指令。可能(猜测)RVDS2.x的C编译器使用了这些指令,因此要求你现有的汇编文件和库文件明确使用8byte对齐栈(见rvds编译器参考手册的3.1.6),所以,你应该在汇编文件中加上“PRESERVE8”来定义,而这个在zlg的文件中是没有定义的。”

 

 

我看了下c的反汇编,里面没有双字节传输指令啊


 这个问题弄得我晕头转向的,弄得好几天,印象深刻啊,浪费了不少时间,这又是由于集成开发环境版本的问题,赶紧继续O(∩_∩)O~6410在rvds下编译启动代码报错分析6410在rvds下编译启动代码报错分析

转载于:https://www.cnblogs.com/songfeixiang/p/3733846.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值