ADS中函数参数传递出现错误的问题

[复制链接]
3535|3
 楼主| deyeok 发表于 2007-7-11 16:35 | 显示全部楼层 |阅读模式
请教高手一个问题,我一直百思不得其解。用的编译工具是ADS1.2,cpu是三星的2410,在函数传递的时候,比如float&nbsp;fun(float&nbsp;x){}函数,x参数在进入函数之前一直是正确的,但是当进入函数内部的时候,发现x一直为0,表示没传递进去,单步走的时候发现在进入函数的过程中有一小段汇编程序,应该就是搬移参数的吧。这个问题一直没找到原因,另外,当函数参数是一个比较复杂的结构体的时候也出现过传递参数错误的问题,不过是只有一部分错误,比如结构体struct&nbsp;test_param{<br />&nbsp;&nbsp;int&nbsp;len;<br />&nbsp;&nbsp;int&nbsp;tolen;<br />&nbsp;&nbsp;char&nbsp;buf[128];<br />}<br />buf里面进入函数之前很正常,比如是“1234.567834”,进入函数内部的时候就可能变成“1234.56XXXX”后面4位是乱码,在进入到函数之前单步走的时候也有一小段复制汇编代码。<br />&nbsp;&nbsp;&nbsp;&nbsp;请教各位大虾有没有碰到过这种情况。我如果用指针传递的话都是正确的比如float&nbsp;fun(float&nbsp;*x),传递的话就没有问题。<br />
 楼主| deyeok 发表于 2007-7-20 15:26 | 显示全部楼层

没人遇到这种问题么?

没人遇到这种问题么?
ayb_ice 发表于 2007-7-20 18:35 | 显示全部楼层

随便说说

float&nbsp;fun(float&nbsp;x);<br />这种情况参数X是通过R0传递的,应该很简单,不过没有遇到过问题...
coke 发表于 2007-7-20 19:55 | 显示全部楼层

注意字节对齐问题.

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

本版积分规则

11

主题

23

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部