请教PICC18中定义大数组问题

[复制链接]
4844|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 | 显示全部楼层
 楼主| astudent 发表于 2008-8-29 10:23 | 显示全部楼层

永远争第一

 楼主| astudent 发表于 2008-8-29 11:29 | 显示全部楼层

没有人用picc18么?

 楼主| astudent 发表于 2008-8-29 14:04 | 显示全部楼层

up again

 楼主| astudent 发表于 2008-9-1 08:39 | 显示全部楼层

自己顶

snakeemail 发表于 2008-9-1 15:37 | 显示全部楼层

缩小,放到空的seg里面

 楼主| astudent 发表于 2008-9-1 16:08 | 显示全部楼层

to ls,可否举个例子。

 楼主| astudent 发表于 2008-9-2 08:39 | 显示全部楼层

up again

 楼主| astudent 发表于 2008-9-2 11:40 | 显示全部楼层

看来PIC用的人确实少啊。

yewuyi 发表于 2008-9-2 12:52 | 显示全部楼层

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

建议你把你的项目文件打包压缩后让大家测试。。。
 楼主| astudent 发表于 2008-9-2 12:55 | 显示全部楼层

望洋兴叹。

snakeemail 发表于 2008-9-2 14:21 | 显示全部楼层

pic的ram是分段的

pic16我用过,18和它类似,picc的编译器会默认把变量放到第一个RAm区内,你要把它放到后面空的3个RAM段中,看张明峰的书吧。
 楼主| astudent 发表于 2008-9-2 15:35 | 显示全部楼层

pic18中,已经不需要指定bank

现在问题的关键:ram空间是够的,因为声明为struct test test[15];可以正常编译,但声明为struct test test[4];则报错,不清楚是我弱智还是picc18弱智。
 楼主| astudent 发表于 2008-9-2 17:15 | 显示全部楼层

问题解决。

Wxy8030 发表于 2008-9-2 17:24 | 显示全部楼层

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

楼主的问题这么多人看了也回了,怎么也给大家一个解释到底怎么解决的啊?
 楼主| astudent 发表于 2008-9-2 17:38 | 显示全部楼层

hehe

刚开始,对结构体数组是在定义时直接初始化的,改为在程序中初始化即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

509

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部