我在2407中定义字库后出现这个提示
编译提示:<br /><br />>> cannot allocate .stack in B1 (page 1)<br />>> errors in input - TTtest.out not built<br /><br />Build Complete,<br /> 2 Errors, 0 Warnings, 0 Remarks<br /><br />字库定义:<br />const unsigned int words[]={{...},{...},.....{...}};//字库内数据略。<br /><br />CMD文件:<br /><br />-stack 400<br />-o TTtest.out<br />-l rts2xx.lib<br />MEMORY<br />{<br /> PAGE 0: /* Program Memory */<br /> VECS: org=00000h, len=00040h /* internal FLASH */<br /> PVECS: org=00040h, len=00070h /* internal FLASH */<br /> PROG: org=000b0h, len=07F50h<br /> PAGE 1: /* Data Memory */<br /> MMRS: org=00000h, len=0005Fh<br /> B2: org=00060h, len=00020h /* internal DARAM */<br /> B0: org=00200h, len=00100h <br /> B1: org=00300h, len=00100h<br /> SARAM: org=00800h, len=00800h /* internal SARAM */<br /> EXTDATA: org=08000h, len=08000h /* external SRAM */<br />}<br />SECTIONS<br />{<br /> .reset: > VECS PAGE 0<br /> .vectors: > VECS PAGE 0 /* initialized */<br /> .PVECS: > PVECS PAGE 0<br /> .text: > PROG PAGE 0 /* initialized */<br /> .cinit: > PROG PAGE 0 /* initialized */<br /> .bss: > SARAM PAGE 1 /* uninitialized */<br /> .const: > SARAM PAGE 1 /* initialized */<br /> .stack: > B1 PAGE 1 /* uninitialized */<br />}<br /><br /><br />字库原来只有2个汉字,编译没问题,增加10多个汉字后编译就出问题了,我应该怎样设置这个stack?我已经由400设置到1200了,还是不行,最大允许设置多少?为什么字库的大小会影响到这里?<br />因为你的SRAM区只有2K
超出范围了,
那我的汉字库应该怎样处理呢
const空间应该怎么办呢你定义const数组,实际上这个数组还是在RAM中,而不是在flash中
如果你使用const,你仿真可以,当你把程序烧入flash,你的程序就乱了. 你的stack定义了0x400个字,但是你的B1空间只有0x100个字。肯定错误 本帖最后由 碧血黄花 于 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]