电池 发表于 2008-6-18 14:35

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

编译提示:<br /><br />&gt&gt&nbsp;cannot&nbsp;allocate&nbsp;.stack&nbsp;in&nbsp;B1&nbsp;(page&nbsp;1)<br />&gt&gt&nbsp;errors&nbsp;in&nbsp;input&nbsp;-&nbsp;TTtest.out&nbsp;not&nbsp;built<br /><br />Build&nbsp;Complete,<br />&nbsp;&nbsp;2&nbsp;Errors,&nbsp;0&nbsp;Warnings,&nbsp;0&nbsp;Remarks<br /><br />字库定义:<br />const&nbsp;unsigned&nbsp;int&nbsp;words[]={{...},{...},.....{...}};//字库内数据略。<br /><br />CMD文件:<br /><br />-stack&nbsp;400<br />-o&nbsp;TTtest.out<br />-l&nbsp;rts2xx.lib<br />MEMORY<br />{<br />&nbsp;&nbsp;PAGE&nbsp;0:&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Program&nbsp;Memory&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;VECS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00000h,&nbsp;&nbsp;&nbsp;len=00040h&nbsp;&nbsp;&nbsp;/*&nbsp;internal&nbsp;FLASH&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PVECS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00040h,&nbsp;&nbsp;&nbsp;len=00070h&nbsp;&nbsp;&nbsp;/*&nbsp;internal&nbsp;FLASH&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;PROG:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=000b0h,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=07F50h<br />&nbsp;&nbsp;PAGE&nbsp;1:&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Data&nbsp;Memory&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;MMRS:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00000h,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=0005Fh<br />&nbsp;&nbsp;&nbsp;&nbsp;B2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00060h,&nbsp;&nbsp;&nbsp;len=00020h&nbsp;&nbsp;&nbsp;/*&nbsp;internal&nbsp;DARAM&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;B0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00200h,&nbsp;&nbsp;&nbsp;len=00100h&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;B1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00300h,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len=00100h<br />&nbsp;&nbsp;&nbsp;&nbsp;SARAM:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=00800h,&nbsp;&nbsp;&nbsp;len=00800h&nbsp;&nbsp;&nbsp;/*&nbsp;internal&nbsp;SARAM&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;EXTDATA:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org=08000h,&nbsp;&nbsp;&nbsp;len=08000h&nbsp;&nbsp;&nbsp;/*&nbsp;external&nbsp;SRAM&nbsp;&nbsp;*/<br />}<br />SECTIONS<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.reset:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;VECS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.vectors:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;VECS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;/*&nbsp;initialized&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.PVECS:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;PVECS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.text:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;PROG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;/*&nbsp;initialized&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cinit:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;PROG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;0&nbsp;&nbsp;&nbsp;/*&nbsp;initialized&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.bss:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;SARAM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;/*&nbsp;uninitialized&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.const:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;SARAM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;/*&nbsp;initialized&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stack:&nbsp;&nbsp;&gt&nbsp;&nbsp;&nbsp;B1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PAGE&nbsp;1&nbsp;&nbsp;&nbsp;/*&nbsp;uninitialized&nbsp;*/<br />}<br /><br /><br />字库原来只有2个汉字,编译没问题,增加10多个汉字后编译就出问题了,我应该怎样设置这个stack?我已经由400设置到1200了,还是不行,最大允许设置多少?为什么字库的大小会影响到这里?<br />

lianshumou 发表于 2008-6-19 13:22

因为你的SRAM区只有2K

开发过程 发表于 2008-6-19 13:40

超出范围了,

电池 发表于 2008-6-27 08:32

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

const空间应该怎么办呢

snakeemail 发表于 2008-6-27 09:22

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

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

jianghehupo 发表于 2010-1-20 20:54

你的stack定义了0x400个字,但是你的B1空间只有0x100个字。肯定错误

碧血黄花 发表于 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到给你分配的地址,那么:
#pragma DATA_SECTION(receive,".wordlib")               //接收的数组
int shuzu={0,1,1,1,1,1,1,1};
页: [1]
查看完整版本: 我在2407中定义字库后出现这个提示