打印

谁帮我看看我的CMD文件设置有错没

[复制链接]
2805|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hyh0lh|  楼主 | 2007-12-10 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ni, TE, TI, ge, ST
各位帮个忙,看看我的CMD文件设置有错没,现在老是提示如下:
>> cannot allocate .switch in PROG (page 1)
>> cannot allocate .bss in SARAM_IN (page 1)
>> errors in input - ./Debug/DuoZuCeShi.out not built
我没法解决,特来求救。
CMD文件和生成的MAP文件内容如下:
/***************************************************
文件名:        LF2407_c.cmd
描述和说明:    LF240x CMD命令文件
***************************************************/
/*------------------------------------------------*/
/*CMD命令文件-存储空间划分(LF2407A)               */
/*------------------------------------------------*/
MEMORY
{
/*程序空间*/
    PAGE 0:
        VECS:origin=8000h,length=0040h    /*中断复位*/
        PROG:origin=8860h,length=7000h    /*片外程序FLASH*/
/*数据空间*/
    PAGE 1:
        B2:origin=0060h,length=0020h    /*内部双反问RAM8*/
        B0B1:origin=0200h,length=0200h    /*内部双反问RAM8*/
        SARAM_IN:origin=0800h,length=0800h    /*内部单访问RAM,数据区*/
        SARAM_EX:origin=8000h,length=8000h    /*外部扩展RAM,数据区*/
}
/*------------------------------------------------*/
/*CMD命令文件-程序段,数据段配置(LF2407A)          */
/*------------------------------------------------*/
SECTIONS
{
    .vector    :{}>VECS        PAGE0    /*指向自己定义的中断向量表*/
    .text    :{}>PROG        PAGE0    /*可执行的程序代码*/
    .cinit    :{}>PROG        PAGE0    /*明确赋值的全局和静态变量*/
    .switch    :{}>PROG        PAGE0    /*包含switch语句和转移表*/
    .bss    :{}>SARAM_IN    PAGE1    /*未初始化的全局和静态变量*/
    .data    :{}>SARAM_IN    PAGE1    /*常数数据,初始化的变量*/
    .stack    :{}>SARAM_IN    PAGE1    /*堆栈*/
    .sysmem    :{}>SARAM_IN    PAGE1    /*动态存储器分配的函数静态存储区*/
    .const    :{}>SARAM_EX    PAGE1    /*字符串,明确初始化的全局和静态常数*/
}

MAP文件:
******************************************************************************
TMS320C24xx COFF Linker           Version 7.02                   
******************************************************************************
>> Linked Fri Dec 07 13:26:09 2007

OUTPUT FILE NAME:   <ex.out>
ENTRY POINT SYMBOL: "_c_int0"  address: 00008c97


MEMORY CONFIGURATION

           name     origin    length      used    attributes    fill
         --------  --------  ---------  --------  ----------  --------
PAGE 0: VECS      00008000  000000040  0000000c     RWIX      
         PROG      00008860  000006000  00000d57     RWIX      

PAGE 1: B0        00000200  000000100  00000000     RWIX      
         B1        00000300  000000100  00000000     RWIX      
         DATA      00000860  000000780  000000b2     RWIX      


SECTION ALLOCATION MAP

 output                                  attributes/
section   page    origin      length       input sections
--------  ----  ----------  ----------   ----------------
.vectors   0    00008000    00000000     UNINITIALIZED

.text      0    00008860    000004dc     
                  00008860    00000041     Initializing.obj (.text)
                  000088a1    00000000     vector_c.obj (.text)
                  000088a1    000003f6     main.obj (.text)
                  00008c97    00000027     rts2xx.lib : boot.obj (.text)
                  00008cbe    00000050                : exit.obj (.text)
                  00008d0e    0000002e                : saverest.obj (.text)

.cinit     0    00008d3c    0000087b     
                  00008d3c    00000874     main.obj (.cinit)
                  000095b0    00000006     rts2xx.lib : exit.obj (.cinit)
                  000095b6    00000001     --HOLE-- [fill = 0000]

.data      1    00000860    00000000     UNINITIALIZED
                  00000860    00000000     Initializing.obj (.data)
                  00000860    00000000     rts2xx.lib : saverest.obj (.data)
                  00000860    00000000                : exit.obj (.data)
                  00000860    00000000                : boot.obj (.data)
                  00000860    00000000     vector_c.obj (.data)
                  00000860    00000000     main.obj (.data)

