单片机/MCU论坛
直播中

jjll652

9年用户 1411经验值
私信 关注
[问答]

使用dsram和psram时Aurix Tricore TC277全局变量异常的原因?

我的数学模型在 dsam 中有许多全局变量,ADS 会自动扩展并将这些变量放到 psram 中,但是 psram 的这些变量总是异常,例如下面的代码部分,在这个模型中我必须得到 " 1,但我总是得到 " 0",当我调试这个部分时",我发现 Test_Memory 变成 1 到 0,这是不正确的。
但是当我将这个变量从 psram 移动到其他 dsram 时,我会得到正确的 " 1 结果",有什么建议吗?
谢谢
uint8 Test_Memory=1;  //Psramif(Test_Memory)    return 1;else    return 0;  // Always return 0, incorrect and Test_Memory abnormal///////////////////////////////////////uint8 Test_Memory=1;  //Move to Dsramif(Test_Memory)    return 1;  // return correct valueelse    return 0;   
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Aurix-Tricore-TC277-global-variable-abnormal-with-dsram-and-psram/td-p/645705
                                                                                                                                                                                                                                                                                                                                                                                                        
                                                        

回帖(1)

风来吴山

2024-1-23 15:39:56
在使用Aurix Tricore TC277时,全局变量异常的原因可能是由于DSRAM和PSRAM之间的访问速度或访问时间不同,以及DSRAM和PSRAM之间的数据传输问题。

建议您尝试以下方法来解决这个问题:

1. 确保DSRAM和PSRAM的访问速度相近:检查Aurix Tricore TC277的文档,查看DSRAM和PSRAM的访问速度是否相似,如果速度不同,尝试将全局变量放在访问速度较快的内存中。

2. 检查内存访问延迟:PSRAM的访问时间可能会比DSRAM更长,因此可能需要增加访问PSRAM的延迟时间。尝试在访问PSRAM之前添加一些延迟,以确保数据能够正确地传输。

3. 检查数据传输问题:DSRAM和PSRAM之间的数据传输可能存在问题。尝试使用其他数据传输方法,例如使用DMA来传输数据,以避免数据传输错误。

4. 检查编译器优化选项:某些编译器优化选项可能会影响对全局变量的访问。尝试禁用编译器优化选项,看看是否有改善。

5. 尝试使用其他存储器类型:如果DSRAM和PSRAM都无法正常工作,可能需要考虑使用其他类型的存储器,例如存储器闪存或外部存储器。

请注意,以上建议是一般性的,具体解决方法可能需要结合您的具体应用和硬件环境进行调整。您还可以咨询相关的技术支持团队,以获取更具体的帮助和建议。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分