硬汉嵌入式论坛

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

[其它] 数组访问异常?

[复制链接]

11

主题

33

回帖

11

积分

新手上路

积分
11
发表于 2015-4-10 10:52:19 | 显示全部楼层 |阅读模式
我使用如下方式调用,不会产生应将异常:
    t_Axis[0]=i_pNode->m_Data.m_CirCmd.m_Axis[0];
    DevMem_DrawDot(&t_Axis[0],0,i_DevId);
但我使用下面的方式调用,就会产生异常:
    DevMem_DrawDot(&i_pNode->m_Data.m_CirCmd.m_Axis[0],0,i_DevId);
硬件异常产生在访问变量时:
     static void DevMem_DrawDot(const TAxis* i_pAxis,uint8_t i_IsErr,uint8_t i_DevId)        
     {
         。。。
         t_Axis=DevMem_ShiftAxis(&i_pAxis[0],i_DevId);
         。。。
      }
     static TAxis DevMem_ShiftAxis(const TAxis* i_pAxis,uint8_t i_DevId)   

     {
        。。。
        t_x=i_pAxis[0].m_x;          //产生异常t_x,m_x都为float32_t类型变量(开了FPU)
        。。。
    }
能否解释下?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2015-4-10 11:17:12 | 显示全部楼层
难道是传说中的浮点数做函数形参容易出问题? 不行你试试不要用浮点是做函数形参。这个是一些网友反映的。

我使用ARM官方的DSP库的时候,浮点数做形参没问题。
回复

使用道具 举报

11

主题

33

回帖

11

积分

新手上路

积分
11
 楼主| 发表于 2015-4-10 11:49:14 | 显示全部楼层
我在用浮点做形参时也没遇到问题。
但浮点用起来非常奇怪,有时仅仅是赋值,就产生硬件异常(如f1=f2)
不知道你们遇见没有?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2015-4-10 11:53:41 | 显示全部楼层

回 longwuyi 的帖子

longwuyi:我在用浮点做形参时也没遇到问题。
但浮点用起来非常奇怪,有时仅仅是赋值,就产生硬件异常(如f1=f2)
不知道你们遇见没有? (2015-04-10 11:49) 
这个没有遇见过。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 04:21 , Processed in 0.183113 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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