.bss       1    00000000    000008a2     UNINITIALIZED
                  00000000    00000870     main.obj (.bss)
                  00000870    00000000     rts2xx.lib : boot.obj (.bss)
                  00000870    00000000     vector_c.obj (.bss)
                  00000870    00000000     rts2xx.lib : saverest.obj (.bss)
                  00000870    00000001     Initializing.obj (.bss)
                  00000880    00000022     rts2xx.lib : exit.obj (.bss)

.const     1    00000860    00000012     
                  00000860    00000012     main.obj (.const)

.switch    0    00008860    00000000     UNINITIALIZED

.stack     1    00000872    000000a0     UNINITIALIZED
                  00000872    00000000     rts2xx.lib : boot.obj (.stack)

.system    1    00000860    00000000     UNINITIALIZED

.vector    0    00008000    0000000c     
                  00008000    0000000c     vector_c.obj (.vector)


GLOBAL SYMBOLS

address  name                             address  name
-------- ----                             -------- ----
00000000 .bss                             00000000 _Word32
00000860 .data                            00000000 .bss
00008860 .text                            000000a0 __STACK_SIZE
00008d0b C$$EXIT                          000002d0 _Word48
00008d26 I$$REST                          00000860 .data
00008d0e I$$SAVE                          00000860 edata
000089e3 _Delay_Ms                        00000881 __cleanup_ptr
000089cd _Delay_Us                        000008a2 end
00008ba7 _Display_32word                  00008860 _Dsp2407_Initializing
00008c1f _Display_48word                  00008860 .text
00008860 _Dsp2407_Initializing            0000887a _IOPort_Initializing
0000887a _IOPort_Initializing             00008895 _JiaZhongDuan
00008895 _JiaZhongDuan                    000088a1 _main
00008ade _Lcd_FangGe                      000089c4 _Nop
00008a5a _Lcd_Init                        000089cd _Delay_Us
00008a01 _Lcd_Send_Com                    000089e3 _Delay_Ms
00008a2a _Lcd_Send_Data                   00008a01 _Lcd_Send_Com
000089c4 _Nop                             00008a2a _Lcd_Send_Data
00000000 _Word32                          00008a5a _Lcd_Init
000002d0 _Word48                          00008ade _Lcd_FangGe
000000a0 __STACK_SIZE                     00008ba7 _Display_32word
00000881 __cleanup_ptr                    00008c1f _Display_48word
00008d0b _abort                           00008c97 _c_int0
00008cec _atexit                          00008cbe _exit
00008c97 _c_int0                          00008cec _atexit
00008cbe _exit                            00008d0b C$$EXIT
000088a1 _main                            00008d0b _abort
00008d3c cinit                            00008d0e I$$SAVE
00000860 edata                            00008d26 I$$REST
000008a2 end                              00008d3c cinit
00008d3c etext                            00008d3c etext
ffffffff pinit                            ffffffff pinit

[32 symbols]

相关帖子

沙发
hyh0lh|  楼主 | 2007-12-10 15:48 | 只看该作者

自己顶

顶起来,各位帮忙。

使用特权

评论回复
板凳
snakeemail| | 2007-12-10 16:48 | 只看该作者

??

/*程序空间*/
    PAGE 0:
        VECS:origin=8000h,length=0040h    /*中断复位*/
        PROG:origin=8860h,length=7000h    /*片外程序FLASH*/

VECS:origin=8000h,length=0040h 这句有问题,程序会从0x0000开始执行,你的sram是如何分配的,也要写出来。

使用特权

评论回复
地板
hyh0lh|  楼主 | 2007-12-10 17:12 | 只看该作者

我也是初学

“VECS:origin=8000h,length=0040h    /*中断复位*/”这是我找别人的例子抄过来的。具体更多SRAM应该没有分配,也没使用。这个40H应该是留给了中断,在SECTION里有对应的。
你说会从0x0000开始执行程序,我不明白。我只是仿真运行,所以会设置在0x8000开始。

使用特权

评论回复
5
hyh0lh|  楼主 | 2007-12-12 16:44 | 只看该作者

顶起来

问题已经解决了一个:bss段的不能分配是因为我定义的数组数据被划分到了bss内,造成该段过大分配不了。只要在数组数据前加上CONST使其为程序代码类就解决了。
但另一个switch段还是没找到原因,现在只能把它屏蔽掉运行。各位帮我看看

使用特权

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

本版积分规则

3

主题

55

帖子

1

粉丝