完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
很急,很急!有碰到过类似问题的兄弟请给个指导。 小弟先谢过!
最近在搞蓝牙BLE的一个项目。 目前在调试硬件驱动阶段。移植 MPU6050 (陀螺仪+三轴加速度) 的四元素融合算法的时候编译器报错。 IAR版本:IAR FOR 8051 v9.1 . 情景一:: // compute reference direction of flux hx = 2*(*mx)*(0.5 - q2q2 - q3q3) + 2*(*my)*(q1q2 - q0q3) + 2*(*mz)*(q1q3 + q0q2); hy = 2*(*mx)*(q1q2 + q0q3) + 2*(*my)*(0.5 - q1q1 - q3q3) + 2*(*mz)*(q2q3 - q0q1); hz = 2*(*mx)*(q1q3 - q0q2) + 2*(*my)*(q2q3 + q0q1) + 2*(*mz)*(0.5 - q1q1 - q2q2); 如上的计算就会报下面这个错。 Error[e133]: The output format intel-extended cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted 情景二::公式angle= (atan2((double)y,(double)x) * (180 / 3.14159265) + 180); 计算也会报上面这个错, 因为这个公式只有一个,我把它分开写了 Rangle=atan2((double)y,(double)x); KRad=180.0 /PI; angle=Rangle*KRad; angle=angle+KAngle; 编译成功,能正常计算。 但是四元素融合算法里类似这种复杂公式的计算太多了,这样全部分开不是一个解决办法。。。还需要从根本上解决这个报错问题。 情景三: 不仅计算,光光声明一个函数头 void AHRSupdate(float gx, float gy, float gz, float ax, float ay, float az, float mx, float my, float mz) [/* 函数体计算部分全部屏蔽 */} 这样,编译能通过,但是在主程序中调用该函数时,也会包上面那个错。Error[e133]: The output format intel-extended cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted。 试过网上的的由于EEROM使用,输出设置不当造成。。但是我程序中并没有使用EEPORM。 有各位大侠解惑! 谢谢! |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
TI的DSP0049在PHS载入值跨过CMPA事件会产生丢波现象
587 浏览 0 评论
958 浏览 1 评论
1222 浏览 0 评论
679 浏览 1 评论
548 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
437浏览 29评论
1400浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
505浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
427浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
280浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-4-21 14:40 , Processed in 1.307754 second(s), Total 39, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191