pobomud 发表于 2024-7-26 15:47:56

为何KEIL调试存取二维数组出错?



在SRAM区定义了一个16位二维数组,但到第6行就出错了,是我的问题吗?谢谢!

DebugLab 发表于 2024-7-26 16:18:11


没发现异常,检查一下xdata是不是过大溢出了




55337575 发表于 2024-7-26 16:27:29

我出现过,具体原因没找出来,跟踪汇编发现有一个单元的偏差。最终处理的办法是设一个指针,指向其中的二维数组之一进行存取操作。

pobomud 发表于 2024-7-26 16:33:56

DebugLab 发表于 2024-7-26 16:18
没发现异常,检查一下xdata是不是过大溢出了


SRAM有1K字节,会不会是外部扩展RAM指针有问题啊?

pobomud 发表于 2024-7-26 16:35:51

55337575 发表于 2024-7-26 16:27
我出现过,具体原因没找出来,跟踪汇编发现有一个单元的偏差。最终处理的办法是设一个指针,指向其中的二维 ...

这个问题位置不固定

pobomud 发表于 2024-7-26 16:50:41


新建test工程又没有问题,再找找。。。

soma 发表于 2024-7-26 17:28:36

==> STC8G/8H/8A/8C系列串口仿真说明
Flash : 0 Byte
data: 0 Byte
idata : 0 Byte
xdata : 芯片最后的768 Bytes
Port: P3.0 and P3.1
你的RAM是多大的,如果是1K就说的过去了。

pobomud 发表于 2024-7-26 19:10:58

soma 发表于 2024-7-26 17:28
==> STC8G/8H/8A/8C系列串口仿真说明
Flash : 0 Byte
data: 0 Byte


1K的,仿真占用了?test工程定义了960都没问题

soma 发表于 2024-7-26 20:03:31

pobomud 发表于 2024-7-26 19:10
1K的,仿真占用了?test工程定义了960都没问题

1K的仿真还是少用点xdata吧。毕竟仿真要占用最后768字节,960没问题真的不好判断了。

llyymm 发表于 2024-7-27 08:15:41

没遇到过,不过了解一下对以后有好处
页: [1] 2
查看完整版本: 为何KEIL调试存取二维数组出错?