硬汉嵌入式论坛

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

[MDK] mdk运行visio studio的C++库有个奇怪的问题

[复制链接]

9

主题

25

回帖

52

积分

初级会员

积分
52
发表于 2024-11-13 11:48:56 | 显示全部楼层 |阅读模式
如何,MDK中程序用到了C/C++;在visio studio上运行仿真查看变量是正常的2048,如图1;移植到STM32后在MDK上仿真调试发现该值被修改了其他值0x08006091,如图2;请教原因

visio studio断点仿真

visio studio断点仿真

MDK调试

MDK调试
回复

使用道具 举报

9

主题

25

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2024-11-13 11:53:04 | 显示全部楼层
图片粘贴错了,回复好像粘贴不了图片
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116223
QQ
发表于 2024-11-14 09:29:15 | 显示全部楼层
有个地方没搞清楚,用的是一个编译器吗,还是一个GCC,一个ARM Compiler,如果是不同编译器正常现象
回复

使用道具 举报

9

主题

25

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2024-11-14 11:24:38 | 显示全部楼层
eric2013 发表于 2024-11-14 09:29
有个地方没搞清楚,用的是一个编译器吗,还是一个GCC,一个ARM Compiler,如果是不同编译器正常现象

visio studio用的 是默认编译器,mdk用的是ARM ComplierV6;好像是栈的问题,增大栈空间后class的成员初始化就没问题;但现在有个问题:    for (size_t i = 0; i < m_blockSize; ++i)
    {
            dInputBuffers = inputBuffers[0];       
                if (i == 2045)
                {
                        printf("inputBuffers[0][%d] = %f \r\n", i, inputBuffers[0]);
                        printf("dInputBuffers[%d] = %f \r\n", i, dInputBuffers);
                }

    }inputBuffers是float的数组;在STM32仿真时是一样的,赋值给double的dInputBuffers后输出结果和visio studio不一样了
回复

使用道具 举报

9

主题

25

回帖

52

积分

初级会员

积分
52
 楼主| 发表于 2024-11-14 16:17:32 | 显示全部楼层
cv_master 发表于 2024-11-14 11:24
visio studio用的 是默认编译器,mdk用的是ARM ComplierV6;好像是栈的问题,增大栈空间后class的成员初 ...

解决了,内存太大申请失败了,但因为是C++没跑飞不像C那样进入硬件错误
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 12:39 , Processed in 0.254990 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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