打印

请教PICC18中定义大数组问题

[复制链接]
3907|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
astudent|  楼主 | 2008-8-28 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PICC18中定义大数组问题 

PICC18中使用如下代码:
struct test{...};

struct test test[4];

则提示:can't find 0x14D words for psect "data" in segment "RAM",无法编译通过。

改为struct test test[15];

可以编译通过,程序运行也正常。但改成这样的话,则浪费了大量的内存空间。

请教各位网友,该问题有没有更好地解决办法?
 
 

相关帖子

沙发
astudent|  楼主 | 2008-8-28 15:52 | 只看该作者

原型

struct Testable
{
    char name[15];
    char Enable[2];
    word State;
    word Para1;
    word Para2;
    word Para3;
    word Para4;
    word Para5;
};

使用特权

评论回复
板凳
astudent|  楼主 | 2008-8-29 08:21 | 只看该作者

up

使用特权

评论回复
地板
astudent|  楼主 | 2008-8-29 10:23 | 只看该作者

永远争第一

使用特权

评论回复
5
astudent|  楼主 | 2008-8-29 11:29 | 只看该作者

没有人用picc18么?

使用特权

评论回复
6
astudent|  楼主 | 2008-8-29 14:04 | 只看该作者

up again

使用特权

评论回复
7
astudent|  楼主 | 2008-9-1 08:39 | 只看该作者

自己顶

使用特权

评论回复
8
snakeemail| | 2008-9-1 15:37 | 只看该作者

缩小,放到空的seg里面

使用特权

评论回复
9
astudent|  楼主 | 2008-9-1 16:08 | 只看该作者

to ls,可否举个例子。

使用特权

评论回复
10
astudent|  楼主 | 2008-9-2 08:39 | 只看该作者

up again

使用特权

评论回复
11
astudent|  楼主 | 2008-9-2 11:40 | 只看该作者

看来PIC用的人确实少啊。

使用特权

评论回复
12
yewuyi| | 2008-9-2 12:52 | 只看该作者

不是不想回答你,只是你给出的信息实在太少。。。

建议你把你的项目文件打包压缩后让大家测试。。。

使用特权

评论回复
13
astudent|  楼主 | 2008-9-2 12:55 | 只看该作者

望洋兴叹。

使用特权

评论回复
14
snakeemail| | 2008-9-2 14:21 | 只看该作者

pic的ram是分段的

pic16我用过,18和它类似,picc的编译器会默认把变量放到第一个RAm区内,你要把它放到后面空的3个RAM段中,看张明峰的书吧。

使用特权

评论回复
15
astudent|  楼主 | 2008-9-2 15:35 | 只看该作者

pic18中,已经不需要指定bank

现在问题的关键:ram空间是够的,因为声明为struct test test[15];可以正常编译,但声明为struct test test[4];则报错,不清楚是我弱智还是picc18弱智。

使用特权

评论回复
16
astudent|  楼主 | 2008-9-2 17:15 | 只看该作者

问题解决。

使用特权

评论回复
17
Wxy8030| | 2008-9-2 17:24 | 只看该作者

什么叫“问题已解决?”啊?

楼主的问题这么多人看了也回了,怎么也给大家一个解释到底怎么解决的啊?

使用特权

评论回复
18
astudent|  楼主 | 2008-9-2 17:38 | 只看该作者

hehe

刚开始,对结构体数组是在定义时直接初始化的,改为在程序中初始化即可。

使用特权

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

本版积分规则

41

主题

510

帖子

0

粉丝