魏十一 发表于 2024-6-3 17:28:21

STC8A8K64D4下载程序后跑飞 | RAM 用超了

新人第一次发帖

   想问一下各位大佬们,有没有遇到这种情况:头文件定义了一种结构体,但是里面成员的二维数组数组大小,如果是100及100以下就可以正常使用。如果往上就程序跑飞了
   
   代码结构:
         定时器0和定时器1用作非阻塞延时用,初始化后暂时未使用。定时器2做串口2的波特率发生器,当收到指定指令时,修改全局标志位,后台程序将数据放入指定结构体里面,
然后进行数据处理。但是现在程序跑飞,加了while在main函数前面。只要是收到串口2数据,单片机就一直往串口助手发信息。连定时器0的呼吸灯反转都用不了了。


   想问一下,是不是结构体不能太大导致的,因为如果定义100就可以正常运行。求求各位大佬给个建议,谢谢{:4_243:}{:4_213:}

_奶咖君_ 发表于 2024-6-3 17:45:57

你数数你用了多少K的RAM了{:4_167:}

乘风飞扬 发表于 2024-6-3 18:03:19

STC8A8K64D4芯片的xdata只有8K,你都用了10几K了



zhange 发表于 2024-6-3 19:03:03

学习下

soma 发表于 2024-6-3 19:32:38

u8后面加code应该可以了。

魏十一 发表于 2024-6-3 20:29:15

乘风飞扬 发表于 2024-6-3 18:03
STC8A8K64D4芯片的xdata只有8K,你都用了10几K了

感谢大佬,就是说可以定义外部全局变量,用code修饰,就可以放入内部rom里面了是吗

魏十一 发表于 2024-6-3 20:58:02

感谢各位大佬,我明白了,结构体是一种数据结构。一个结构体多了600个字节,10个结构体就是6k大小左右,所以就爆了

魏十一 发表于 2024-6-3 20:59:32

_奶咖君_ 发表于 2024-6-3 17:45
你数数你用了多少K的RAM了

太感谢了,经过指点,我已经发现问题了

jwd 发表于 2024-6-3 21:10:26

你这是不挤爆不罢休{:4_165:}
页: [1]
查看完整版本: STC8A8K64D4下载程序后跑飞 | RAM 用超了