打印

我在2407中定义字库后出现这个提示

[复制链接]
2909|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电池|  楼主 | 2008-6-18 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TE, ge, ni, ST, TI
编译提示:

>> cannot allocate .stack in B1 (page 1)
>> errors in input - TTtest.out not built

Build Complete,
  2 Errors, 0 Warnings, 0 Remarks

字库定义:
const unsigned int words[][16]={{...},{...},.....{...}};//字库内数据略。

CMD文件:

-stack 400
-o TTtest.out
-l rts2xx.lib
MEMORY
{
  PAGE 0:    /* Program Memory */
    VECS:           org=00000h,   len=00040h   /* internal FLASH */
    PVECS:          org=00040h,   len=00070h   /* internal FLASH */
    PROG:            org=000b0h,      len=07F50h
  PAGE 1:    /* Data Memory */
    MMRS:            org=00000h,      len=0005Fh
    B2:             org=00060h,   len=00020h   /* internal DARAM */
    B0:             org=00200h,   len=00100h    
    B1:              org=00300h,      len=00100h
    SARAM:          org=00800h,   len=00800h   /* internal SARAM */
    EXTDATA:        org=08000h,   len=08000h   /* external SRAM  */
}
SECTIONS
{
       .reset:  >   VECS       PAGE 0
     .vectors:  >   VECS       PAGE 0   /* initialized */
       .PVECS:  >   PVECS      PAGE 0
        .text:  >   PROG       PAGE 0   /* initialized */
       .cinit:  >   PROG       PAGE 0   /* initialized */
         .bss:  >   SARAM      PAGE 1   /* uninitialized */
       .const:  >   SARAM      PAGE 1   /* initialized */
       .stack:  >   B1         PAGE 1   /* uninitialized */
}


字库原来只有2个汉字,编译没问题,增加10多个汉字后编译就出问题了,我应该怎样设置这个stack?我已经由400设置到1200了,还是不行,最大允许设置多少?为什么字库的大小会影响到这里?

相关帖子

沙发
lianshumou| | 2008-6-19 13:22 | 只看该作者

因为你的SRAM区只有2K

使用特权

评论回复
板凳
开发过程| | 2008-6-19 13:40 | 只看该作者

超出范围了,

使用特权

评论回复
地板
电池|  楼主 | 2008-6-27 08:32 | 只看该作者

那我的汉字库应该怎样处理呢

const空间应该怎么办呢

使用特权

评论回复
5
snakeemail| | 2008-6-27 09:22 | 只看该作者

你定义const数组,实际上这个数组还是在RAM中,而不是在flash中

如果你使用const,你仿真可以,当你把程序烧入flash,你的程序就乱了.

使用特权

评论回复
6
jianghehupo| | 2010-1-20 20:54 | 只看该作者
你的stack定义了0x400个字,但是你的B1空间只有0x100个字。肯定错误

使用特权

评论回复
7
碧血黄花| | 2010-1-21 09:08 | 只看该作者
本帖最后由 碧血黄花 于 2010-1-21 09:12 编辑

stack你的空间最大是256,里面是放中断时候保护的一些变量,一般不要去用

我一般定义东西都把指定内容放到指定地址
你已经这样开辟一个空间:
SARAM:          org=00800h,   len=00800h   /* internal SARAM */
那么你再把字库空间分配过去(如你命名为wordlib)
.wordlib:                >        SARAM        PAGE 1

然后你把该定义的字库放这个空间

我现在几百个C语言变量全是这样分的,稳定的很

我没定义过字库,我用数组是这样的,比如
比如我定义一个shuzu[8]到给你分配的地址,那么:
#pragma DATA_SECTION(receive,".wordlib")               //接收的数组
int shuzu[8]={0,1,1,1,1,1,1,1};

使用特权

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

本版积分规则

13

主题

39

帖子

2

粉丝