打印

PIC16F1823 XC8分配数组问题

[复制链接]
1926|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
efen|  楼主 | 2015-9-22 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助,现在问题是RAM空间还有多的剩余,但就是不能再分配更大的分组。如我分配了30大小的数组再加其它变量共100byte,还有28byte多的,这时再想将30大小的数组更至40确会报错空间不足,请问要怎么解决啊,谢谢
沙发
StevenLau2008| | 2015-9-23 10:10 | 只看该作者
StevenLau
Mob:13148736025
QQ:359920019

使用特权

评论回复
板凳
wenyong200| | 2015-9-23 10:27 | 只看该作者
你可能还是临时变量吧

使用特权

评论回复
地板
chenyu988| | 2015-9-23 10:41 | 只看该作者
定义成const,放到flash里

使用特权

评论回复
5
efen|  楼主 | 2015-9-23 15:36 | 只看该作者
wenyong200 发表于 2015-9-23 10:27
你可能还是临时变量吧

全局变量volatile

使用特权

评论回复
6
efen|  楼主 | 2015-9-23 15:36 | 只看该作者
chenyu988 发表于 2015-9-23 10:41
定义成const,放到flash里

不是常量

使用特权

评论回复
7
wuhenyouyu| | 2015-9-24 13:38 | 只看该作者
开启最大优化,然后把大数组指定一个区,因为数组存贮不能跨区,你就算有剩余可能不再一个区。

使用特权

评论回复
8
efen|  楼主 | 2015-9-24 16:20 | 只看该作者
wuhenyouyu 发表于 2015-9-24 13:38
开启最大优化,然后把大数组指定一个区,因为数组存贮不能跨区,你就算有剩余可能不再一个区。 ...

,每个存储区有128字节。
每个存储区都包含(图3-2):
• 12 个内核寄存器
• 20 个特殊功能寄存器(Special Function Register,
SFR)
• 最多80 字节的通用RAM(General Purpose RAM,
GPR)
• 16 字节的公共RAM
已经是最优的等级了。那个1823只有一个区,128字节,我现在发现是刚好在到RAM有到100字节时,数组就不能再大了,而且最另定义一个变量,数组就相应的要缩小,剩余的28字节去哪了。。

使用特权

评论回复
9
wuhenyouyu| | 2015-9-24 16:32 | 只看该作者
你栈设置多大?

使用特权

评论回复
10
efen|  楼主 | 2015-9-26 08:58 | 只看该作者

第一次用pic,编绎器参数都没改,手册说有complier stack &data stack,没搞懂
   Program space        used   66Ah (  1642) of   800h words   ( 80.2%)
    Data space           used    63h (    99) of    80h bytes   ( 77.3%)
    EEPROM space         used     0h (     0) of   100h bytes   (  0.0%)
    Data stack space     used     0h (     0) of    19h bytes   (  0.0%)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

616

帖子

1

粉丝